diff --git a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs index ee8781debbc8..10e78283814a 100644 --- a/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs +++ b/Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs @@ -141,16 +141,27 @@ void DrawPressureDirection( DrawPressureDirection(drawHandle, data.LastPressureDirection, tile, Color.LightGray); } + var tilePos = new Vector2(tile.X, tile.Y); + // -- Excited Groups -- - if (data.InExcitedGroup) + if (data.InExcitedGroup != 0) { - var tilePos = new Vector2(tile.X, tile.Y); var basisA = tilePos; var basisB = tilePos + new Vector2(1.0f, 1.0f); var basisC = tilePos + new Vector2(0.0f, 1.0f); var basisD = tilePos + new Vector2(1.0f, 0.0f); - drawHandle.DrawLine(basisA, basisB, Color.Cyan); - drawHandle.DrawLine(basisC, basisD, Color.Cyan); + var color = Color.White // Use first three nibbles for an unique color... Good enough? + .WithRed( data.InExcitedGroup & 0x000F) + .WithGreen((data.InExcitedGroup & 0x00F0) >>4) + .WithBlue( (data.InExcitedGroup & 0x0F00) >>8); + drawHandle.DrawLine(basisA, basisB, color); + drawHandle.DrawLine(basisC, basisD, color); + } + + // -- Space Tiles -- + if (data.IsSpace) + { + drawHandle.DrawCircle(tilePos + Vector2.One/2, 0.125f, Color.Orange); } } } diff --git a/Content.Client/Audio/ClientAdminSoundSystem.cs b/Content.Client/Audio/ClientAdminSoundSystem.cs deleted file mode 100644 index bc576c73841c..000000000000 --- a/Content.Client/Audio/ClientAdminSoundSystem.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Content.Shared.Audio; -using Content.Shared.CCVar; -using Robust.Shared.Audio; -using Robust.Shared.Configuration; -using Robust.Shared.Player; - -namespace Content.Client.Audio; - -public sealed class ClientAdminSoundSystem : SharedAdminSoundSystem -{ - [Dependency] private readonly IConfigurationManager _cfg = default!; - - private bool _adminAudioEnabled = true; - private List _adminAudio = new(1); - - public override void Initialize() - { - base.Initialize(); - SubscribeNetworkEvent(PlayAdminSound); - _cfg.OnValueChanged(CCVars.AdminSoundsEnabled, ToggleAdminSound, true); - } - - public override void Shutdown() - { - base.Shutdown(); - foreach (var stream in _adminAudio) - { - stream?.Stop(); - } - _adminAudio.Clear(); - } - - private void PlayAdminSound(AdminSoundEvent soundEvent) - { - if(!_adminAudioEnabled) return; - - var stream = SoundSystem.Play(soundEvent.Filename, Filter.Local(), soundEvent.AudioParams); - _adminAudio.Add(stream); - } - - private void ToggleAdminSound(bool enabled) - { - _adminAudioEnabled = enabled; - if (_adminAudioEnabled) return; - foreach (var stream in _adminAudio) - { - stream?.Stop(); - } - _adminAudio.Clear(); - } -} diff --git a/Content.Client/Audio/ClientGlobalSoundSystem.cs b/Content.Client/Audio/ClientGlobalSoundSystem.cs new file mode 100644 index 000000000000..c70513a5c915 --- /dev/null +++ b/Content.Client/Audio/ClientGlobalSoundSystem.cs @@ -0,0 +1,113 @@ +using Content.Shared.Audio; +using Content.Shared.CCVar; +using Content.Shared.GameTicking; +using Robust.Shared.Audio; +using Robust.Shared.Configuration; +using Robust.Shared.Player; + +namespace Content.Client.Audio; + +public sealed class ClientGlobalSoundSystem : SharedGlobalSoundSystem +{ + [Dependency] private readonly IConfigurationManager _cfg = default!; + + // Admin music + private bool _adminAudioEnabled = true; + private List _adminAudio = new(1); + + // Event sounds (e.g. nuke timer) + private bool _eventAudioEnabled = true; + private Dictionary _eventAudio = new(1); + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnRoundRestart); + SubscribeNetworkEvent(PlayAdminSound); + _cfg.OnValueChanged(CCVars.AdminSoundsEnabled, ToggleAdminSound, true); + + SubscribeNetworkEvent(PlayStationEventMusic); + SubscribeNetworkEvent(StopStationEventMusic); + _cfg.OnValueChanged(CCVars.EventMusicEnabled, ToggleStationEventMusic, true); + + SubscribeNetworkEvent(PlayGameSound); + } + + private void OnRoundRestart(RoundRestartCleanupEvent ev) + { + ClearAudio(); + } + + public override void Shutdown() + { + base.Shutdown(); + ClearAudio(); + } + + private void ClearAudio() + { + foreach (var stream in _adminAudio) + { + stream?.Stop(); + } + _adminAudio.Clear(); + + foreach (var (_, stream) in _eventAudio) + { + stream?.Stop(); + } + + _eventAudio.Clear(); + } + + private void PlayAdminSound(AdminSoundEvent soundEvent) + { + if(!_adminAudioEnabled) return; + + var stream = SoundSystem.Play(soundEvent.Filename, Filter.Local(), soundEvent.AudioParams); + _adminAudio.Add(stream); + } + + private void PlayStationEventMusic(StationEventMusicEvent soundEvent) + { + // Either the cvar is disabled or it's already playing + if(!_eventAudioEnabled || _eventAudio.ContainsKey(soundEvent.Type)) return; + + var stream = SoundSystem.Play(soundEvent.Filename, Filter.Local(), soundEvent.AudioParams); + _eventAudio.Add(soundEvent.Type, stream); + } + + private void PlayGameSound(GameGlobalSoundEvent soundEvent) + { + SoundSystem.Play(soundEvent.Filename, Filter.Local(), soundEvent.AudioParams); + } + + private void StopStationEventMusic(StopStationEventMusic soundEvent) + { + if (!_eventAudio.TryGetValue(soundEvent.Type, out var stream)) return; + stream?.Stop(); + _eventAudio.Remove(soundEvent.Type); + } + + private void ToggleAdminSound(bool enabled) + { + _adminAudioEnabled = enabled; + if (_adminAudioEnabled) return; + foreach (var stream in _adminAudio) + { + stream?.Stop(); + } + _adminAudio.Clear(); + } + + private void ToggleStationEventMusic(bool enabled) + { + _eventAudioEnabled = enabled; + if (_eventAudioEnabled) return; + foreach (var stream in _eventAudio) + { + stream.Value?.Stop(); + } + _eventAudio.Clear(); + } +} diff --git a/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml b/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml index 5487cdbe643a..e4a8d3ff7a76 100644 --- a/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml +++ b/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml @@ -63,6 +63,7 @@ + diff --git a/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml.cs b/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml.cs index aca123a42494..146f4a632ba1 100644 --- a/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml.cs +++ b/Content.Client/EscapeMenu/UI/Tabs/AudioTab.xaml.cs @@ -22,6 +22,7 @@ public AudioTab() IoCManager.InjectDependencies(this); LobbyMusicCheckBox.Pressed = _cfg.GetCVar(CCVars.LobbyMusicEnabled); + EventMusicCheckBox.Pressed = _cfg.GetCVar(CCVars.EventMusicEnabled); AdminSoundsCheckBox.Pressed = _cfg.GetCVar(CCVars.AdminSoundsEnabled); StationAmbienceCheckBox.Pressed = _cfg.GetCVar(CCVars.StationAmbienceEnabled); SpaceAmbienceCheckBox.Pressed = _cfg.GetCVar(CCVars.SpaceAmbienceEnabled); @@ -33,6 +34,7 @@ public AudioTab() AmbienceVolumeSlider.OnValueChanged += OnAmbienceVolumeSliderChanged; AmbienceSoundsSlider.OnValueChanged += OnAmbienceSoundsSliderChanged; LobbyMusicCheckBox.OnToggled += OnLobbyMusicCheckToggled; + EventMusicCheckBox.OnToggled += OnEventMusicCheckToggled; AdminSoundsCheckBox.OnToggled += OnAdminSoundsCheckToggled; StationAmbienceCheckBox.OnToggled += OnStationAmbienceCheckToggled; SpaceAmbienceCheckBox.OnToggled += OnSpaceAmbienceCheckToggled; @@ -79,11 +81,16 @@ private void OnLobbyMusicCheckToggled(BaseButton.ButtonEventArgs args) UpdateChanges(); } + private void OnEventMusicCheckToggled(BaseButton.ButtonEventArgs args) + { + UpdateChanges(); + } + private void OnAdminSoundsCheckToggled(BaseButton.ButtonEventArgs args) { UpdateChanges(); } - + private void OnStationAmbienceCheckToggled(BaseButton.ButtonEventArgs args) { UpdateChanges(); @@ -101,6 +108,7 @@ private void OnApplyButtonPressed(BaseButton.ButtonEventArgs args) _cfg.SetCVar(CCVars.AmbienceVolume, LV100ToDB(AmbienceVolumeSlider.Value)); _cfg.SetCVar(CCVars.MaxAmbientSources, (int)AmbienceSoundsSlider.Value); _cfg.SetCVar(CCVars.LobbyMusicEnabled, LobbyMusicCheckBox.Pressed); + _cfg.SetCVar(CCVars.EventMusicEnabled, EventMusicCheckBox.Pressed); _cfg.SetCVar(CCVars.AdminSoundsEnabled, AdminSoundsCheckBox.Pressed); _cfg.SetCVar(CCVars.StationAmbienceEnabled, StationAmbienceCheckBox.Pressed); _cfg.SetCVar(CCVars.SpaceAmbienceEnabled, SpaceAmbienceCheckBox.Pressed); @@ -120,6 +128,7 @@ private void Reset() AmbienceVolumeSlider.Value = DBToLV100(_cfg.GetCVar(CCVars.AmbienceVolume)); AmbienceSoundsSlider.Value = _cfg.GetCVar(CCVars.MaxAmbientSources); LobbyMusicCheckBox.Pressed = _cfg.GetCVar(CCVars.LobbyMusicEnabled); + EventMusicCheckBox.Pressed = _cfg.GetCVar(CCVars.EventMusicEnabled); AdminSoundsCheckBox.Pressed = _cfg.GetCVar(CCVars.AdminSoundsEnabled); StationAmbienceCheckBox.Pressed = _cfg.GetCVar(CCVars.StationAmbienceEnabled); SpaceAmbienceCheckBox.Pressed = _cfg.GetCVar(CCVars.SpaceAmbienceEnabled); @@ -149,10 +158,11 @@ private void UpdateChanges() Math.Abs(AmbienceVolumeSlider.Value - DBToLV100(_cfg.GetCVar(CCVars.AmbienceVolume))) < 0.01f; var isAmbientSoundsSame = (int)AmbienceSoundsSlider.Value == _cfg.GetCVar(CCVars.MaxAmbientSources); var isLobbySame = LobbyMusicCheckBox.Pressed == _cfg.GetCVar(CCVars.LobbyMusicEnabled); + var isEventSame = EventMusicCheckBox.Pressed == _cfg.GetCVar(CCVars.EventMusicEnabled); var isAdminSoundsSame = AdminSoundsCheckBox.Pressed == _cfg.GetCVar(CCVars.AdminSoundsEnabled); var isStationAmbienceSame = StationAmbienceCheckBox.Pressed == _cfg.GetCVar(CCVars.StationAmbienceEnabled); var isSpaceAmbienceSame = SpaceAmbienceCheckBox.Pressed == _cfg.GetCVar(CCVars.SpaceAmbienceEnabled); - var isEverythingSame = isMasterVolumeSame && isMidiVolumeSame && isAmbientVolumeSame && isAmbientSoundsSame && isLobbySame && isAdminSoundsSame && isStationAmbienceSame && isSpaceAmbienceSame; + var isEverythingSame = isMasterVolumeSame && isMidiVolumeSame && isAmbientVolumeSame && isAmbientSoundsSame && isLobbySame && isEventSame && isAdminSoundsSame && isStationAmbienceSame && isSpaceAmbienceSame; ApplyButton.Disabled = isEverythingSame; ResetButton.Disabled = isEverythingSame; MasterVolumeLabel.Text = diff --git a/Content.Client/Nuke/NukeMenu.xaml.cs b/Content.Client/Nuke/NukeMenu.xaml.cs index 092b86907452..a341a69e0dc3 100644 --- a/Content.Client/Nuke/NukeMenu.xaml.cs +++ b/Content.Client/Nuke/NukeMenu.xaml.cs @@ -103,7 +103,7 @@ public void UpdateState(NukeUiState state) FirstStatusLabel.Text = firstMsg; SecondStatusLabel.Text = secondMsg; - EjectButton.Disabled = !state.DiskInserted; + EjectButton.Disabled = !state.DiskInserted || state.Status == NukeStatus.ARMED; AnchorButton.Disabled = !state.DiskInserted; AnchorButton.Pressed = state.IsAnchored; ArmButton.Disabled = !state.AllowArm; diff --git a/Content.IntegrationTests/PoolManager.cs b/Content.IntegrationTests/PoolManager.cs index b63a8ac3e877..8a772835a792 100644 --- a/Content.IntegrationTests/PoolManager.cs +++ b/Content.IntegrationTests/PoolManager.cs @@ -6,6 +6,7 @@ using Content.Client.IoC; using Content.Client.Parallax.Managers; using Content.IntegrationTests.Tests; +using Content.IntegrationTests.Tests.Destructible; using Content.IntegrationTests.Tests.DeviceNetwork; using Content.IntegrationTests.Tests.Interaction.Click; using Content.IntegrationTests.Tests.Networking; @@ -106,6 +107,7 @@ await instance.WaitPost(() => IoCManager.Resolve() .LoadExtraSystemType(); IoCManager.Resolve().LoadExtraSystemType(); + IoCManager.Resolve().LoadExtraSystemType(); IoCManager.Resolve().GetSawmill("loc").Level = LogLevel.Error; }; diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs index ac670fdc6498..29c25be5d97a 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDamageTypeTest.cs @@ -39,6 +39,7 @@ await server.WaitPost(() => sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleDamageTypeEntityId, coordinates); sDamageableComponent = IoCManager.Resolve().GetComponent(sDestructibleEntity); sTestThresholdListenerSystem = sEntitySystemManager.GetEntitySystem(); + sTestThresholdListenerSystem.ThresholdsReached.Clear(); sDamageableSystem = sEntitySystemManager.GetEntitySystem(); }); diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs index 90dc6f4cf30f..be26c38c59ea 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs @@ -36,6 +36,7 @@ await server.WaitPost(() => sDestructibleEntity = sEntityManager.SpawnEntity(DestructibleDestructionEntityId, coordinates); sTestThresholdListenerSystem = sEntitySystemManager.GetEntitySystem(); + sTestThresholdListenerSystem.ThresholdsReached.Clear(); }); await server.WaitAssertion(() => diff --git a/Content.IntegrationTests/Tests/Destructible/TestDestructibleListenerSystem.cs b/Content.IntegrationTests/Tests/Destructible/TestDestructibleListenerSystem.cs index 276cedea0d7d..1bb397d4b30f 100644 --- a/Content.IntegrationTests/Tests/Destructible/TestDestructibleListenerSystem.cs +++ b/Content.IntegrationTests/Tests/Destructible/TestDestructibleListenerSystem.cs @@ -1,9 +1,8 @@ using System.Collections.Generic; using Content.Server.Destructible; using Content.Shared.GameTicking; -using Content.Shared.Module; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; +using Robust.Shared.Reflection; namespace Content.IntegrationTests.Tests.Destructible { @@ -11,19 +10,14 @@ namespace Content.IntegrationTests.Tests.Destructible /// This is just a system for testing destructible thresholds. Whenever any threshold is reached, this will add that /// threshold to a list for checking during testing. /// + [Reflect(false)] public sealed class TestDestructibleListenerSystem : EntitySystem { - [Dependency] private readonly IModuleManager _modManager; - public readonly List ThresholdsReached = new(); public override void Initialize() { base.Initialize(); - - if (_modManager.IsClientModule) - return; - SubscribeLocalEvent(AddThresholdsToList); SubscribeLocalEvent(OnRoundRestart); } diff --git a/Content.IntegrationTests/Tests/DummyIconTest.cs b/Content.IntegrationTests/Tests/DummyIconTest.cs index 8cc9d0fa2e20..f8351848cf89 100644 --- a/Content.IntegrationTests/Tests/DummyIconTest.cs +++ b/Content.IntegrationTests/Tests/DummyIconTest.cs @@ -4,6 +4,7 @@ using NUnit.Framework; using Robust.Client.GameObjects; using Robust.Client.ResourceManagement; +using Robust.Shared.IoC; using Robust.Shared.Prototypes; namespace Content.IntegrationTests.Tests @@ -17,11 +18,10 @@ public async Task Test() await using var pairTracker = await PoolManager.GetServerClient(); var client = pairTracker.Pair.Client; - var prototypeManager = client.ResolveDependency(); - var resourceCache = client.ResolveDependency(); - await client.WaitRunTicks(5); await client.WaitAssertion(() => { + var prototypeManager = IoCManager.Resolve(); + var resourceCache = IoCManager.Resolve(); foreach (var proto in prototypeManager.EnumeratePrototypes()) { if (proto.NoSpawn || proto.Abstract || !proto.Components.ContainsKey("Sprite")) continue; @@ -33,7 +33,6 @@ await client.WaitAssertion(() => proto.ID); } }); - await client.WaitRunTicks(5); await pairTracker.CleanReturnAsync(); } } diff --git a/Content.Server/Access/Components/IdExaminableComponent.cs b/Content.Server/Access/Components/IdExaminableComponent.cs new file mode 100644 index 000000000000..f1b641b6dd17 --- /dev/null +++ b/Content.Server/Access/Components/IdExaminableComponent.cs @@ -0,0 +1,8 @@ +using Content.Server.Access.Systems; + +namespace Content.Server.Access.Components; + +[RegisterComponent, Access(typeof(IdExaminableSystem))] +public sealed class IdExaminableComponent : Component +{ +} diff --git a/Content.Server/Access/Systems/IdExaminableSystem.cs b/Content.Server/Access/Systems/IdExaminableSystem.cs new file mode 100644 index 000000000000..d1edc3f199e8 --- /dev/null +++ b/Content.Server/Access/Systems/IdExaminableSystem.cs @@ -0,0 +1,77 @@ +using Content.Server.Access.Components; +using Content.Shared.Access.Components; +using Content.Shared.Examine; +using Content.Shared.Inventory; +using Content.Shared.PDA; +using Content.Shared.Verbs; +using Robust.Shared.Utility; + +namespace Content.Server.Access.Systems; + +public sealed class IdExaminableSystem : EntitySystem +{ + [Dependency] private readonly ExamineSystemShared _examineSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent>(OnGetExamineVerbs); + } + + private void OnGetExamineVerbs(EntityUid uid, IdExaminableComponent component, GetVerbsEvent args) + { + + var detailsRange = _examineSystem.IsInDetailsRange(args.User, uid); + var info = GetInfo(component.Owner) ?? Loc.GetString("id-examinable-component-verb-no-id"); + + var verb = new ExamineVerb() + { + Act = () => + { + var markup = FormattedMessage.FromMarkup(info); + _examineSystem.SendExamineTooltip(args.User, uid, markup, false, false); + }, + Text = Loc.GetString("id-examinable-component-verb-text"), + Category = VerbCategory.Examine, + Disabled = !detailsRange, + Message = Loc.GetString("id-examinable-component-verb-disabled"), + IconTexture = "/Textures/Interface/VerbIcons/information.svg.192dpi.png" + }; + + args.Verbs.Add(verb); + } + + private string? GetInfo(EntityUid uid) + { + if (_inventorySystem.TryGetSlotEntity(uid, "id", out var idUid)) + { + // PDA + if (EntityManager.TryGetComponent(idUid, out PDAComponent? pda) && pda.ContainedID is not null) + { + return GetNameAndJob(pda.ContainedID); + } + // ID Card + if (EntityManager.TryGetComponent(idUid, out IdCardComponent? id)) + { + return GetNameAndJob(id); + } + } + return null; + } + + 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", + ("originalOwnerName", id.OriginalOwnerName), + ("jobSuffix", jobSuffix)) + : Loc.GetString("access-id-card-component-owner-full-name-job-title-text", + ("fullName", id.FullName), + ("jobSuffix", jobSuffix)); + + return val; + } +} diff --git a/Content.Server/Administration/Commands/OpenAdminNotesCommand.cs b/Content.Server/Administration/Commands/OpenAdminNotesCommand.cs index 574c710fa837..50442c243fd6 100644 --- a/Content.Server/Administration/Commands/OpenAdminNotesCommand.cs +++ b/Content.Server/Administration/Commands/OpenAdminNotesCommand.cs @@ -1,4 +1,5 @@ using Content.Server.Administration.Notes; +using Content.Server.Database; using Content.Shared.Administration; using Robust.Server.Player; using Robust.Shared.Console; @@ -12,7 +13,7 @@ public sealed class OpenAdminNotesCommand : IConsoleCommand public string Command => CommandName; public string Description => "Opens the admin notes panel."; - public string Help => $"Usage: {Command} "; + public string Help => $"Usage: {Command} "; public async void Execute(IConsoleShell shell, string argStr, string[] args) { @@ -28,6 +29,18 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) { case 1 when Guid.TryParse(args[0], out notedPlayer): break; + case 1: + var db = IoCManager.Resolve(); + var dbGuid = await db.GetAssignedUserIdAsync(args[0]); + + if (dbGuid == null) + { + shell.WriteError($"Unable to find {args[0]} netuserid"); + return; + } + + notedPlayer = dbGuid.Value; + break; default: shell.WriteError($"Invalid arguments.\n{Help}"); return; diff --git a/Content.Server/Administration/UI/AdminAnnounceEui.cs b/Content.Server/Administration/UI/AdminAnnounceEui.cs index 2a42c0ac8aa8..f316642a7710 100644 --- a/Content.Server/Administration/UI/AdminAnnounceEui.cs +++ b/Content.Server/Administration/UI/AdminAnnounceEui.cs @@ -51,7 +51,7 @@ public override void HandleMessage(EuiMessageBase msg) break; // TODO: Per-station announcement support case AdminAnnounceType.Station: - _chatSystem.DispatchGlobalStationAnnouncement(doAnnounce.Announcement, doAnnounce.Announcer, colorOverride: Color.Gold); + _chatSystem.DispatchGlobalAnnouncement(doAnnounce.Announcement, doAnnounce.Announcer, colorOverride: Color.Gold); break; } diff --git a/Content.Server/Announcements/AnnounceCommand.cs b/Content.Server/Announcements/AnnounceCommand.cs index d51ea19ab079..2f5cb1c01095 100644 --- a/Content.Server/Announcements/AnnounceCommand.cs +++ b/Content.Server/Announcements/AnnounceCommand.cs @@ -24,12 +24,12 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) if (args.Length == 1) { - chat.DispatchGlobalStationAnnouncement(args[0], colorOverride: Color.Gold); + chat.DispatchGlobalAnnouncement(args[0], colorOverride: Color.Gold); } else { var message = string.Join(' ', new ArraySegment(args, 1, args.Length-1)); - chat.DispatchGlobalStationAnnouncement(message, args[0], colorOverride: Color.Gold); + chat.DispatchGlobalAnnouncement(message, args[0], colorOverride: Color.Gold); } shell.WriteLine("Sent!"); } diff --git a/Content.Server/Atmos/Commands/AddAtmosCommand.cs b/Content.Server/Atmos/Commands/AddAtmosCommand.cs index 3a86e58d1343..6ba58bc0d8e0 100644 --- a/Content.Server/Atmos/Commands/AddAtmosCommand.cs +++ b/Content.Server/Atmos/Commands/AddAtmosCommand.cs @@ -1,5 +1,6 @@ using Content.Server.Administration; using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; using Content.Shared.Administration; using Robust.Shared.Console; @@ -36,7 +37,9 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) return; } - if (_entities.HasComponent(euid)) + var atmos = entMan.EntitySysManager.GetEntitySystem(); + + if (atmos.HasAtmosphere(euid)) { shell.WriteLine("Grid already has an atmosphere."); return; diff --git a/Content.Server/Atmos/Commands/AddGasCommand.cs b/Content.Server/Atmos/Commands/AddGasCommand.cs index ed1c467ff024..e61421074047 100644 --- a/Content.Server/Atmos/Commands/AddGasCommand.cs +++ b/Content.Server/Atmos/Commands/AddGasCommand.cs @@ -31,9 +31,9 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) return; } - var atmosphereSystem = EntitySystem.Get(); + var atmosphereSystem = entMan.EntitySysManager.GetEntitySystem(); var indices = new Vector2i(x, y); - var tile = atmosphereSystem.GetTileMixture(euid, indices, true); + var tile = atmosphereSystem.GetTileMixture(euid, null, indices, true); if (tile == null) { diff --git a/Content.Server/Atmos/Commands/AddUnsimulatedAtmosCommand.cs b/Content.Server/Atmos/Commands/AddUnsimulatedAtmosCommand.cs deleted file mode 100644 index bae412a2619b..000000000000 --- a/Content.Server/Atmos/Commands/AddUnsimulatedAtmosCommand.cs +++ /dev/null @@ -1,49 +0,0 @@ -using Content.Server.Administration; -using Content.Server.Atmos.Components; -using Content.Shared.Administration; -using Robust.Shared.Console; - -namespace Content.Server.Atmos.Commands -{ - [AdminCommand(AdminFlags.Debug)] - public sealed class AddUnsimulatedAtmosCommand : IConsoleCommand - { - public string Command => "addunsimulatedatmos"; - public string Description => "Adds unimulated atmos support to a grid."; - public string Help => $"{Command} "; - - public void Execute(IConsoleShell shell, string argStr, string[] args) - { - if (args.Length < 1) - { - shell.WriteLine(Help); - return; - } - - var entMan = IoCManager.Resolve(); - - if (EntityUid.TryParse(args[0], out var euid)) - { - shell.WriteError($"Failed to parse euid '{args[0]}'."); - return; - } - - if (!entMan.HasComponent(euid)) - { - shell.WriteError($"Euid '{euid}' does not exist or is not a grid."); - return; - } - - if (entMan.HasComponent(euid)) - { - shell.WriteLine("Grid already has an atmosphere."); - return; - } - - entMan.AddComponent(euid); - - shell.WriteLine($"Added unsimulated atmosphere to grid {euid}."); - } - } - -} diff --git a/Content.Server/Atmos/Commands/DeleteGasCommand.cs b/Content.Server/Atmos/Commands/DeleteGasCommand.cs index 01c6a8163983..b38b15cec3cb 100644 --- a/Content.Server/Atmos/Commands/DeleteGasCommand.cs +++ b/Content.Server/Atmos/Commands/DeleteGasCommand.cs @@ -134,7 +134,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) if (gas == null) { - foreach (var tile in atmosphereSystem.GetAllTileMixtures(gridId.Value, true)) + foreach (var tile in atmosphereSystem.GetAllMixtures(gridId.Value, true)) { if (tile.Immutable) continue; @@ -146,7 +146,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) } else { - foreach (var tile in atmosphereSystem.GetAllTileMixtures(gridId.Value, true)) + foreach (var tile in atmosphereSystem.GetAllMixtures(gridId.Value, true)) { if (tile.Immutable) continue; diff --git a/Content.Server/Atmos/Commands/FillGasCommand.cs b/Content.Server/Atmos/Commands/FillGasCommand.cs index a1b98660f82f..aa2690e40d7a 100644 --- a/Content.Server/Atmos/Commands/FillGasCommand.cs +++ b/Content.Server/Atmos/Commands/FillGasCommand.cs @@ -23,7 +23,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var mapMan = IoCManager.Resolve(); - if (!gridId.IsValid() || !mapMan.TryGetGrid(gridId, out _)) + if (!mapMan.TryGetGrid(gridId, out var grid)) { shell.WriteLine("Invalid grid ID."); return; @@ -31,7 +31,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var atmosphereSystem = EntitySystem.Get(); - foreach (var tile in atmosphereSystem.GetAllTileMixtures(gridId, true)) + foreach (var tile in atmosphereSystem.GetAllMixtures(grid.GridEntityId, true)) { tile.AdjustMoles(gasId, moles); } diff --git a/Content.Server/Atmos/Commands/RemoveGasCommand.cs b/Content.Server/Atmos/Commands/RemoveGasCommand.cs index 09c9af53d663..29b9a1cc766b 100644 --- a/Content.Server/Atmos/Commands/RemoveGasCommand.cs +++ b/Content.Server/Atmos/Commands/RemoveGasCommand.cs @@ -24,7 +24,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var atmosphereSystem = EntitySystem.Get(); var indices = new Vector2i(x, y); - var tile = atmosphereSystem.GetTileMixture(id, indices, true); + var tile = atmosphereSystem.GetTileMixture(id, null, indices, true); if (tile == null) { diff --git a/Content.Server/Atmos/Commands/SetAtmosTemperatureCommand.cs b/Content.Server/Atmos/Commands/SetAtmosTemperatureCommand.cs index 5e87f577f492..1fd57dacf972 100644 --- a/Content.Server/Atmos/Commands/SetAtmosTemperatureCommand.cs +++ b/Content.Server/Atmos/Commands/SetAtmosTemperatureCommand.cs @@ -37,7 +37,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var atmosphereSystem = EntitySystem.Get(); var tiles = 0; - foreach (var tile in atmosphereSystem.GetAllTileMixtures(gridId, true)) + foreach (var tile in atmosphereSystem.GetAllMixtures(gridComp.GridEntityId, true)) { tiles++; tile.Temperature = temperature; diff --git a/Content.Server/Atmos/Commands/SetTemperatureCommand.cs b/Content.Server/Atmos/Commands/SetTemperatureCommand.cs index 3367c8029440..adfb32b19985 100644 --- a/Content.Server/Atmos/Commands/SetTemperatureCommand.cs +++ b/Content.Server/Atmos/Commands/SetTemperatureCommand.cs @@ -2,14 +2,21 @@ using Content.Server.Atmos.EntitySystems; using Content.Shared.Administration; using Content.Shared.Atmos; +using Robust.Server.GameObjects; using Robust.Shared.Console; +using Robust.Shared.GameObjects; using Robust.Shared.Map; +using Robust.Shared.Maths; +using SharpZstd.Interop; namespace Content.Server.Atmos.Commands { [AdminCommand(AdminFlags.Debug)] public sealed class SetTemperatureCommand : IConsoleCommand { + [Dependency] private readonly IEntityManager _entities = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + public string Command => "settemp"; public string Description => "Sets a tile's temperature (in kelvin)."; public string Help => "Usage: settemp "; @@ -28,9 +35,16 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) return; } - var atmosphereSystem = EntitySystem.Get(); + if (!_mapManager.TryGetGrid(gridId, out var grid)) + { + shell.WriteError("Invalid grid."); + return; + } + + var atmospheres = _entities.EntitySysManager.GetEntitySystem(); var indices = new Vector2i(x, y); - var tile = atmosphereSystem.GetTileMixture(gridId, indices, true); + + var tile = atmospheres.GetTileMixture(grid.GridEntityId, null, indices, true); if (tile == null) { diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index 7c1799cd7184..e7a5fd18fffe 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -1,4 +1,5 @@ using Content.Shared.Damage; +using Robust.Shared.Physics.Collision.Shapes; namespace Content.Server.Atmos.Components { @@ -28,5 +29,11 @@ public sealed class FlammableComponent : Component [DataField("damage", 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")] + public IPhysShape FlammableCollisionShape = new PhysShapeCircle() { Radius = 0.35f }; } } diff --git a/Content.Server/Atmos/Components/GasAnalyzerComponent.cs b/Content.Server/Atmos/Components/GasAnalyzerComponent.cs index 0c14f51cbf04..8d1e1bcdb999 100644 --- a/Content.Server/Atmos/Components/GasAnalyzerComponent.cs +++ b/Content.Server/Atmos/Components/GasAnalyzerComponent.cs @@ -5,6 +5,7 @@ using Content.Shared.Atmos; using Content.Shared.Atmos.Components; using Content.Shared.Interaction; +using Content.Shared.Maps; using Content.Shared.Popups; using Robust.Server.GameObjects; using Robust.Server.Player; @@ -120,7 +121,7 @@ private void Resync() { // Already get the pressure before Dirty(), because we can't get the EntitySystem in that thread or smth var pressure = 0f; - var tile = EntitySystem.Get().GetTileMixture(_entities.GetComponent(Owner).Coordinates); + var tile = EntitySystem.Get().GetContainingMixture(Owner, true); if (tile != null) { pressure = tile.Pressure; @@ -178,8 +179,12 @@ private void UpdateUserInterface() pos = _position.Value; } + var gridUid = pos.GetGridUid(_entities); + var mapUid = pos.GetMapUid(_entities); + var position = pos.ToVector2i(_entities, IoCManager.Resolve()); + var atmosphereSystem = EntitySystem.Get(); - var tile = atmosphereSystem.GetTileMixture(pos); + var tile = atmosphereSystem.GetTileMixture(gridUid, mapUid, position); if (tile == null) { error = "No Atmosphere!"; diff --git a/Content.Server/Atmos/Components/GasTankComponent.cs b/Content.Server/Atmos/Components/GasTankComponent.cs index 53d45f9499a8..ddacdfd0b427 100644 --- a/Content.Server/Atmos/Components/GasTankComponent.cs +++ b/Content.Server/Atmos/Components/GasTankComponent.cs @@ -261,7 +261,7 @@ public void CheckStatus(AtmosphereSystem? atmosphereSystem=null) { if (_integrity <= 0) { - var environment = atmosphereSystem.GetTileMixture(_entMan.GetComponent(Owner).Coordinates, true); + var environment = atmosphereSystem.GetContainingMixture(Owner, false, true); if(environment != null) atmosphereSystem.Merge(environment, Air); @@ -279,7 +279,7 @@ public void CheckStatus(AtmosphereSystem? atmosphereSystem=null) { if (_integrity <= 0) { - var environment = atmosphereSystem.GetTileMixture(_entMan.GetComponent(Owner).Coordinates, true); + var environment = atmosphereSystem.GetContainingMixture(Owner, false, true); if (environment == null) return; diff --git a/Content.Server/Atmos/Components/GridAtmosphereComponent.cs b/Content.Server/Atmos/Components/GridAtmosphereComponent.cs index a7a172842531..45a1c0fcb6e6 100644 --- a/Content.Server/Atmos/Components/GridAtmosphereComponent.cs +++ b/Content.Server/Atmos/Components/GridAtmosphereComponent.cs @@ -8,12 +8,12 @@ namespace Content.Server.Atmos.Components /// /// Internal Atmos class. Use to interact with atmos instead. /// - [ComponentReference(typeof(IAtmosphereComponent))] - [RegisterComponent, Serializable] - [Virtual] - public class GridAtmosphereComponent : Component, IAtmosphereComponent, ISerializationHooks + [RegisterComponent, Serializable, + Access(typeof(AtmosphereSystem), typeof(GasTileOverlaySystem), typeof(AtmosDebugOverlaySystem))] + public sealed class GridAtmosphereComponent : Component, ISerializationHooks { - public virtual bool Simulated => true; + [ViewVariables(VVAccess.ReadWrite)] + public bool Simulated { get; set; } = true; [ViewVariables] public bool ProcessingPaused { get; set; } = false; @@ -22,7 +22,7 @@ public class GridAtmosphereComponent : Component, IAtmosphereComponent, ISeriali public float Timer { get; set; } = 0f; [ViewVariables] - public int UpdateCounter { get; set; } = 0; + public int UpdateCounter { get; set; } = 1; // DO NOT SET TO ZERO BY DEFAULT! It will break roundstart atmos... [DataField("uniqueMixes")] public List? UniqueMixes; @@ -94,7 +94,7 @@ public class GridAtmosphereComponent : Component, IAtmosphereComponent, ISeriali public long EqualizationQueueCycleControl { get; set; } [ViewVariables] - public AtmosphereProcessingState State { get; set; } = AtmosphereProcessingState.TileEqualize; + public AtmosphereProcessingState State { get; set; } = AtmosphereProcessingState.Revalidate; void ISerializationHooks.BeforeSerialization() { diff --git a/Content.Server/Atmos/Components/IAtmosphereComponent.cs b/Content.Server/Atmos/Components/IAtmosphereComponent.cs deleted file mode 100644 index 6fe95e635ded..000000000000 --- a/Content.Server/Atmos/Components/IAtmosphereComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Content.Server.Atmos.Components -{ - public interface IAtmosphereComponent : IComponent - { - /// - /// Whether this atmosphere is simulated or not. - /// - bool Simulated { get; } - } -} diff --git a/Content.Server/Atmos/Components/MapAtmosphereComponent.cs b/Content.Server/Atmos/Components/MapAtmosphereComponent.cs new file mode 100644 index 000000000000..09a2c34833dd --- /dev/null +++ b/Content.Server/Atmos/Components/MapAtmosphereComponent.cs @@ -0,0 +1,21 @@ +namespace Content.Server.Atmos.Components; + +/// +/// Component that defines the default GasMixture for a map. +/// +/// Honestly, no need to [Friend] this. It's just two simple data fields... Change them to your heart's content. +[RegisterComponent] +public sealed class MapAtmosphereComponent : Component +{ + /// + /// The default GasMixture a map will have. Space mixture by default. + /// + [DataField("mixture"), ViewVariables(VVAccess.ReadWrite)] + public GasMixture? Mixture = GasMixture.SpaceGas; + + /// + /// Whether empty tiles will be considered space or not. + /// + [DataField("space"), ViewVariables(VVAccess.ReadWrite)] + public bool Space = true; +} diff --git a/Content.Server/Atmos/Components/SpaceAtmosphereComponent.cs b/Content.Server/Atmos/Components/SpaceAtmosphereComponent.cs deleted file mode 100644 index d5c3ad07d762..000000000000 --- a/Content.Server/Atmos/Components/SpaceAtmosphereComponent.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Content.Server.Atmos.Components -{ - [RegisterComponent] - [ComponentReference(typeof(IAtmosphereComponent))] - public sealed class SpaceAtmosphereComponent : Component, IAtmosphereComponent - { - public bool Simulated => false; - } -} diff --git a/Content.Server/Atmos/Components/UnsimulatedGridAtmosphereComponent.cs b/Content.Server/Atmos/Components/UnsimulatedGridAtmosphereComponent.cs deleted file mode 100644 index a5fb02171f62..000000000000 --- a/Content.Server/Atmos/Components/UnsimulatedGridAtmosphereComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Content.Server.Atmos.Components -{ - [RegisterComponent] - [ComponentReference(typeof(IAtmosphereComponent))] - [Serializable] - public sealed class UnsimulatedGridAtmosphereComponent : GridAtmosphereComponent - { - public override bool Simulated => false; - } -} diff --git a/Content.Server/Atmos/EntitySystems/AirtightSystem.cs b/Content.Server/Atmos/EntitySystems/AirtightSystem.cs index 8ae2049cc0b6..9133343b828c 100644 --- a/Content.Server/Atmos/EntitySystems/AirtightSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AirtightSystem.cs @@ -111,17 +111,19 @@ public void UpdatePosition(AirtightComponent airtight, TransformComponent? xform public void InvalidatePosition(EntityUid gridId, Vector2i pos, bool fixVacuum = false) { - if (!gridId.IsValid()) + if (!_mapManager.TryGetGrid(gridId, out var grid)) return; + var gridUid = grid.GridEntityId; + var query = EntityManager.GetEntityQuery(); _explosionSystem.UpdateAirtightMap(gridId, pos, query); // TODO make atmos system use query - _atmosphereSystem.UpdateAdjacent(gridId, pos); - _atmosphereSystem.InvalidateTile(gridId, pos); + _atmosphereSystem.UpdateAdjacent(gridUid, pos); + _atmosphereSystem.InvalidateTile(gridUid, pos); if(fixVacuum) - _atmosphereSystem.FixVacuum(gridId, pos); + _atmosphereSystem.FixTileVacuum(gridUid, pos); } private AtmosDirection Rotate(AtmosDirection myDirection, Angle myAngle) diff --git a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs index db302b80b197..174b54f05b2d 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosDebugOverlaySystem.cs @@ -92,21 +92,18 @@ private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) } } - private AtmosDebugOverlayData ConvertTileToData(TileAtmosphere? tile) + private AtmosDebugOverlayData ConvertTileToData(TileAtmosphere? tile, bool mapIsSpace) { - var gases = new float[Atmospherics.TotalNumberOfGases]; + var gases = new float[Atmospherics.AdjustedNumberOfGases]; if (tile?.Air == null) { - return new AtmosDebugOverlayData(0, gases, AtmosDirection.Invalid, tile?.LastPressureDirection ?? AtmosDirection.Invalid, false, tile?.BlockedAirflow ?? AtmosDirection.Invalid); + return new AtmosDebugOverlayData(Atmospherics.TCMB, gases, AtmosDirection.Invalid, tile?.LastPressureDirection ?? AtmosDirection.Invalid, 0, tile?.BlockedAirflow ?? AtmosDirection.Invalid, tile?.Space ?? mapIsSpace); } else { - for (var i = 0; i < Atmospherics.TotalNumberOfGases; i++) - { - gases[i] = tile.Air.GetMoles(i); - } - return new AtmosDebugOverlayData(tile.Air.Temperature, gases, tile.PressureDirection, tile.LastPressureDirection, tile.ExcitedGroup != null, tile.BlockedAirflow); + NumericsHelpers.Add(gases, tile.Air.Moles); + return new AtmosDebugOverlayData(tile.Air.Temperature, gases, tile.PressureDirection, tile.LastPressureDirection, tile.ExcitedGroup?.GetHashCode() ?? 0, tile.BlockedAirflow, tile.Space); } } @@ -132,16 +129,22 @@ public override void Update(float frameTime) continue; var transform = EntityManager.GetComponent(entity); + var mapUid = transform.MapUid; + + var mapIsSpace = _atmosphereSystem.IsTileSpace(null, mapUid, Vector2i.Zero); var worldBounds = Box2.CenteredAround(transform.WorldPosition, new Vector2(LocalViewRange, LocalViewRange)); foreach (var grid in _mapManager.FindGridsIntersecting(transform.MapID, worldBounds)) { - if (!EntityManager.EntityExists(grid.GridEntityId)) + var uid = grid.GridEntityId; + + if (!Exists(uid)) continue; - if (!EntityManager.TryGetComponent(grid.GridEntityId, out var gam)) continue; + if (!TryComp(uid, out GridAtmosphereComponent? gridAtmos)) + continue; var entityTile = grid.GetTileRef(transform.Coordinates).GridIndices; var baseTile = new Vector2i(entityTile.X - (LocalViewRange / 2), entityTile.Y - (LocalViewRange / 2)); @@ -153,7 +156,7 @@ public override void Update(float frameTime) for (var x = 0; x < LocalViewRange; x++) { var vector = new Vector2i(baseTile.X + x, baseTile.Y + y); - debugOverlayContent[index++] = ConvertTileToData(_atmosphereSystem.GetTileAtmosphereOrCreateSpace(grid, gam, vector)); + debugOverlayContent[index++] = ConvertTileToData(gridAtmos.Tiles.TryGetValue(vector, out var tile) ? tile : null, mapIsSpace); } } diff --git a/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs b/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs index b827b6d41d82..66aa88d40762 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosExposedSystem.cs @@ -12,17 +12,47 @@ public readonly struct AtmosExposedUpdateEvent { public readonly EntityCoordinates Coordinates; public readonly GasMixture GasMixture; + public readonly TransformComponent Transform; - public AtmosExposedUpdateEvent(EntityCoordinates coordinates, GasMixture mixture) + public AtmosExposedUpdateEvent(EntityCoordinates coordinates, GasMixture mixture, TransformComponent transform) { Coordinates = coordinates; GasMixture = mixture; + Transform = transform; } } + /// + /// Event that tries to query the mixture a certain entity is exposed to. + /// [ByRefEvent] public struct AtmosExposedGetAirEvent { - public GasMixture? Gas; + /// + /// The entity we want to query this for. + /// + public readonly EntityUid Entity; + + /// + /// The mixture that the entity is exposed to. Output parameter. + /// + public GasMixture? Gas = null; + + /// + /// Whether to invalidate the mixture, if possible. + /// + public bool Invalidate = false; + + /// + /// Whether this event has been handled or not. + /// Check this before changing anything. + /// + public bool Handled = false; + + public AtmosExposedGetAirEvent(EntityUid entity, bool invalidate = false) + { + Entity = entity; + invalidate = invalidate; + } } } diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs new file mode 100644 index 000000000000..ee9e57ffdafc --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs @@ -0,0 +1,301 @@ +using System.Linq; +using Content.Server.Atmos.Piping.Components; +using Content.Server.Atmos.Reactions; +using Content.Server.NodeContainer.NodeGroups; +using Content.Shared.Atmos; +using Robust.Server.GameObjects; +using Robust.Shared.Utility; + +namespace Content.Server.Atmos.EntitySystems; + +public partial class AtmosphereSystem +{ + public GasMixture? GetContainingMixture(EntityUid uid, bool ignoreExposed = false, bool excite = false, TransformComponent? transform = null) + { + if (!ignoreExposed) + { + // Used for things like disposals/cryo to change which air people are exposed to. + var ev = new AtmosExposedGetAirEvent(uid, excite); + + // Give the entity itself a chance to handle this. + RaiseLocalEvent(uid, ref ev, false); + + if (ev.Handled) + return ev.Gas; + + // We need to get the parent now, so we need the transform... If the parent is invalid, we can't do much else. + if(!Resolve(uid, ref transform) || !transform.ParentUid.IsValid() || transform.MapUid == null) + return GetTileMixture(null, null, Vector2i.Zero, excite); + + // Give the parent entity a chance to handle the event... + RaiseLocalEvent(transform.ParentUid, ref ev, false); + + if (ev.Handled) + return ev.Gas; + } + // Oops, we did a little bit of code duplication... + else if(!Resolve(uid, ref transform)) + { + return GetTileMixture(null, null, Vector2i.Zero, excite); + } + + + var gridUid = transform.GridUid; + var mapUid = transform.MapUid; + var position = _transformSystem.GetGridOrMapTilePosition(uid, transform); + + return GetTileMixture(gridUid, mapUid, position, excite); + } + + public bool HasAtmosphere(EntityUid gridUid) + { + var ev = new HasAtmosphereMethodEvent(gridUid); + RaiseLocalEvent(gridUid, ref ev); + + return ev.Result; + } + + public bool SetSimulatedGrid(EntityUid gridUid, bool simulated) + { + var ev = new SetSimulatedGridMethodEvent(gridUid, simulated); + RaiseLocalEvent(gridUid, ref ev); + + return ev.Handled; + } + + public bool IsSimulatedGrid(EntityUid gridUid) + { + var ev = new IsSimulatedGridMethodEvent(gridUid); + RaiseLocalEvent(gridUid, ref ev); + + return ev.Simulated; + } + + public IEnumerable GetAllMixtures(EntityUid gridUid, bool excite = false) + { + var ev = new GetAllMixturesMethodEvent(gridUid, excite); + RaiseLocalEvent(gridUid, ref ev); + + if(!ev.Handled) + return Enumerable.Empty(); + + DebugTools.AssertNotNull(ev.Mixtures); + return ev.Mixtures!; + } + + public void InvalidateTile(EntityUid gridUid, Vector2i tile) + { + var ev = new InvalidateTileMethodEvent(gridUid, tile); + RaiseLocalEvent(gridUid, ref ev); + } + + public GasMixture? GetTileMixture(EntityUid? gridUid, EntityUid? mapUid, Vector2i tile, bool excite = false) + { + var ev = new GetTileMixtureMethodEvent(gridUid, mapUid, tile, excite); + + // If we've been passed a grid, try to let it handle it. + if(gridUid.HasValue) + RaiseLocalEvent(gridUid.Value, ref ev, false); + + if (ev.Handled) + return ev.Mixture; + + // We either don't have a grid, or the event wasn't handled. + // Let the map handle it instead, and also broadcast the event. + if(mapUid.HasValue) + RaiseLocalEvent(mapUid.Value, ref ev, true); + else + RaiseLocalEvent(ref ev); + + // Default to a space mixture... This is a space game, after all! + return ev.Mixture ?? GasMixture.SpaceGas; + } + + public ReactionResult ReactTile(EntityUid gridId, Vector2i tile) + { + var ev = new ReactTileMethodEvent(gridId, tile); + RaiseLocalEvent(gridId, ref ev); + + ev.Handled = true; + + return ev.Result; + } + + public bool IsTileAirBlocked(EntityUid gridUid, Vector2i tile, AtmosDirection directions = AtmosDirection.All, IMapGridComponent? mapGridComp = null) + { + var ev = new IsTileAirBlockedMethodEvent(gridUid, tile, directions, mapGridComp); + return ev.Result; + } + + public bool IsTileSpace(EntityUid? gridUid, EntityUid? mapUid, Vector2i tile, IMapGridComponent? mapGridComp = null) + { + var ev = new IsTileSpaceMethodEvent(gridUid, mapUid, tile, mapGridComp); + + // Try to let the grid (if any) handle it... + if (gridUid.HasValue) + RaiseLocalEvent(gridUid.Value, ref ev, false); + + // If we didn't have a grid or the event wasn't handled + // we let the map know, and also broadcast the event while at it! + if (mapUid.HasValue && !ev.Handled) + RaiseLocalEvent(mapUid.Value, ref ev, true); + + // We didn't have a map, and the event isn't handled, therefore broadcast the event. + else if (!mapUid.HasValue && !ev.Handled) + RaiseLocalEvent(ref ev); + + // If nothing handled the event, it'll default to true. + // Oh well, this is a space game after all, deal with it! + return ev.Result; + } + + public bool IsTileMixtureProbablySafe(EntityUid? gridUid, EntityUid mapUid, Vector2i tile) + { + return IsMixtureProbablySafe(GetTileMixture(gridUid, mapUid, tile)); + } + + public float GetTileHeatCapacity(EntityUid? gridUid, EntityUid mapUid, Vector2i tile) + { + return GetHeatCapacity(GetTileMixture(gridUid, mapUid, tile) ?? GasMixture.SpaceGas); + } + + public IEnumerable GetAdjacentTiles(EntityUid gridUid, Vector2i tile) + { + var ev = new GetAdjacentTilesMethodEvent(gridUid, tile); + RaiseLocalEvent(gridUid, ref ev); + + return ev.Result ?? Enumerable.Empty(); + } + + public IEnumerable GetAdjacentTileMixtures(EntityUid gridUid, Vector2i tile, bool includeBlocked = false, bool excite = false) + { + var ev = new GetAdjacentTileMixturesMethodEvent(gridUid, tile, includeBlocked, excite); + RaiseLocalEvent(gridUid, ref ev); + + return ev.Result ?? Enumerable.Empty(); + } + + public void UpdateAdjacent(EntityUid gridUid, Vector2i tile, IMapGridComponent? mapGridComp = null) + { + var ev = new UpdateAdjacentMethodEvent(gridUid, tile, mapGridComp); + RaiseLocalEvent(gridUid, ref ev); + } + + public void HotspotExpose(EntityUid gridUid, Vector2i tile, float exposedTemperature, float exposedVolume, bool soh = false) + { + var ev = new HotspotExposeMethodEvent(gridUid, tile, exposedTemperature, exposedVolume, soh); + RaiseLocalEvent(gridUid, ref ev); + } + + public void HotspotExtinguish(EntityUid gridUid, Vector2i tile) + { + var ev = new HotspotExtinguishMethodEvent(gridUid, tile); + RaiseLocalEvent(gridUid, ref ev); + } + + public bool IsHotspotActive(EntityUid gridUid, Vector2i tile) + { + var ev = new IsHotspotActiveMethodEvent(gridUid, tile); + RaiseLocalEvent(gridUid, ref ev); + + // If not handled, this will be false. Just like in space! + return ev.Result; + } + + public void FixTileVacuum(EntityUid gridUid, Vector2i tile) + { + var ev = new FixTileVacuumMethodEvent(gridUid, tile); + RaiseLocalEvent(gridUid, ref ev); + } + + public void AddPipeNet(EntityUid gridUid, PipeNet pipeNet) + { + var ev = new AddPipeNetMethodEvent(gridUid, pipeNet); + RaiseLocalEvent(gridUid, ref ev); + } + + public void RemovePipeNet(EntityUid gridUid, PipeNet pipeNet) + { + var ev = new RemovePipeNetMethodEvent(gridUid, pipeNet); + RaiseLocalEvent(gridUid, ref ev); + } + + public bool AddAtmosDevice(EntityUid gridUid, AtmosDeviceComponent device) + { + // TODO: check device is on grid + + var ev = new AddAtmosDeviceMethodEvent(gridUid, device); + RaiseLocalEvent(gridUid, ref ev); + return ev.Result; + } + + public bool RemoveAtmosDevice(EntityUid gridUid, AtmosDeviceComponent device) + { + // TODO: check device is on grid + + var ev = new RemoveAtmosDeviceMethodEvent(gridUid, device); + RaiseLocalEvent(gridUid, ref ev); + return ev.Result; + } + + [ByRefEvent] private record struct HasAtmosphereMethodEvent + (EntityUid Grid, bool Result = false, bool Handled = false); + + [ByRefEvent] private record struct SetSimulatedGridMethodEvent + (EntityUid Grid, bool Simulated, bool Handled = false); + + [ByRefEvent] private record struct IsSimulatedGridMethodEvent + (EntityUid Grid, bool Simulated = false, bool Handled = false); + + [ByRefEvent] private record struct GetAllMixturesMethodEvent + (EntityUid Grid, bool Excite = false, IEnumerable? Mixtures = null, bool Handled = false); + + [ByRefEvent] private record struct InvalidateTileMethodEvent + (EntityUid Grid, Vector2i Tile, bool Handled = false); + + [ByRefEvent] private record struct GetTileMixtureMethodEvent + (EntityUid? GridUid, EntityUid? MapUid, Vector2i Tile, bool Excite = false, GasMixture? Mixture = null, bool Handled = false); + + [ByRefEvent] private record struct ReactTileMethodEvent + (EntityUid GridId, Vector2i Tile, ReactionResult Result = default, bool Handled = false); + + [ByRefEvent] private record struct IsTileAirBlockedMethodEvent + (EntityUid Grid, Vector2i Tile, AtmosDirection Direction = AtmosDirection.All, IMapGridComponent? MapGridComponent = null, bool Result = false, bool Handled = false); + + [ByRefEvent] private record struct IsTileSpaceMethodEvent + (EntityUid? Grid, EntityUid? Map, Vector2i Tile, IMapGridComponent? MapGridComponent = null, bool Result = true, bool Handled = false); + + [ByRefEvent] private record struct GetAdjacentTilesMethodEvent + (EntityUid Grid, Vector2i Tile, IEnumerable? Result = null, bool Handled = false); + + [ByRefEvent] private record struct GetAdjacentTileMixturesMethodEvent + (EntityUid Grid, Vector2i Tile, bool IncludeBlocked, bool Excite, + IEnumerable? Result = null, bool Handled = false); + + [ByRefEvent] private record struct UpdateAdjacentMethodEvent + (EntityUid Grid, Vector2i Tile, IMapGridComponent? MapGridComponent = null, bool Handled = false); + + [ByRefEvent] private record struct HotspotExposeMethodEvent + (EntityUid Grid, Vector2i Tile, float ExposedTemperature, float ExposedVolume, bool soh, bool Handled = false); + + [ByRefEvent] private record struct HotspotExtinguishMethodEvent + (EntityUid Grid, Vector2i Tile, bool Handled = false); + + [ByRefEvent] private record struct IsHotspotActiveMethodEvent + (EntityUid Grid, Vector2i Tile, bool Result = false, bool Handled = false); + + [ByRefEvent] private record struct FixTileVacuumMethodEvent + (EntityUid Grid, Vector2i Tile, bool Handled = false); + + [ByRefEvent] private record struct AddPipeNetMethodEvent + (EntityUid Grid, PipeNet PipeNet, bool Handled = false); + + [ByRefEvent] private record struct RemovePipeNetMethodEvent + (EntityUid Grid, PipeNet PipeNet, bool Handled = false); + + [ByRefEvent] private record struct AddAtmosDeviceMethodEvent + (EntityUid Grid, AtmosDeviceComponent Device, bool Result = false, bool Handled = false); + + [ByRefEvent] private record struct RemoveAtmosDeviceMethodEvent + (EntityUid Grid, AtmosDeviceComponent Device, bool Result = false, bool Handled = false); +} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs index 002919aff90c..9c6a38600beb 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Commands.cs @@ -3,6 +3,7 @@ using Content.Server.Atmos.Components; using Content.Shared.Administration; using Content.Shared.Atmos; +using Content.Shared.Maps; using Robust.Shared.Console; using Robust.Shared.Map; @@ -83,12 +84,20 @@ private void FixGridAtmosCommand(IConsoleShell shell, string argstr, string[] ar continue; } + var transform = Transform(euid); + foreach (var (indices, tileMain) in gridAtmosphere.Tiles) { var tile = tileMain.Air; if (tile == null) continue; + if (tile.Immutable && !IsTileSpace(euid, transform.MapUid, indices, gridComp)) + { + tile = new GasMixture(tile.Volume) { Temperature = tile.Temperature }; + tileMain.Air = tile; + } + tile.Clear(); var mixtureId = 0; foreach (var entUid in gridComp.Grid.GetAnchoredEntities(indices)) @@ -102,7 +111,7 @@ private void FixGridAtmosCommand(IConsoleShell shell, string argstr, string[] ar Merge(tile, mixture); tile.Temperature = mixture.Temperature; - InvalidateTile(gridAtmosphere, indices); + gridAtmosphere.InvalidatedCoords.Add(indices); } } } diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.ExcitedGroup.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.ExcitedGroup.cs index 29ba3e9f7368..1d809dcd0320 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.ExcitedGroup.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.ExcitedGroup.cs @@ -87,7 +87,7 @@ private void ExcitedGroupSelfBreakdown(GridAtmosphereComponent gridAtmosphere, E Merge(combined, tile.Air); - if (!ExcitedGroupsSpaceIsAllConsuming || !tile.Air.Immutable) + if (!ExcitedGroupsSpaceIsAllConsuming || !tile.Space) continue; combined.Clear(); diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs index 677ace3e1285..be651251f473 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Gases.cs @@ -48,19 +48,11 @@ public float GetHeatCapacity(GasMixture mixture) return GetHeatCapacityCalculation(mixture.Moles, mixture.Immutable); } - /// - /// Calculates the heat capacity for a gas mixture, using the archived values. - /// - public float GetHeatCapacityArchived(GasMixture mixture) - { - return GetHeatCapacityCalculation(mixture.MolesArchived, mixture.Immutable); - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private float GetHeatCapacityCalculation(float[] moles, bool immutable) + private float GetHeatCapacityCalculation(float[] moles, bool space) { // Little hack to make space gas mixtures have heat capacity, therefore allowing them to cool down rooms. - if (immutable && MathHelper.CloseTo(NumericsHelpers.HorizontalAdd(moles), 0f)) + if (space && MathHelper.CloseTo(NumericsHelpers.HorizontalAdd(moles), 0f)) { return Atmospherics.SpaceHeatCapacity; } @@ -136,7 +128,7 @@ public void DivideInto(GasMixture source, List receivers) if (MathF.Abs(receiver.Temperature - source.Temperature) > Atmospherics.MinimumTemperatureDeltaToConsider) { // Often this divides a pipe net into new and completely empty pipe nets - if (receiver.TotalMoles == 0) + if (receiver.TotalMoles == 0) receiver.Temperature = source.Temperature; else { @@ -154,140 +146,6 @@ public void DivideInto(GasMixture source, List receivers) } } - /// - /// Shares gas between two gas mixtures. Part of LINDA. - /// - public float Share(GasMixture receiver, GasMixture sharer, int atmosAdjacentTurfs) - { - var temperatureDelta = receiver.TemperatureArchived - sharer.TemperatureArchived; - var absTemperatureDelta = Math.Abs(temperatureDelta); - var oldHeatCapacity = 0f; - var oldSharerHeatCapacity = 0f; - - if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) - { - oldHeatCapacity = GetHeatCapacity(receiver); - oldSharerHeatCapacity = GetHeatCapacity(sharer); - } - - var heatCapacityToSharer = 0f; - var heatCapacitySharerToThis = 0f; - var movedMoles = 0f; - var absMovedMoles = 0f; - - for(var i = 0; i < Atmospherics.TotalNumberOfGases; i++) - { - var thisValue = receiver.Moles[i]; - var sharerValue = sharer.Moles[i]; - var delta = (thisValue - sharerValue) / (atmosAdjacentTurfs + 1); - if (!(MathF.Abs(delta) >= Atmospherics.GasMinMoles)) continue; - if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) - { - var gasHeatCapacity = delta * GasSpecificHeats[i]; - if (delta > 0) - { - heatCapacityToSharer += gasHeatCapacity; - } - else - { - heatCapacitySharerToThis -= gasHeatCapacity; - } - } - - if (!receiver.Immutable) receiver.Moles[i] -= delta; - if (!sharer.Immutable) sharer.Moles[i] += delta; - movedMoles += delta; - absMovedMoles += MathF.Abs(delta); - } - - receiver.LastShare = absMovedMoles; - - if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) - { - var newHeatCapacity = oldHeatCapacity + heatCapacitySharerToThis - heatCapacityToSharer; - var newSharerHeatCapacity = oldSharerHeatCapacity + heatCapacityToSharer - heatCapacitySharerToThis; - - // Transfer of thermal energy (via changed heat capacity) between self and sharer. - if (!receiver.Immutable && newHeatCapacity > Atmospherics.MinimumHeatCapacity) - { - receiver.Temperature = ((oldHeatCapacity * receiver.Temperature) - (heatCapacityToSharer * receiver.TemperatureArchived) + (heatCapacitySharerToThis * sharer.TemperatureArchived)) / newHeatCapacity; - } - - if (!sharer.Immutable && newSharerHeatCapacity > Atmospherics.MinimumHeatCapacity) - { - sharer.Temperature = ((oldSharerHeatCapacity * sharer.Temperature) - (heatCapacitySharerToThis * sharer.TemperatureArchived) + (heatCapacityToSharer*receiver.TemperatureArchived)) / newSharerHeatCapacity; - } - - // Thermal energy of the system (self and sharer) is unchanged. - - if (MathF.Abs(oldSharerHeatCapacity) > Atmospherics.MinimumHeatCapacity) - { - if (MathF.Abs(newSharerHeatCapacity / oldSharerHeatCapacity - 1) < 0.1) - { - TemperatureShare(receiver, sharer, Atmospherics.OpenHeatTransferCoefficient); - } - } - } - - if (!(temperatureDelta > Atmospherics.MinimumTemperatureToMove) && - !(MathF.Abs(movedMoles) > Atmospherics.MinimumMolesDeltaToMove)) return 0f; - var moles = receiver.TotalMoles; - var theirMoles = sharer.TotalMoles; - - return (receiver.TemperatureArchived * (moles + movedMoles)) - (sharer.TemperatureArchived * (theirMoles - movedMoles)) * Atmospherics.R / receiver.Volume; - - } - - /// - /// Shares temperature between two mixtures, taking a conduction coefficient into account. - /// - public float TemperatureShare(GasMixture receiver, GasMixture sharer, float conductionCoefficient) - { - var temperatureDelta = receiver.TemperatureArchived - sharer.TemperatureArchived; - if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) - { - var heatCapacity = GetHeatCapacityArchived(receiver); - var sharerHeatCapacity = GetHeatCapacityArchived(sharer); - - if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) - { - var heat = conductionCoefficient * temperatureDelta * (heatCapacity * sharerHeatCapacity / (heatCapacity + sharerHeatCapacity)); - - if (!receiver.Immutable) - receiver.Temperature = MathF.Abs(MathF.Max(receiver.Temperature - heat / heatCapacity, Atmospherics.TCMB)); - - if (!sharer.Immutable) - sharer.Temperature = MathF.Abs(MathF.Max(sharer.Temperature + heat / sharerHeatCapacity, Atmospherics.TCMB)); - } - } - - return sharer.Temperature; - } - - /// - /// Shares temperature between a gas mixture and an abstract sharer, taking a conduction coefficient into account. - /// - public float TemperatureShare(GasMixture receiver, float conductionCoefficient, float sharerTemperature, float sharerHeatCapacity) - { - var temperatureDelta = receiver.TemperatureArchived - sharerTemperature; - if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) - { - var heatCapacity = GetHeatCapacityArchived(receiver); - - if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) - { - var heat = conductionCoefficient * temperatureDelta * (heatCapacity * sharerHeatCapacity / (heatCapacity + sharerHeatCapacity)); - - if (!receiver.Immutable) - receiver.Temperature = MathF.Abs(MathF.Max(receiver.Temperature - heat / heatCapacity, Atmospherics.TCMB)); - - sharerTemperature = MathF.Abs(MathF.Max(sharerTemperature + heat / sharerHeatCapacity, Atmospherics.TCMB)); - } - } - - return sharerTemperature; - } - /// /// Releases gas from this mixture to the output mixture. /// If the output mixture is null, then this is being released into space. @@ -362,6 +220,62 @@ public void ScrubInto(GasMixture mixture, GasMixture destination, IReadOnlyColle Merge(destination, buffer); } + /// + /// Checks whether a gas mixture is probably safe. + /// This only checks temperature and pressure, not gas composition. + /// + /// Mixture to be checked. + /// Whether the mixture is probably safe. + public bool IsMixtureProbablySafe(GasMixture? air) + { + // Note that oxygen mix isn't checked, but survival boxes make that not necessary. + if (air == null) + return false; + + switch (air.Pressure) + { + case <= Atmospherics.WarningLowPressure: + case >= Atmospherics.WarningHighPressure: + return false; + } + + switch (air.Temperature) + { + case <= 260: + case >= 360: + return false; + } + + return true; + } + + /// + /// Compares two gas mixtures to see if they are within acceptable ranges for group processing to be enabled. + /// + public GasCompareResult CompareExchange(GasMixture sample, GasMixture otherSample) + { + var moles = 0f; + + for(var i = 0; i < Atmospherics.TotalNumberOfGases; i++) + { + var gasMoles = sample.Moles[i]; + var delta = MathF.Abs(gasMoles - otherSample.Moles[i]); + if (delta > Atmospherics.MinimumMolesDeltaToMove && (delta > gasMoles * Atmospherics.MinimumAirRatioToMove)) + return (GasCompareResult)i; // We can move gases! + moles += gasMoles; + } + + if (moles > Atmospherics.MinimumMolesDeltaToMove) + { + var tempDelta = MathF.Abs(sample.Temperature - otherSample.Temperature); + if (tempDelta > Atmospherics.MinimumTemperatureDeltaToSuspend) + return GasCompareResult.TemperatureExchange; // There can be temperature exchange. + } + + // No exchange at all! + return GasCompareResult.NoExchange; + } + /// /// Performs reactions for a given gas mixture on an optional holder. /// @@ -401,5 +315,11 @@ public ReactionResult React(GasMixture mixture, IGasMixtureHolder? holder) return reaction; } + + public enum GasCompareResult + { + NoExchange = -2, + TemperatureExchange = -1, + } } } diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs deleted file mode 100644 index f2aef8d9bcf3..000000000000 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Grid.cs +++ /dev/null @@ -1,1607 +0,0 @@ -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Runtime.CompilerServices; -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.Maps; -// ReSharper disable once RedundantUsingDirective -using Robust.Shared.Map; -using Robust.Shared.Utility; -using Dependency = Robust.Shared.IoC.DependencyAttribute; - -namespace Content.Server.Atmos.EntitySystems -{ - public sealed partial class AtmosphereSystem - { - [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; - [Dependency] private readonly GasTileOverlaySystem _gasTileOverlaySystem = default!; - - private void InitializeGrid() - { - SubscribeLocalEvent(OnGridAtmosphereInit); - SubscribeLocalEvent(OnGridSplit); - } - - private void OnGridAtmosphereInit(EntityUid uid, GridAtmosphereComponent gridAtmosphere, ComponentInit args) - { - base.Initialize(); - - gridAtmosphere.Tiles.Clear(); - - if (!TryComp(uid, out IMapGridComponent? mapGrid)) - return; - - if (gridAtmosphere.TilesUniqueMixes != null) - { - foreach (var (indices, mix) in gridAtmosphere.TilesUniqueMixes) - { - try - { - gridAtmosphere.Tiles.Add(indices, new TileAtmosphere(mapGrid.Owner, indices, (GasMixture) gridAtmosphere.UniqueMixes![mix].Clone())); - } - catch (ArgumentOutOfRangeException) - { - Logger.Error($"Error during atmos serialization! Tile at {indices} points to an unique mix ({mix}) out of range!"); - throw; - } - - InvalidateTile(gridAtmosphere, indices); - } - } - - GridRepopulateTiles(mapGrid.Grid, gridAtmosphere); - } - - private void OnGridSplit(EntityUid uid, GridAtmosphereComponent originalGridAtmos, ref GridSplitEvent args) - { - foreach (var newGrid in args.NewGrids) - { - // Make extra sure this is a valid grid. - if (!_mapManager.TryGetGrid(newGrid, out var mapGrid)) - continue; - - var entity = mapGrid.GridEntityId; - - // If the new split grid has an atmosphere already somehow, use that. Otherwise, add a new one. - if (!TryComp(entity, out GridAtmosphereComponent? newGridAtmos)) - newGridAtmos = AddComp(entity); - - // We assume the tiles on the new grid have the same coordinates as they did on the old grid... - var enumerator = mapGrid.GetAllTilesEnumerator(); - - while (enumerator.MoveNext(out var tile)) - { - var indices = tile.Value.GridIndices; - - // This split event happens *before* the spaced tiles have been invalidated, therefore we can still - // access their gas data. On the next atmos update tick, these tiles will be spaced. Poof! - if (!originalGridAtmos.Tiles.TryGetValue(indices, out var tileAtmosphere)) - continue; - - // The new grid atmosphere has been initialized, meaning it has all the needed TileAtmospheres... - if (!newGridAtmos.Tiles.TryGetValue(indices, out var newTileAtmosphere)) - // Let's be honest, this is really not gonna happen, but just in case...! - continue; - - // Copy a bunch of data over... Not great, maybe put this in TileAtmosphere? - newTileAtmosphere.Air = tileAtmosphere.Air?.Clone() ?? null; - newTileAtmosphere.Hotspot = tileAtmosphere.Hotspot; - newTileAtmosphere.HeatCapacity = tileAtmosphere.HeatCapacity; - newTileAtmosphere.Temperature = tileAtmosphere.Temperature; - newTileAtmosphere.PressureDifference = tileAtmosphere.PressureDifference; - newTileAtmosphere.PressureDirection = tileAtmosphere.PressureDirection; - - // TODO ATMOS: Somehow force GasTileOverlaySystem to perform an update *right now, right here.* - // The reason why is that right now, gas will flicker until the next GasTileOverlay update. - // That looks bad, of course. We want to avoid that! Anyway that's a bit more complicated so out of scope. - - // Invalidate the tile, it's redundant but redundancy is good! Also HashSet so really, no duplicates. - InvalidateTile(originalGridAtmos, indices); - InvalidateTile(newGridAtmos, indices); - } - } - } - - #region Grid Is Simulated - - /// - /// Returns whether a grid has a simulated atmosphere. - /// - /// Coordinates to be checked. - /// Whether the grid has a simulated atmosphere. - public bool IsSimulatedGrid(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return IsSimulatedGrid(tuple.Value.Grid); - - return false; - } - - /// - /// Returns whether a grid has a simulated atmosphere. - /// - /// Grid to be checked. - /// Whether the grid has a simulated atmosphere. - public bool IsSimulatedGrid(EntityUid? grid) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return false; - - if (HasComp(mapGrid.GridEntityId)) - return true; - - return false; - } - - #endregion - - #region Grid Get All Mixtures - - /// - /// Gets all tile mixtures within a grid atmosphere, optionally invalidating them all. - /// - /// Coordinates where to get the grid to get all tile mixtures from. - /// Whether to invalidate all tiles. - /// All tile mixtures in a grid. - public IEnumerable GetAllTileMixtures(EntityCoordinates coordinates, bool invalidate = false) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetAllTileMixtures(tuple.Value.Grid, invalidate); - - return Enumerable.Empty(); - } - - /// - /// Gets all tile mixtures within a grid atmosphere, optionally invalidating them all. - /// - /// Grid where to get all tile mixtures from. - /// Whether to invalidate all tiles. - /// All tile mixtures in a grid. - public IEnumerable GetAllTileMixtures(EntityUid grid, bool invalidate = false) - { - // Return an array with a single space gas mixture for invalid grids. - if (!grid.IsValid()) - return new []{ GasMixture.SpaceGas }; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return Enumerable.Empty(); - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetAllTileMixtures(gridAtmosphere, invalidate); - } - - return Enumerable.Empty(); - } - - /// - /// Gets all tile mixtures within a grid atmosphere, optionally invalidating them all. - /// - /// Grid Atmosphere to get all mixtures from. - /// Whether to invalidate all mixtures. - /// All the tile mixtures in a grid. - public IEnumerable GetAllTileMixtures(GridAtmosphereComponent gridAtmosphere, bool invalidate = false) - { - foreach (var (indices, tile) in gridAtmosphere.Tiles) - { - if (tile.Air == null) - continue; - - if (invalidate) - InvalidateTile(gridAtmosphere, indices); - - yield return tile.Air; - } - } - - #endregion - - #region Grid Cell Volume - - /// - /// Gets the volume in liters for a number of tiles, on a specific grid. - /// - /// The grid in question. - /// The amount of tiles. - /// The volume in liters that the tiles occupy. - public float GetVolumeForTiles(EntityUid grid, int tiles = 1) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return Atmospherics.CellVolume * tiles; - - return GetVolumeForTiles(mapGrid, tiles); - - } - - /// - /// Gets the volume in liters for a number of tiles, on a specific grid. - /// - /// The grid in question. - /// The amount of tiles. - /// The volume in liters that the tiles occupy. - public float GetVolumeForTiles(IMapGrid mapGrid, int tiles = 1) - { - return Atmospherics.CellVolume * mapGrid.TileSize * tiles; - - } - - #endregion - - #region Grid Get Obstructing - - /// - /// Gets all obstructing AirtightComponent instances in a specific tile. - /// - /// The grid where to get the tile. - /// The indices of the tile. - /// - public IEnumerable GetObstructingComponents(IMapGrid mapGrid, Vector2i tile) - { - var airQuery = GetEntityQuery(); - var enumerator = mapGrid.GetAnchoredEntitiesEnumerator(tile); - - while (enumerator.MoveNext(out var uid)) - { - if (!airQuery.TryGetComponent(uid.Value, out var airtight)) continue; - yield return airtight; - } - } - - public AtmosObstructionEnumerator GetObstructingComponentsEnumerator(IMapGrid mapGrid, Vector2i tile) - { - var ancEnumerator = mapGrid.GetAnchoredEntitiesEnumerator(tile); - var airQuery = GetEntityQuery(); - - var enumerator = new AtmosObstructionEnumerator(ancEnumerator, airQuery); - return enumerator; - } - - private AtmosDirection GetBlockedDirections(IMapGrid mapGrid, Vector2i indices) - { - var value = AtmosDirection.Invalid; - var enumerator = GetObstructingComponentsEnumerator(mapGrid, indices); - - while (enumerator.MoveNext(out var airtightComponent)) - { - if (airtightComponent.AirBlocked) - value |= airtightComponent.AirBlockedDirection; - } - - return value; - } - - #endregion - - #region Grid Repopulate - - /// - /// Repopulates all tiles on a grid atmosphere. - /// - /// The grid where to get all valid tiles from. - /// The grid atmosphere where the tiles will be repopulated. - public void GridRepopulateTiles(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere) - { - var volume = GetVolumeForTiles(mapGrid, 1); - - foreach (var tile in mapGrid.GetAllTiles()) - { - if(!gridAtmosphere.Tiles.ContainsKey(tile.GridIndices)) - gridAtmosphere.Tiles[tile.GridIndices] = new TileAtmosphere(tile.GridUid, tile.GridIndices, new GasMixture(volume){Temperature = Atmospherics.T20C}); - - InvalidateTile(gridAtmosphere, tile.GridIndices); - } - - foreach (var (position, tile) in gridAtmosphere.Tiles.ToArray()) - { - UpdateAdjacent(mapGrid, gridAtmosphere, tile); - InvalidateVisuals(mapGrid.GridEntityId, position); - } - } - - #endregion - - #region Tile Pry - - /// - /// Pries a tile in a grid. - /// - /// The grid in question. - /// The indices of the tile. - private void PryTile(IMapGrid mapGrid, Vector2i tile) - { - if (!mapGrid.TryGetTileRef(tile, out var tileRef)) - return; - - tileRef.PryTile(_mapManager, _tileDefinitionManager, EntityManager, _robustRandom); - } - - #endregion - - #region Tile Invalidate - - /// - /// Invalidates a tile at a certain position. - /// - /// Coordinates of the tile. - public void InvalidateTile(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - InvalidateTile(tuple.Value.Grid, tuple.Value.Tile); - } - - /// - /// Invalidates a tile at a certain position. - /// - /// Grid where to invalidate the tile. - /// The indices of the tile. - public void InvalidateTile(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - InvalidateTile(gridAtmosphere, tile); - return; - } - } - - /// - /// Invalidates a tile at a certain position. - /// - /// Grid Atmosphere where to invalidate the tile. - /// The tile's indices. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void InvalidateTile(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - gridAtmosphere.InvalidatedCoords.Add(tile); - } - - #endregion - - #region Tile Invalidate Visuals - - public void InvalidateVisuals(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - InvalidateVisuals(tuple.Value.Grid, tuple.Value.Tile); - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void InvalidateVisuals(EntityUid grid, Vector2i tile) - { - _gasTileOverlaySystem.Invalidate(grid, tile); - } - - #endregion - - #region Tile Atmosphere Get - - /// - /// Gets the tile atmosphere in a position, or null. - /// - /// Coordinates where to get the tile. - /// Do NOT use this outside of atmos internals. - /// The Tile Atmosphere in the position, or null if not on a grid. - public TileAtmosphere? GetTileAtmosphere(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetTileAtmosphere(tuple.Value.Grid, tuple.Value.Tile); - - return null; - } - - /// - /// Gets the tile atmosphere in a position, or null. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Do NOT use this outside of atmos internals. - /// The Tile Atmosphere in the position, or null. - public TileAtmosphere? GetTileAtmosphere(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return null; - - if(TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetTileAtmosphere(gridAtmosphere, tile); - } - - return null; - } - - /// - /// Gets the tile atmosphere in a position, or null. - /// - /// Grid atmosphere where to get the tile. - /// Indices of the tile. - /// Do NOT use this outside of atmos internals. - /// The Tile Atmosphere in the position, or null. - public TileAtmosphere? GetTileAtmosphere(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return tileAtmosphere; - - return null; - } - - /// - /// Gets the tile atmosphere in a position and if not possible returns a space tile or null. - /// - /// Coordinates of the tile. - /// Do NOT use this outside of atmos internals. - /// The tile atmosphere of a specific position in a grid, a space tile atmosphere if the tile is space or null if not on a grid. - public TileAtmosphere? GetTileAtmosphereOrCreateSpace(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetTileAtmosphereOrCreateSpace(tuple.Value.Grid, tuple.Value.Tile); - - return null; - } - - /// - /// Gets the tile atmosphere in a position and if not possible returns a space tile or null. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Do NOT use this outside of atmos internals. - /// The tile atmosphere of a specific position in a grid, a space tile atmosphere if the tile is space or null if the grid doesn't exist. - public TileAtmosphere? GetTileAtmosphereOrCreateSpace(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return null; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetTileAtmosphereOrCreateSpace(mapGrid, gridAtmosphere, tile); - } - - return null; - } - - /// - /// Gets the tile atmosphere in a position and if not possible returns a space tile or null. - /// - /// Grid where to get the tile. - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - /// Do NOT use this outside of atmos internals. - /// The tile atmosphere of a specific position in a grid or a space tile atmosphere if the tile is space. - public TileAtmosphere GetTileAtmosphereOrCreateSpace(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - var tileAtmosphere = GetTileAtmosphere(gridAtmosphere, tile); - - // Please note, you might run into a race condition when using this or GetTileAtmosphere. - // The race condition occurs when a tile goes from being space to not-space, and then something - // attempts to get the tile atmosphere for it before it has been revalidated by atmos. - // The tile atmosphere will get revalidated on the next atmos tick, however. - - return tileAtmosphere ?? new TileAtmosphere(mapGrid.GridEntityId, tile, new GasMixture(Atmospherics.CellVolume) {Temperature = Atmospherics.TCMB}, true); - } - - #endregion - - #region Tile Active Add - - /// - /// Makes a tile become active and start processing. - /// - /// Coordinates where to get the tile. - public void AddActiveTile(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - AddActiveTile(tuple.Value.Grid, tuple.Value.Tile); - } - - /// - /// Makes a tile become active and start processing. - /// - /// Grid where to get the tile. - /// Indices of the tile to be activated. - public void AddActiveTile(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - AddActiveTile(gridAtmosphere, tile); - return; - } - } - - /// - /// Makes a tile become active and start processing. - /// - /// Grid Atmosphere where to get the tile. - /// Indices of the tile to be activated. - public void AddActiveTile(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - AddActiveTile(gridAtmosphere, tileAtmosphere); - } - - /// - /// Makes a tile become active and start processing. Does NOT check if the tile belongs to the grid atmos. - /// - /// Grid Atmosphere where to get the tile. - /// Tile Atmosphere to be activated. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private void AddActiveTile(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile) - { - if (tile.Air == null) - return; - - tile.Excited = true; - gridAtmosphere.ActiveTiles.Add(tile); - } - - #endregion - - #region Tile Active Remove - - /// - /// Makes a tile become inactive and stop processing. - /// - /// Coordinates where to get the tile. - /// Whether to dispose of the tile's - public void RemoveActiveTile(EntityCoordinates coordinates, bool disposeExcitedGroup = true) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - RemoveActiveTile(tuple.Value.Grid, tuple.Value.Tile, disposeExcitedGroup); - } - - /// - /// Makes a tile become inactive and stop processing. - /// - /// Grid where to get the tile. - /// Indices of the tile to be deactivated. - /// Whether to dispose of the tile's - public void RemoveActiveTile(EntityUid grid, Vector2i tile, bool disposeExcitedGroup = true) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - RemoveActiveTile(gridAtmosphere, tile); - return; - } - } - - /// - /// Makes a tile become inactive and stop processing. - /// - /// Grid Atmosphere where to get the tile. - /// Indices of the tile to be deactivated. - /// Whether to dispose of the tile's - public void RemoveActiveTile(GridAtmosphereComponent gridAtmosphere, Vector2i tile, bool disposeExcitedGroup = true) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - RemoveActiveTile(gridAtmosphere, tileAtmosphere, disposeExcitedGroup); - } - - /// - /// Makes a tile become inactive and stop processing. - /// - /// Grid Atmosphere where to get the tile. - /// Tile Atmosphere to be deactivated. - /// Whether to dispose of the tile's - private void RemoveActiveTile(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, bool disposeExcitedGroup = true) - { - tile.Excited = false; - gridAtmosphere.ActiveTiles.Remove(tile); - - if (tile.ExcitedGroup == null) - return; - - if (disposeExcitedGroup) - ExcitedGroupDispose(gridAtmosphere, tile.ExcitedGroup); - else - ExcitedGroupRemoveTile(tile.ExcitedGroup, tile); - } - - #endregion - - #region Tile Mixture - - /// - /// Returns a reference to the gas mixture on a tile, or null. - /// - /// Coordinates where to get the tile. - /// Whether to invalidate the tile. - /// The tile mixture, or null - public GasMixture? GetTileMixture(EntityCoordinates coordinates, bool invalidate = false) - { - return TryGetGridAndTile(coordinates, out var tuple) - ? GetTileMixture(tuple.Value.Grid, tuple.Value.Tile, invalidate) : GasMixture.SpaceGas; - } - - /// - /// Returns a reference to the gas mixture on a tile, or null. - /// - /// Grid where to get the tile air. - /// Indices of the tile. - /// Whether to invalidate the tile. - /// The tile mixture, or null - public GasMixture? GetTileMixture(EntityUid grid, Vector2i tile, bool invalidate = false) - { - // Always return space gas mixtures for invalid grids (grid 0) - if (!grid.IsValid()) - return GasMixture.SpaceGas; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return null; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetTileMixture(gridAtmosphere, tile, invalidate); - } - - if (TryComp(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) - { - // Always return a new space gas mixture in this case. - return GasMixture.SpaceGas; - } - - return null; - } - - /// - /// Returns a reference to the gas mixture on a tile, or null. - /// - /// Grid Atmosphere where to get the tile air. - /// Indices of the tile. - /// Whether to invalidate the tile. - /// The tile mixture, or null - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public GasMixture? GetTileMixture(GridAtmosphereComponent gridAtmosphere, Vector2i tile, bool invalidate = false) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return null; - - // Invalidate the tile if needed. - if (invalidate) - InvalidateTile(gridAtmosphere, tile); - - // Return actual tile air or null. - return tileAtmosphere.Air; - } - - #endregion - - #region Tile React - - /// - /// Causes a gas mixture reaction on a specific tile. - /// - /// Coordinates where to get the tile. - /// Reaction results. - public ReactionResult React(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return React(tuple.Value.Grid, tuple.Value.Tile); - - return ReactionResult.NoReaction; - } - - /// - /// Causes a gas mixture reaction on a specific tile. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Reaction results. - public ReactionResult React(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return ReactionResult.NoReaction; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return React(gridAtmosphere, tile); - } - - return ReactionResult.NoReaction; - } - - /// - /// Causes a gas mixture reaction on a specific tile. - /// - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - /// Reaction results. - public ReactionResult React(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere) || tileAtmosphere.Air == null) - return ReactionResult.NoReaction; - - InvalidateTile(gridAtmosphere, tile); - - return React(tileAtmosphere.Air, tileAtmosphere); - } - - #endregion - - #region Tile Air-blocked - - /// - /// Returns if the tile in question is "air-blocked" in a certain direction or not. - /// This could be due to a number of reasons, such as walls, doors, etc. - /// - /// Coordinates where to get the tile. - /// Directions to check. - /// Whether the tile is blocked in the directions specified. - public bool IsTileAirBlocked(EntityCoordinates coordinates, AtmosDirection direction = AtmosDirection.All) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return IsTileAirBlocked(tuple.Value.Grid, tuple.Value.Tile, direction); - - return false; - } - - /// - /// Returns if the tile in question is "air-blocked" in a certain direction or not. - /// This could be due to a number of reasons, such as walls, doors, etc. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Directions to check. - /// Whether the tile is blocked in the directions specified. - public bool IsTileAirBlocked(EntityUid grid, Vector2i tile, AtmosDirection direction = AtmosDirection.All) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return false; - - return IsTileAirBlocked(mapGrid, tile, direction); - } - - /// - /// Returns if the tile in question is "air-blocked" in a certain direction or not. - /// This could be due to a number of reasons, such as walls, doors, etc. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Directions to check. - /// Whether the tile is blocked in the directions specified. - public bool IsTileAirBlocked(IMapGrid mapGrid, Vector2i tile, AtmosDirection direction = AtmosDirection.All) - { - var directions = AtmosDirection.Invalid; - - var enumerator = GetObstructingComponentsEnumerator(mapGrid, tile); - - while (enumerator.MoveNext(out var obstructingComponent)) - { - if (!obstructingComponent.AirBlocked) - continue; - - // We set the directions that are air-blocked so far, - // as you could have a full obstruction with only 4 directional air blockers. - directions |= obstructingComponent.AirBlockedDirection; - - if (directions.IsFlagSet(direction)) - return true; - } - - return false; - } - - #endregion - - #region Tile Space - - /// - /// Returns whether the specified tile is a space tile or not. - /// - /// Coordinates where to check the tile. - /// Whether the tile is space or not. - public bool IsTileSpace(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return IsTileSpace(tuple.Value.Grid, tuple.Value.Tile); - - return true; - } - - /// - /// Returns whether the specified tile is a space tile or not. - /// - /// Grid where to check the tile. - /// Indices of the tile. - /// Whether the tile is space or not. - public bool IsTileSpace(EntityUid grid, Vector2i tile) - { - return !_mapManager.TryGetGrid(grid, out var mapGrid) || IsTileSpace(mapGrid, tile); - } - - public bool IsTileSpace(IMapGrid mapGrid, Vector2i tile) - { - if (!mapGrid.TryGetTileRef(tile, out var tileRef)) - return true; - - return ((ContentTileDefinition) _tileDefinitionManager[tileRef.Tile.TypeId]).IsSpace; - } - - #endregion - - #region Tile Get Heat Capacity - - /// - /// Get a tile's heat capacity, based on the tile type, tile contents and tile gas mixture. - /// - public float GetTileHeatCapacity(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetTileHeatCapacity(tuple.Value.Grid, tuple.Value.Tile); - - return Atmospherics.MinimumHeatCapacity; - } - - /// - /// Get a tile's heat capacity, based on the tile type, tile contents and tile gas mixture. - /// - public float GetTileHeatCapacity(EntityUid grid, Vector2i tile) - { - // Always return space gas mixtures for invalid grids (grid 0) - if (!grid.IsValid()) - return Atmospherics.MinimumHeatCapacity; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return Atmospherics.MinimumHeatCapacity; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetTileHeatCapacity(gridAtmosphere, tile); - } - - if (TryComp(mapGrid.GridEntityId, out SpaceAtmosphereComponent? _)) - { - return Atmospherics.SpaceHeatCapacity; - } - - return Atmospherics.MinimumHeatCapacity; - } - - /// - /// Get a tile's heat capacity, based on the tile type, tile contents and tile gas mixture. - /// - public float GetTileHeatCapacity(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return Atmospherics.MinimumHeatCapacity; - - return GetTileHeatCapacity(tileAtmosphere); - } - - /// - /// Get a tile's heat capacity, based on the tile type, tile contents and tile gas mixture. - /// - public float GetTileHeatCapacity(TileAtmosphere tile) - { - return tile.HeatCapacity + (tile.Air == null ? 0 : GetHeatCapacity(tile.Air)); - } - - #endregion - - #region Adjacent Get Positions - - /// - /// Gets all the positions adjacent to a tile. Can include air-blocked directions. - /// - /// Coordinates where to get the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// The positions adjacent to the tile. - public IEnumerable GetAdjacentTiles(EntityCoordinates coordinates, bool includeBlocked = false) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetAdjacentTiles(tuple.Value.Grid, tuple.Value.Tile, includeBlocked); - - return Enumerable.Empty(); - } - - /// - /// Gets all the positions adjacent to a tile. Can include air-blocked directions. - /// - /// Grid where to get the tiles. - /// Indices of the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// The positions adjacent to the tile. - public IEnumerable GetAdjacentTiles(EntityUid grid, Vector2i tile, bool includeBlocked = false) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return Enumerable.Empty(); - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetAdjacentTiles(gridAtmosphere, tile, includeBlocked); - } - - return Enumerable.Empty(); - } - - /// - /// Gets all the positions adjacent to a tile. Can include air-blocked directions. - /// - /// Grid Atmosphere where to get the tiles. - /// Indices of the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// The positions adjacent to the tile. - public IEnumerable GetAdjacentTiles(GridAtmosphereComponent gridAtmosphere, Vector2i tile, bool includeBlocked = false) - { - if(!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - yield break; - - for (var i = 0; i < tileAtmosphere.AdjacentTiles.Length; i++) - { - var adjacentTile = tileAtmosphere.AdjacentTiles[i]; - // TileAtmosphere has nullable disabled, so just in case... - // ReSharper disable once ConditionIsAlwaysTrueOrFalse - if (adjacentTile?.Air == null) - continue; - - if (!includeBlocked) - { - var direction = (AtmosDirection) (1 << i); - if (tileAtmosphere.BlockedAirflow.IsFlagSet(direction)) - continue; - } - - yield return adjacentTile.GridIndices; - } - } - - #endregion - - #region Adjacent Get Mixture - - /// - /// Gets all tile gas mixtures adjacent to a specific tile, and optionally invalidates them. - /// Does not return the tile in question, only the adjacent ones. - /// - /// Coordinates where to get the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// Whether to invalidate all adjacent tiles. - /// All adjacent tile gas mixtures to the tile in question - public IEnumerable GetAdjacentTileMixtures(EntityCoordinates coordinates, bool includeBlocked = false, bool invalidate = false) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return GetAdjacentTileMixtures(tuple.Value.Grid, tuple.Value.Tile, includeBlocked, invalidate); - - return Enumerable.Empty(); - } - - /// - /// Gets all tile gas mixtures adjacent to a specific tile, and optionally invalidates them. - /// Does not return the tile in question, only the adjacent ones. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// Whether to invalidate all adjacent tiles. - /// All adjacent tile gas mixtures to the tile in question - public IEnumerable GetAdjacentTileMixtures(EntityUid grid, Vector2i tile, bool includeBlocked = false, bool invalidate = false) - { - // For invalid grids, return an array with a single space gas mixture in it. - if (!grid.IsValid()) - return new []{ GasMixture.SpaceGas }; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return Enumerable.Empty(); - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return GetAdjacentTileMixtures(gridAtmosphere, tile, includeBlocked, invalidate); - } - - return Enumerable.Empty(); - } - - /// - /// Gets all tile gas mixtures adjacent to a specific tile, and optionally invalidates them. - /// Does not return the tile in question, only the adjacent ones. - /// - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - /// Whether to include tiles in directions the tile is air-blocked in. - /// Whether to invalidate all adjacent tiles. - /// All adjacent tile gas mixtures to the tile in question - public IEnumerable GetAdjacentTileMixtures(GridAtmosphereComponent gridAtmosphere, Vector2i tile, bool includeBlocked = false, bool invalidate = false) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return Enumerable.Empty(); - - return GetAdjacentTileMixtures(gridAtmosphere, tileAtmosphere, includeBlocked, invalidate); - } - - /// - /// Gets all tile gas mixtures adjacent to a specific tile, and optionally invalidates them. - /// Does not return the tile in question, only the adjacent ones. - /// - /// Grid Atmosphere where the tile is. - /// Tile Atmosphere in question. - /// Whether to include tiles in directions the tile is air-blocked in. - /// Whether to invalidate all adjacent tiles. - /// All adjacent tile gas mixtures to the tile in question - private IEnumerable GetAdjacentTileMixtures(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, bool includeBlocked = false, bool invalidate = false) - { - for (var i = 0; i < tile.AdjacentTiles.Length; i++) - { - var adjacentTile = tile.AdjacentTiles[i]; - - // TileAtmosphere has nullable disabled, so just in case... - // ReSharper disable once ConditionIsAlwaysTrueOrFalse - if (adjacentTile?.Air == null) - continue; - - if (!includeBlocked) - { - var direction = (AtmosDirection) (1 << i); - if (tile.BlockedAirflow.IsFlagSet(direction)) - continue; - } - - if (invalidate) - InvalidateTile(gridAtmosphere, adjacentTile.GridIndices); - - yield return adjacentTile.Air; - } - } - - #endregion - - #region Adjacent Update - - /// - /// Immediately updates a tile's blocked air directions. - /// - /// Coordinates where to get the tile. - public void UpdateAdjacent(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - UpdateAdjacent(tuple.Value.Grid, tuple.Value.Tile); - } - - /// - /// Immediately updates a tile's blocked air directions. - /// - /// Grid where to get the tile. - /// Indices of the tile. - public void UpdateAdjacent(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - UpdateAdjacent(mapGrid, gridAtmosphere, tile); - return; - } - } - - /// - /// Immediately updates a tile's blocked air directions. - /// - /// Grid where to get the tile. - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - public void UpdateAdjacent(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - UpdateAdjacent(mapGrid, gridAtmosphere, tileAtmosphere); - } - - /// - /// Immediately updates a tile's blocked air directions. - /// - /// Grid where to get the tile. - /// Grid Atmosphere of the tile. - /// Tile Atmosphere to be updated. - private void UpdateAdjacent(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere, TileAtmosphere tileAtmosphere) - { - tileAtmosphere.AdjacentBits = AtmosDirection.Invalid; - tileAtmosphere.BlockedAirflow = GetBlockedDirections(mapGrid, tileAtmosphere.GridIndices); - - for (var i = 0; i < Atmospherics.Directions; i++) - { - var direction = (AtmosDirection) (1 << i); - - var otherIndices = tileAtmosphere.GridIndices.Offset(direction); - - var adjacent = GetTileAtmosphereOrCreateSpace(mapGrid, gridAtmosphere, otherIndices); - tileAtmosphere.AdjacentTiles[direction.ToIndex()] = adjacent; - - UpdateAdjacent(mapGrid, gridAtmosphere, adjacent, direction.GetOpposite()); - - if (!tileAtmosphere.BlockedAirflow.IsFlagSet(direction) - && !IsTileAirBlocked(mapGrid, adjacent.GridIndices, direction.GetOpposite())) - { - tileAtmosphere.AdjacentBits |= direction; - } - } - - if (!tileAtmosphere.AdjacentBits.IsFlagSet(tileAtmosphere.MonstermosInfo.CurrentTransferDirection)) - tileAtmosphere.MonstermosInfo.CurrentTransferDirection = AtmosDirection.Invalid; - } - - /// - /// Immediately updates a tile's single blocked air direction. - /// - /// Coordinates where to get the tile. - /// Direction to be updated. - public void UpdateAdjacent(EntityCoordinates coordinates, AtmosDirection direction) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - UpdateAdjacent(tuple.Value.Grid, tuple.Value.Tile, direction); - } - - /// - /// Immediately updates a tile's single blocked air direction. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Direction to be updated. - public void UpdateAdjacent(EntityUid grid, Vector2i tile, AtmosDirection direction) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - UpdateAdjacent(mapGrid, gridAtmosphere, tile, direction); - return; - } - } - - /// - /// Immediately updates a tile's single blocked air direction. - /// - /// Grid where to get the tile. - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - /// Direction to be updated. - public void UpdateAdjacent(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere, Vector2i tile, AtmosDirection direction) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - UpdateAdjacent(mapGrid, gridAtmosphere, tileAtmosphere, direction); - } - - /// - /// Immediately updates a tile's single blocked air direction. - /// - /// Grid where to get the tile. - /// Grid where to get the tile. - /// Tile Atmosphere to be updated. - /// Direction to be updated. - private void UpdateAdjacent(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, AtmosDirection direction) - { - tile.AdjacentTiles[direction.ToIndex()] = GetTileAtmosphereOrCreateSpace(mapGrid, gridAtmosphere, tile.GridIndices.Offset(direction)); - - if (!tile.BlockedAirflow.IsFlagSet(direction) && !IsTileAirBlocked(mapGrid, tile.GridIndices.Offset(direction), direction.GetOpposite())) - { - tile.AdjacentBits |= direction; - } - else - { - tile.AdjacentBits &= ~direction; - } - - if (!tile.AdjacentBits.IsFlagSet(tile.MonstermosInfo.CurrentTransferDirection)) - tile.MonstermosInfo.CurrentTransferDirection = AtmosDirection.Invalid; - } - - #endregion - - #region Hotspot Expose - - /// - /// Exposes temperature to a tile, creating a hotspot (fire) if the conditions are ideal. - /// Can also be used to make an existing hotspot hotter/bigger. Also invalidates the tile. - /// - /// Coordinates where to get the tile. - /// Temperature to expose to the tile. - /// Volume of the exposed temperature. - /// If true, the existing hotspot values will be set to the exposed values, but only if they're smaller. - public void HotspotExpose(EntityCoordinates coordinates, float exposedTemperature, float exposedVolume, bool soh = false) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - HotspotExpose(tuple.Value.Grid, tuple.Value.Tile, exposedTemperature, exposedVolume, soh); - } - - /// - /// Exposes temperature to a tile, creating a hotspot (fire) if the conditions are ideal. - /// Can also be used to make an existing hotspot hotter/bigger. Also invalidates the tile. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Temperature to expose to the tile. - /// Volume of the exposed temperature. - /// If true, the existing hotspot values will be set to the exposed values, but only if they're smaller. - public void HotspotExpose(EntityUid grid, Vector2i tile, float exposedTemperature, float exposedVolume, bool soh = false) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - var tileAtmosphere = GetTileAtmosphere(gridAtmosphere, tile); - - if (tileAtmosphere == null) - return; - - HotspotExpose(gridAtmosphere, tileAtmosphere, exposedTemperature, exposedVolume, soh); - InvalidateTile(gridAtmosphere, tile); - return; - } - } - - #endregion - - #region Hotspot Extinguish - - /// - /// Extinguishes a hotspot (fire) on a certain tile, if any. Also invalidates the tile. - /// - /// Coordinates where to get the tile. - public void HotspotExtinguish(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - HotspotExtinguish(tuple.Value.Grid, tuple.Value.Tile); - } - - /// - /// Extinguishes a hotspot (fire) on a certain tile, if any. Also invalidates the tile. - /// - /// Grid where to get the tile. - /// Indices of the tile. - public void HotspotExtinguish(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - HotspotExtinguish(gridAtmosphere, tile); - return; - } - } - - /// - /// Extinguishes a hotspot (fire) on a certain tile, if any. Also invalidates the tile. - /// - /// Grid Atmosphere where to get the tile. - /// Indices of the tile. - public void HotspotExtinguish(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - tileAtmosphere.Hotspot = new Hotspot(); - InvalidateTile(gridAtmosphere, tile); - } - - #endregion - - #region Hotspot Active - - /// - /// Returns whether there's an active hotspot (fire) on a certain tile. - /// - /// Position where to get the tile. - /// Whether the hotspot is active or not. - public bool IsHotspotActive(EntityCoordinates coordinates) - { - if (TryGetGridAndTile(coordinates, out var tuple)) - return IsHotspotActive(tuple.Value.Grid, tuple.Value.Tile); - - return false; - } - - /// - /// Returns whether there's an active hotspot (fire) on a certain tile. - /// - /// Grid where to get the tile - /// Indices for the tile - /// Whether the hotspot is active or not. - public bool IsHotspotActive(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return false; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - return IsHotspotActive(gridAtmosphere, tile); - } - - return false; - } - - /// - /// Returns whether there's an active hotspot (fire) on a certain tile. - /// - /// Grid Atmosphere where to get the tile - /// Indices for the tile - /// Whether the hotspot is active or not. - public bool IsHotspotActive(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return false; - - return tileAtmosphere.Hotspot.Valid; - } - - #endregion - - #region PipeNet Add - - public void AddPipeNet(PipeNet pipeNet) - { - if (!_mapManager.TryGetGrid(pipeNet.Grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - gridAtmosphere.PipeNets.Add(pipeNet); - } - } - - #endregion - - #region PipeNet Remove - - public void RemovePipeNet(PipeNet pipeNet) - { - if (!_mapManager.TryGetGrid(pipeNet.Grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - gridAtmosphere.PipeNets.Remove(pipeNet); - } - } - - #endregion - - #region AtmosDevice Add - - public bool AddAtmosDevice(AtmosDeviceComponent atmosDevice) - { - var grid = Comp(atmosDevice.Owner).GridUid; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return false; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - atmosDevice.JoinedGrid = grid; - gridAtmosphere.AtmosDevices.Add(atmosDevice); - return true; - } - - return false; - } - - #endregion - - #region AtmosDevice Remove - - public bool RemoveAtmosDevice(AtmosDeviceComponent atmosDevice) - { - if (atmosDevice.JoinedGrid == null) - return false; - - var grid = atmosDevice.JoinedGrid.Value; - - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return false; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere) - && gridAtmosphere.AtmosDevices.Contains(atmosDevice)) - { - atmosDevice.JoinedGrid = null; - gridAtmosphere.AtmosDevices.Remove(atmosDevice); - return true; - } - - return false; - } - - #endregion - - #region Mixture Safety - - /// - /// Checks whether a tile's gas mixture is probably safe. - /// This only checks temperature and pressure, not gas composition. - /// - /// Coordinates where to get the tile. - /// Whether the tile's gas mixture is probably safe. - public bool IsTileMixtureProbablySafe(EntityCoordinates coordinates) - { - return IsMixtureProbablySafe(GetTileMixture(coordinates)); - } - - /// - /// Checks whether a tile's gas mixture is probably safe. - /// This only checks temperature and pressure, not gas composition. - /// - /// Grid where to get the tile. - /// Indices of the tile. - /// Whether the tile's gas mixture is probably safe. - public bool IsTileMixtureProbablySafe(EntityUid grid, Vector2i tile) - { - return IsMixtureProbablySafe(GetTileMixture(grid, tile)); - } - - /// - /// Checks whether a gas mixture is probably safe. - /// This only checks temperature and pressure, not gas composition. - /// - /// Mixture to be checked. - /// Whether the mixture is probably safe. - public bool IsMixtureProbablySafe(GasMixture? air) - { - // Note that oxygen mix isn't checked, but survival boxes make that not necessary. - if (air == null) - return false; - - switch (air.Pressure) - { - case <= Atmospherics.WarningLowPressure: - case >= Atmospherics.WarningHighPressure: - return false; - } - - switch (air.Temperature) - { - case <= 260: - case >= 360: - return false; - } - - return true; - } - - #endregion - - #region Fix Vacuum - - /// - /// Attempts to fix a sudden vacuum by creating gas based on adjacent tiles. - /// - /// Coordinates where to get the tile. - public void FixVacuum(EntityCoordinates coordinates) - { - if(TryGetGridAndTile(coordinates, out var tuple)) - FixVacuum(tuple.Value.Grid, tuple.Value.Tile); - } - - /// - /// Attempts to fix a sudden vacuum by creating gas based on adjacent tiles. - /// - /// Grid where to get the tile. - /// Indices of the tile. - public void FixVacuum(EntityUid grid, Vector2i tile) - { - if (!_mapManager.TryGetGrid(grid, out var mapGrid)) - return; - - if (TryComp(mapGrid.GridEntityId, out GridAtmosphereComponent? gridAtmosphere)) - { - FixVacuum(gridAtmosphere, tile); - return; - } - } - - public void FixVacuum(GridAtmosphereComponent gridAtmosphere, Vector2i tile) - { - if (!gridAtmosphere.Tiles.TryGetValue(tile, out var tileAtmosphere)) - return; - - var adjacent = GetAdjacentTileMixtures(gridAtmosphere, tileAtmosphere, false, true).ToArray(); - tileAtmosphere.Air = new GasMixture(GetVolumeForTiles(tileAtmosphere.GridIndex, 1)) - {Temperature = Atmospherics.T20C}; - - // Return early, let's not cause any funny NaNs. - if (adjacent.Length == 0) - return; - - var ratio = 1f / adjacent.Length; - var totalTemperature = 0f; - - foreach (var adj in adjacent) - { - totalTemperature += adj.Temperature; - - // Remove a bit of gas from the adjacent ratio... - var mix = adj.RemoveRatio(ratio); - - // And merge it to the new tile air. - Merge(tileAtmosphere.Air, mix); - - // Return removed gas to its original mixture. - Merge(adj, mix); - } - - // New temperature is the arithmetic mean of the sum of the adjacent temperatures... - tileAtmosphere.Air.Temperature = totalTemperature / adjacent.Length; - } - - public bool NeedsVacuumFixing(IMapGrid mapGrid, Vector2i indices) - { - var value = false; - - foreach (var airtightComponent in GetObstructingComponents(mapGrid, indices)) - { - value |= airtightComponent.FixVacuum; - } - - return value; - } - - #endregion - - #region Position Helpers - - private TileRef? GetTile(TileAtmosphere tile) - { - return tile.GridIndices.GetTileRef(tile.GridIndex, _mapManager); - } - - public bool TryGetGridAndTile(MapCoordinates coordinates, [NotNullWhen(true)] out (EntityUid Grid, Vector2i Tile)? tuple) - { - if (!_mapManager.TryFindGridAt(coordinates, out var grid)) - { - tuple = null; - return false; - } - - tuple = (grid.GridEntityId, grid.TileIndicesFor(coordinates)); - return true; - } - - public bool TryGetGridAndTile(EntityCoordinates coordinates, [NotNullWhen(true)] out (EntityUid Grid, Vector2i Tile)? tuple) - { - if (!coordinates.IsValid(EntityManager)) - { - tuple = null; - return false; - } - - var gridId = coordinates.GetGridUid(EntityManager); - - if (!_mapManager.TryGetGrid(gridId, out var grid)) - { - tuple = null; - return false; - } - - tuple = (gridId.Value, grid.TileIndicesFor(coordinates)); - return true; - } - - public bool TryGetMapGrid(GridAtmosphereComponent gridAtmosphere, [NotNullWhen(true)] out IMapGrid? mapGrid) - { - if (TryComp(gridAtmosphere.Owner, out IMapGridComponent? mapGridComponent)) - { - mapGrid = mapGridComponent.Grid; - return true; - } - - mapGrid = null; - return false; - } - - #endregion - } -} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs new file mode 100644 index 000000000000..69d42186e585 --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.GridAtmosphere.cs @@ -0,0 +1,549 @@ +using System.Linq; +using Content.Server.Atmos.Components; +using Content.Server.Atmos.Reactions; +using Content.Shared.Atmos; +using Content.Shared.Maps; +using Robust.Shared.Map; +using Robust.Shared.Utility; + +namespace Content.Server.Atmos.EntitySystems; + +public sealed partial class AtmosphereSystem +{ + private void InitializeGridAtmosphere() + { + SubscribeLocalEvent(OnGridAtmosphereInit); + SubscribeLocalEvent(OnGridSplit); + + #region Atmos API Subscriptions + + SubscribeLocalEvent(GridHasAtmosphere); + SubscribeLocalEvent(GridIsSimulated); + SubscribeLocalEvent(GridGetAllMixtures); + SubscribeLocalEvent(GridInvalidateTile); + SubscribeLocalEvent(GridGetTileMixture); + SubscribeLocalEvent(GridReactTile); + SubscribeLocalEvent(GridIsTileAirBlocked); + SubscribeLocalEvent(GridIsTileSpace); + SubscribeLocalEvent(GridGetAdjacentTiles); + SubscribeLocalEvent(GridGetAdjacentTileMixtures); + SubscribeLocalEvent(GridUpdateAdjacent); + SubscribeLocalEvent(GridHotspotExpose); + SubscribeLocalEvent(GridHotspotExtinguish); + SubscribeLocalEvent(GridIsHotspotActive); + SubscribeLocalEvent(GridFixTileVacuum); + SubscribeLocalEvent(GridAddPipeNet); + SubscribeLocalEvent(GridRemovePipeNet); + SubscribeLocalEvent(GridAddAtmosDevice); + SubscribeLocalEvent(GridRemoveAtmosDevice); + + #endregion + } + + private void OnGridAtmosphereInit(EntityUid uid, GridAtmosphereComponent gridAtmosphere, ComponentInit args) + { + base.Initialize(); + + gridAtmosphere.Tiles.Clear(); + + if (!TryComp(uid, out IMapGridComponent? mapGrid)) + return; + + if (gridAtmosphere.TilesUniqueMixes != null) + { + foreach (var (indices, mix) in gridAtmosphere.TilesUniqueMixes) + { + try + { + gridAtmosphere.Tiles.Add(indices, new TileAtmosphere(mapGrid.Owner, indices, + gridAtmosphere.UniqueMixes![mix].Clone())); + } + catch (ArgumentOutOfRangeException) + { + Logger.Error( + $"Error during atmos serialization! Tile at {indices} points to an unique mix ({mix}) out of range!"); + throw; + } + + gridAtmosphere.InvalidatedCoords.Add(indices); + } + } + + GridRepopulateTiles(mapGrid.Grid, gridAtmosphere); + } + + private void OnGridSplit(EntityUid uid, GridAtmosphereComponent originalGridAtmos, ref GridSplitEvent args) + { + foreach (var newGrid in args.NewGrids) + { + // Make extra sure this is a valid grid. + if (!_mapManager.TryGetGrid(newGrid, out var mapGrid)) + continue; + + var entity = mapGrid.GridEntityId; + + // If the new split grid has an atmosphere already somehow, use that. Otherwise, add a new one. + if (!TryComp(entity, out GridAtmosphereComponent? newGridAtmos)) + newGridAtmos = AddComp(entity); + + // We assume the tiles on the new grid have the same coordinates as they did on the old grid... + var enumerator = mapGrid.GetAllTilesEnumerator(); + + while (enumerator.MoveNext(out var tile)) + { + var indices = tile.Value.GridIndices; + + // This split event happens *before* the spaced tiles have been invalidated, therefore we can still + // access their gas data. On the next atmos update tick, these tiles will be spaced. Poof! + if (!originalGridAtmos.Tiles.TryGetValue(indices, out var tileAtmosphere)) + continue; + + // The new grid atmosphere has been initialized, meaning it has all the needed TileAtmospheres... + if (!newGridAtmos.Tiles.TryGetValue(indices, out var newTileAtmosphere)) + // Let's be honest, this is really not gonna happen, but just in case...! + continue; + + // Copy a bunch of data over... Not great, maybe put this in TileAtmosphere? + newTileAtmosphere.Air = tileAtmosphere.Air?.Clone() ?? null; + newTileAtmosphere.MolesArchived = newTileAtmosphere.Air == null ? null : new float[Atmospherics.AdjustedNumberOfGases]; + newTileAtmosphere.Hotspot = tileAtmosphere.Hotspot; + newTileAtmosphere.HeatCapacity = tileAtmosphere.HeatCapacity; + newTileAtmosphere.Temperature = tileAtmosphere.Temperature; + newTileAtmosphere.PressureDifference = tileAtmosphere.PressureDifference; + newTileAtmosphere.PressureDirection = tileAtmosphere.PressureDirection; + + // TODO ATMOS: Somehow force GasTileOverlaySystem to perform an update *right now, right here.* + // The reason why is that right now, gas will flicker until the next GasTileOverlay update. + // That looks bad, of course. We want to avoid that! Anyway that's a bit more complicated so out of scope. + + // Invalidate the tile, it's redundant but redundancy is good! Also HashSet so really, no duplicates. + originalGridAtmos.InvalidatedCoords.Add(indices); + newGridAtmos.InvalidatedCoords.Add(indices); + } + } + } + + private void GridHasAtmosphere(EntityUid uid, GridAtmosphereComponent component, ref HasAtmosphereMethodEvent args) + { + if (args.Handled) + return; + + args.Result = true; + args.Handled = true; + } + + private void GridIsSimulated(EntityUid uid, GridAtmosphereComponent component, ref IsSimulatedGridMethodEvent args) + { + if (args.Handled) + return; + + args.Simulated = component.Simulated; + args.Handled = true; + } + + private void GridGetAllMixtures(EntityUid uid, GridAtmosphereComponent component, + ref GetAllMixturesMethodEvent args) + { + if (args.Handled) + return; + + IEnumerable EnumerateMixtures(EntityUid gridUid, GridAtmosphereComponent grid, bool invalidate) + { + foreach (var (indices, tile) in grid.Tiles) + { + if (tile.Air == null) + continue; + + if (invalidate) + { + //var ev = new InvalidateTileMethodEvent(gridUid, indices); + //GridInvalidateTile(gridUid, grid, ref ev); + AddActiveTile(grid, tile); + } + + yield return tile.Air; + } + } + + // Return the enumeration over all the tiles in the atmosphere. + args.Mixtures = EnumerateMixtures(uid, component, args.Excite); + args.Handled = true; + } + + private void GridInvalidateTile(EntityUid uid, GridAtmosphereComponent component, ref InvalidateTileMethodEvent args) + { + if (args.Handled) + return; + + component.InvalidatedCoords.Add(args.Tile); + args.Handled = true; + } + + private void GridGetTileMixture(EntityUid uid, GridAtmosphereComponent component, + ref GetTileMixtureMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; // Do NOT handle the event if we don't have that tile, the map will handle it instead. + + if (args.Excite) + component.InvalidatedCoords.Add(args.Tile); + + args.Mixture = tile.Air; + args.Handled = true; + } + + private void GridReactTile(EntityUid uid, GridAtmosphereComponent component, ref ReactTileMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + args.Result = tile.Air is { } air ? React(air, tile) : ReactionResult.NoReaction; + args.Handled = true; + } + + private void GridIsTileAirBlocked(EntityUid uid, GridAtmosphereComponent component, + ref IsTileAirBlockedMethodEvent args) + { + if (args.Handled) + return; + + var mapGridComp = args.MapGridComponent; + + if (!Resolve(uid, ref mapGridComp)) + return; + + var directions = AtmosDirection.Invalid; + + var enumerator = GetObstructingComponentsEnumerator(mapGridComp.Grid, args.Tile); + + while (enumerator.MoveNext(out var obstructingComponent)) + { + if (!obstructingComponent.AirBlocked) + continue; + + // We set the directions that are air-blocked so far, + // as you could have a full obstruction with only 4 directional air blockers. + directions |= obstructingComponent.AirBlockedDirection; + + if (directions.IsFlagSet(args.Direction)) + { + args.Result = true; + args.Handled = true; + return; + } + } + + args.Result = false; + args.Handled = true; + } + + private void GridIsTileSpace(EntityUid uid, GridAtmosphereComponent component, ref IsTileSpaceMethodEvent args) + { + if (args.Handled) + return; + + // We don't have that tile, so let the map handle it. + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + args.Result = tile.Space; + args.Handled = true; + } + + private void GridGetAdjacentTiles(EntityUid uid, GridAtmosphereComponent component, + ref GetAdjacentTilesMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + IEnumerable EnumerateAdjacent(GridAtmosphereComponent grid, TileAtmosphere t) + { + foreach (var adj in t.AdjacentTiles) + { + if (adj == null) + continue; + + yield return adj.GridIndices; + } + } + + args.Result = EnumerateAdjacent(component, tile); + args.Handled = true; + } + + private void GridGetAdjacentTileMixtures(EntityUid uid, GridAtmosphereComponent component, + ref GetAdjacentTileMixturesMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + IEnumerable EnumerateAdjacent(GridAtmosphereComponent grid, TileAtmosphere t) + { + foreach (var adj in t.AdjacentTiles) + { + if (adj?.Air == null) + continue; + + yield return adj.Air; + } + } + + args.Result = EnumerateAdjacent(component, tile); + args.Handled = true; + } + + private void GridUpdateAdjacent(EntityUid uid, GridAtmosphereComponent component, + ref UpdateAdjacentMethodEvent args) + { + if (args.Handled) + return; + + var mapGridComp = args.MapGridComponent; + + if (!Resolve(uid, ref mapGridComp)) + return; + + var xform = Transform(uid); + EntityUid? mapUid = _mapManager.MapExists(xform.MapID) ? _mapManager.GetMapEntityId(xform.MapID) : null; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + tile.AdjacentBits = AtmosDirection.Invalid; + tile.BlockedAirflow = GetBlockedDirections(mapGridComp.Grid, tile.GridIndices); + + for (var i = 0; i < Atmospherics.Directions; i++) + { + var direction = (AtmosDirection) (1 << i); + + var otherIndices = tile.GridIndices.Offset(direction); + + if (!component.Tiles.TryGetValue(otherIndices, out var adjacent)) + { + adjacent = new TileAtmosphere(tile.GridIndex, otherIndices, + GetTileMixture(uid, mapUid, args.Tile), + space:IsTileSpace(uid, mapUid, otherIndices, mapGridComp)); + } + + var oppositeDirection = direction.GetOpposite(); + + adjacent.BlockedAirflow = GetBlockedDirections(mapGridComp.Grid, adjacent.GridIndices); + + // Pass in IMapGridComponent so we don't have to resolve it for every adjacent direction. + var tileBlockedEv = new IsTileAirBlockedMethodEvent(uid, tile.GridIndices, direction, mapGridComp); + GridIsTileAirBlocked(uid, component, ref tileBlockedEv); + + var adjacentBlockedEv = + new IsTileAirBlockedMethodEvent(uid, adjacent.GridIndices, oppositeDirection, mapGridComp); + GridIsTileAirBlocked(uid, component, ref adjacentBlockedEv); + + if (!adjacent.BlockedAirflow.IsFlagSet(oppositeDirection) && !tileBlockedEv.Result) + { + adjacent.AdjacentBits |= oppositeDirection; + adjacent.AdjacentTiles[oppositeDirection.ToIndex()] = tile; + } + else + { + adjacent.AdjacentBits &= ~oppositeDirection; + adjacent.AdjacentTiles[oppositeDirection.ToIndex()] = null; + } + + if (!tile.BlockedAirflow.IsFlagSet(direction) && !adjacentBlockedEv.Result) + { + tile.AdjacentBits |= direction; + tile.AdjacentTiles[direction.ToIndex()] = adjacent; + } + else + { + tile.AdjacentBits &= ~direction; + tile.AdjacentTiles[direction.ToIndex()] = null; + } + + DebugTools.Assert(!(tile.AdjacentBits.IsFlagSet(direction) ^ + adjacent.AdjacentBits.IsFlagSet(oppositeDirection))); + + if (!adjacent.AdjacentBits.IsFlagSet(adjacent.MonstermosInfo.CurrentTransferDirection)) + adjacent.MonstermosInfo.CurrentTransferDirection = AtmosDirection.Invalid; + } + + if (!tile.AdjacentBits.IsFlagSet(tile.MonstermosInfo.CurrentTransferDirection)) + tile.MonstermosInfo.CurrentTransferDirection = AtmosDirection.Invalid; + } + + private void GridHotspotExpose(EntityUid uid, GridAtmosphereComponent component, ref HotspotExposeMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + HotspotExpose(component, tile, args.ExposedTemperature, args.ExposedVolume, args.soh); + args.Handled = true; + } + + private void GridHotspotExtinguish(EntityUid uid, GridAtmosphereComponent component, + ref HotspotExtinguishMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + tile.Hotspot = new Hotspot(); + args.Handled = true; + + //var ev = new InvalidateTileMethodEvent(uid, args.Tile); + //GridInvalidateTile(uid, component, ref ev); + AddActiveTile(component, tile); + } + + private void GridIsHotspotActive(EntityUid uid, GridAtmosphereComponent component, + ref IsHotspotActiveMethodEvent args) + { + if (args.Handled) + return; + + if (!component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + args.Result = tile.Hotspot.Valid; + args.Handled = true; + } + + private void GridFixTileVacuum(EntityUid uid, GridAtmosphereComponent component, ref FixTileVacuumMethodEvent args) + { + if (args.Handled) + return; + + var adjEv = new GetAdjacentTileMixturesMethodEvent(uid, args.Tile, false, true); + GridGetAdjacentTileMixtures(uid, component, ref adjEv); + + if (!adjEv.Handled || !component.Tiles.TryGetValue(args.Tile, out var tile)) + return; + + if (!TryComp(uid, out var mapGridComp)) + return; + + var adjacent = adjEv.Result!.ToArray(); + + tile.Air = new GasMixture + { + Volume = GetVolumeForTiles(mapGridComp.Grid, 1), + Temperature = Atmospherics.T20C + }; + + tile.MolesArchived = new float[Atmospherics.AdjustedNumberOfGases]; + tile.ArchivedCycle = 0; + + // Return early, let's not cause any funny NaNs. + if (adjacent.Length == 0) + return; + + var ratio = 1f / adjacent.Length; + var totalTemperature = 0f; + + foreach (var adj in adjacent) + { + totalTemperature += adj.Temperature; + + // Remove a bit of gas from the adjacent ratio... + var mix = adj.RemoveRatio(ratio); + + // And merge it to the new tile air. + Merge(tile.Air, mix); + + // Return removed gas to its original mixture. + Merge(adj, mix); + } + + // New temperature is the arithmetic mean of the sum of the adjacent temperatures... + tile.Air.Temperature = totalTemperature / adjacent.Length; + } + + private void GridAddPipeNet(EntityUid uid, GridAtmosphereComponent component, ref AddPipeNetMethodEvent args) + { + if (args.Handled) + return; + + args.Handled = component.PipeNets.Add(args.PipeNet); + } + + private void GridRemovePipeNet(EntityUid uid, GridAtmosphereComponent component, ref RemovePipeNetMethodEvent args) + { + if (args.Handled) + return; + + args.Handled = component.PipeNets.Remove(args.PipeNet); + } + + private void GridAddAtmosDevice(EntityUid uid, GridAtmosphereComponent component, + ref AddAtmosDeviceMethodEvent args) + { + if (args.Handled) + return; + + if (!component.AtmosDevices.Add(args.Device)) + return; + + args.Device.JoinedGrid = uid; + args.Handled = true; + args.Result = true; + } + + private void GridRemoveAtmosDevice(EntityUid uid, GridAtmosphereComponent component, + ref RemoveAtmosDeviceMethodEvent args) + { + if (args.Handled) + return; + + if (!component.AtmosDevices.Remove(args.Device)) + return; + + args.Device.JoinedGrid = null; + args.Handled = true; + args.Result = true; + } + + /// + /// Repopulates all tiles on a grid atmosphere. + /// + /// The grid where to get all valid tiles from. + /// The grid atmosphere where the tiles will be repopulated. + private void GridRepopulateTiles(IMapGrid mapGrid, GridAtmosphereComponent gridAtmosphere) + { + var volume = GetVolumeForTiles(mapGrid, 1); + + foreach (var tile in mapGrid.GetAllTiles()) + { + if (!gridAtmosphere.Tiles.ContainsKey(tile.GridIndices)) + gridAtmosphere.Tiles[tile.GridIndices] = new TileAtmosphere(tile.GridUid, tile.GridIndices, + new GasMixture(volume) {Temperature = Atmospherics.T20C}); + + gridAtmosphere.InvalidatedCoords.Add(tile.GridIndices); + } + + var uid = gridAtmosphere.Owner; + + // Gotta do this afterwards so we can properly update adjacent tiles. + foreach (var (position, _) in gridAtmosphere.Tiles.ToArray()) + { + var ev = new UpdateAdjacentMethodEvent(uid, position); + GridUpdateAdjacent(uid, gridAtmosphere, ref ev); + InvalidateVisuals(mapGrid.GridEntityId, position); + } + } +} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs index e6b76bb9a14b..165fb06c2d10 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.LINDA.cs @@ -48,7 +48,7 @@ private void ProcessCell(GridAtmosphereComponent gridAtmosphere, TileAtmosphere } shouldShareAir = true; - } else if (tile.Air!.Compare(enemyTile.Air!) != GasMixture.GasCompareResult.NoExchange) + } else if (CompareExchange(tile.Air, enemyTile.Air) != GasCompareResult.NoExchange) { if (!enemyTile.Excited) { @@ -78,7 +78,7 @@ private void ProcessCell(GridAtmosphereComponent gridAtmosphere, TileAtmosphere if (shouldShareAir) { - var difference = Share(tile.Air!, enemyTile.Air!, adjacentTileLength); + var difference = Share(tile, enemyTile, adjacentTileLength); // Monstermos already handles this, so let's not handle it ourselves. if (!MonstermosEqualization) @@ -114,9 +114,17 @@ private void ProcessCell(GridAtmosphereComponent gridAtmosphere, TileAtmosphere private void Archive(TileAtmosphere tile, int fireCount) { - tile.Air?.Archive(); + if (tile.Air != null) + { + tile.Air.Moles.AsSpan().CopyTo(tile.MolesArchived.AsSpan()); + tile.TemperatureArchived = tile.Air.Temperature; + } + else + { + tile.TemperatureArchived = tile.Temperature; + } + tile.ArchivedCycle = fireCount; - tile.TemperatureArchived = tile.Temperature; } private void LastShareCheck(TileAtmosphere tile) @@ -124,7 +132,7 @@ private void LastShareCheck(TileAtmosphere tile) if (tile.Air == null || tile.ExcitedGroup == null) return; - switch (tile.Air.LastShare) + switch (tile.LastShare) { case > Atmospherics.MinimumAirToSuspend: ExcitedGroupResetCooldowns(tile.ExcitedGroup); @@ -134,5 +142,193 @@ private void LastShareCheck(TileAtmosphere tile) break; } } + + /// + /// Makes a tile become active and start processing. Does NOT check if the tile belongs to the grid atmos. + /// + /// Grid Atmosphere where to get the tile. + /// Tile Atmosphere to be activated. + private void AddActiveTile(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile) + { + if (tile.Air == null) + return; + + tile.Excited = true; + gridAtmosphere.ActiveTiles.Add(tile); + } + + /// + /// Makes a tile become inactive and stop processing. + /// + /// Grid Atmosphere where to get the tile. + /// Tile Atmosphere to be deactivated. + /// Whether to dispose of the tile's + private void RemoveActiveTile(GridAtmosphereComponent gridAtmosphere, TileAtmosphere tile, bool disposeExcitedGroup = true) + { + tile.Excited = false; + gridAtmosphere.ActiveTiles.Remove(tile); + + if (tile.ExcitedGroup == null) + return; + + if (disposeExcitedGroup) + ExcitedGroupDispose(gridAtmosphere, tile.ExcitedGroup); + else + ExcitedGroupRemoveTile(tile.ExcitedGroup, tile); + } + + /// + /// Calculates the heat capacity for a gas mixture, using the archived values. + /// + public float GetHeatCapacityArchived(TileAtmosphere tile) + { + if (tile.Air == null) + return tile.HeatCapacity; + + // Moles archived is not null if air is not null. + return GetHeatCapacityCalculation(tile.MolesArchived!, tile.Space); + } + + /// + /// Shares gas between two tiles. Part of LINDA. + /// + public float Share(TileAtmosphere tileReceiver, TileAtmosphere tileSharer, int atmosAdjacentTurfs) + { + if (tileReceiver.Air is not {} receiver || tileSharer.Air is not {} sharer) + return 0f; + + var temperatureDelta = tileReceiver.TemperatureArchived - tileSharer.TemperatureArchived; + var absTemperatureDelta = Math.Abs(temperatureDelta); + var oldHeatCapacity = 0f; + var oldSharerHeatCapacity = 0f; + + if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) + { + oldHeatCapacity = GetHeatCapacity(receiver); + oldSharerHeatCapacity = GetHeatCapacity(sharer); + } + + var heatCapacityToSharer = 0f; + var heatCapacitySharerToThis = 0f; + var movedMoles = 0f; + var absMovedMoles = 0f; + + for(var i = 0; i < Atmospherics.TotalNumberOfGases; i++) + { + var thisValue = receiver.Moles[i]; + var sharerValue = sharer.Moles[i]; + var delta = (thisValue - sharerValue) / (atmosAdjacentTurfs + 1); + if (!(MathF.Abs(delta) >= Atmospherics.GasMinMoles)) continue; + if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) + { + var gasHeatCapacity = delta * GasSpecificHeats[i]; + if (delta > 0) + { + heatCapacityToSharer += gasHeatCapacity; + } + else + { + heatCapacitySharerToThis -= gasHeatCapacity; + } + } + + if (!receiver.Immutable) receiver.Moles[i] -= delta; + if (!sharer.Immutable) sharer.Moles[i] += delta; + movedMoles += delta; + absMovedMoles += MathF.Abs(delta); + } + + tileReceiver.LastShare = absMovedMoles; + + if (absTemperatureDelta > Atmospherics.MinimumTemperatureDeltaToConsider) + { + var newHeatCapacity = oldHeatCapacity + heatCapacitySharerToThis - heatCapacityToSharer; + var newSharerHeatCapacity = oldSharerHeatCapacity + heatCapacityToSharer - heatCapacitySharerToThis; + + // Transfer of thermal energy (via changed heat capacity) between self and sharer. + if (!receiver.Immutable && newHeatCapacity > Atmospherics.MinimumHeatCapacity) + { + receiver.Temperature = ((oldHeatCapacity * receiver.Temperature) - (heatCapacityToSharer * tileReceiver.TemperatureArchived) + (heatCapacitySharerToThis * tileSharer.TemperatureArchived)) / newHeatCapacity; + } + + if (!sharer.Immutable && newSharerHeatCapacity > Atmospherics.MinimumHeatCapacity) + { + sharer.Temperature = ((oldSharerHeatCapacity * sharer.Temperature) - (heatCapacitySharerToThis * tileSharer.TemperatureArchived) + (heatCapacityToSharer * tileReceiver.TemperatureArchived)) / newSharerHeatCapacity; + } + + // Thermal energy of the system (self and sharer) is unchanged. + + if (MathF.Abs(oldSharerHeatCapacity) > Atmospherics.MinimumHeatCapacity) + { + if (MathF.Abs(newSharerHeatCapacity / oldSharerHeatCapacity - 1) < 0.1) + { + TemperatureShare(tileReceiver, tileSharer, Atmospherics.OpenHeatTransferCoefficient); + } + } + } + + if (!(temperatureDelta > Atmospherics.MinimumTemperatureToMove) && + !(MathF.Abs(movedMoles) > Atmospherics.MinimumMolesDeltaToMove)) return 0f; + var moles = receiver.TotalMoles; + var theirMoles = sharer.TotalMoles; + + return (tileReceiver.TemperatureArchived * (moles + movedMoles)) - (tileSharer.TemperatureArchived * (theirMoles - movedMoles)) * Atmospherics.R / receiver.Volume; + } + + /// + /// Shares temperature between two mixtures, taking a conduction coefficient into account. + /// + public float TemperatureShare(TileAtmosphere tileReceiver, TileAtmosphere tileSharer, float conductionCoefficient) + { + if (tileReceiver.Air is not { } receiver || tileSharer.Air is not { } sharer) + return 0f; + + var temperatureDelta = tileReceiver.TemperatureArchived - tileSharer.TemperatureArchived; + if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) + { + var heatCapacity = GetHeatCapacityArchived(tileReceiver); + var sharerHeatCapacity = GetHeatCapacityArchived(tileSharer); + + if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) + { + var heat = conductionCoefficient * temperatureDelta * (heatCapacity * sharerHeatCapacity / (heatCapacity + sharerHeatCapacity)); + + if (!receiver.Immutable) + receiver.Temperature = MathF.Abs(MathF.Max(receiver.Temperature - heat / heatCapacity, Atmospherics.TCMB)); + + if (!sharer.Immutable) + sharer.Temperature = MathF.Abs(MathF.Max(sharer.Temperature + heat / sharerHeatCapacity, Atmospherics.TCMB)); + } + } + + return sharer.Temperature; + } + + /// + /// Shares temperature between a gas mixture and an abstract sharer, taking a conduction coefficient into account. + /// + public float TemperatureShare(TileAtmosphere tileReceiver, float conductionCoefficient, float sharerTemperature, float sharerHeatCapacity) + { + if (tileReceiver.Air is not {} receiver) + return 0; + + var temperatureDelta = tileReceiver.TemperatureArchived - sharerTemperature; + if (MathF.Abs(temperatureDelta) > Atmospherics.MinimumTemperatureDeltaToConsider) + { + var heatCapacity = GetHeatCapacityArchived(tileReceiver); + + if (sharerHeatCapacity > Atmospherics.MinimumHeatCapacity && heatCapacity > Atmospherics.MinimumHeatCapacity) + { + var heat = conductionCoefficient * temperatureDelta * (heatCapacity * sharerHeatCapacity / (heatCapacity + sharerHeatCapacity)); + + if (!receiver.Immutable) + receiver.Temperature = MathF.Abs(MathF.Max(receiver.Temperature - heat / heatCapacity, Atmospherics.TCMB)); + + sharerTemperature = MathF.Abs(MathF.Max(sharerTemperature + heat / sharerHeatCapacity, Atmospherics.TCMB)); + } + } + + return sharerTemperature; + } } } diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs new file mode 100644 index 000000000000..e4dd4b5154f1 --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Map.cs @@ -0,0 +1,31 @@ +using Content.Server.Atmos.Components; + +namespace Content.Server.Atmos.EntitySystems; + +public partial class AtmosphereSystem +{ + private void InitializeMap() + { + SubscribeLocalEvent(MapIsTileSpace); + SubscribeLocalEvent(MapGetTileMixture); + } + + private void MapIsTileSpace(EntityUid uid, MapAtmosphereComponent component, ref IsTileSpaceMethodEvent args) + { + if (args.Handled) + return; + + args.Result = component.Space; + args.Handled = true; + } + + private void MapGetTileMixture(EntityUid uid, MapAtmosphereComponent component, ref GetTileMixtureMethodEvent args) + { + if (args.Handled) + return; + + // Clone the mixture, if possible. + args.Mixture = component.Mixture?.Clone(); + args.Handled = true; + } +} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs index fd00628ab55d..b31485654ba7 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Monstermos.cs @@ -10,8 +10,6 @@ namespace Content.Server.Atmos.EntitySystems { public sealed partial class AtmosphereSystem { - [Dependency] private readonly IRobustRandom _robustRandom = default!; - private readonly TileAtmosphereComparer _monstermosComparer = new(); private readonly TileAtmosphere?[] _equalizeTiles = new TileAtmosphere[Atmospherics.MonstermosHardTileLimit]; @@ -81,7 +79,7 @@ private void EqualizePressureInZone(IMapGrid mapGrid, GridAtmosphereComponent gr if(tileCount < Atmospherics.MonstermosHardTileLimit) _equalizeTiles[tileCount++] = adj; - if (adj.Air.Immutable && MonstermosDepressurization) + if (adj.Space && MonstermosDepressurization) { // Looks like someone opened an airlock to space! @@ -146,6 +144,7 @@ private void EqualizePressureInZone(IMapGrid mapGrid, GridAtmosphereComponent gr var direction = (AtmosDirection) (1 << j); if (!otherTile.AdjacentBits.IsFlagSet(direction)) continue; var tile2 = otherTile.AdjacentTiles[j]!; + DebugTools.Assert(tile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); // skip anything that isn't part of our current processing block. if (tile2.MonstermosInfo.FastDone || tile2.MonstermosInfo.LastQueueCycle != queueCycle) @@ -213,8 +212,8 @@ private void EqualizePressureInZone(IMapGrid mapGrid, GridAtmosphereComponent gr var otherTile2 = otherTile.AdjacentTiles[k]; if (giver.MonstermosInfo.MoleDelta <= 0) break; // We're done here now. Let's not do more work than needed. if (otherTile2 == null || otherTile2.MonstermosInfo.LastQueueCycle != queueCycle) continue; + DebugTools.Assert(otherTile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); if (otherTile2.MonstermosInfo.LastSlowQueueCycle == queueCycleSlow) continue; - _equalizeQueue[queueLength++] = otherTile2; otherTile2.MonstermosInfo.LastSlowQueueCycle = queueCycleSlow; otherTile2.MonstermosInfo.CurrentTransferDirection = direction.GetOpposite(); @@ -279,6 +278,7 @@ private void EqualizePressureInZone(IMapGrid mapGrid, GridAtmosphereComponent gr if (taker.MonstermosInfo.MoleDelta >= 0) break; // We're done here now. Let's not do more work than needed. if (otherTile2 == null || otherTile2.MonstermosInfo.LastQueueCycle != queueCycle) continue; + DebugTools.Assert(otherTile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); if (otherTile2.MonstermosInfo.LastSlowQueueCycle == queueCycleSlow) continue; _equalizeQueue[queueLength++] = otherTile2; otherTile2.MonstermosInfo.LastSlowQueueCycle = queueCycleSlow; @@ -335,7 +335,8 @@ private void EqualizePressureInZone(IMapGrid mapGrid, GridAtmosphereComponent gr var direction = (AtmosDirection) (1 << j); if (!otherTile.AdjacentBits.IsFlagSet(direction)) continue; var otherTile2 = otherTile.AdjacentTiles[j]!; - if (otherTile2.Air?.Compare(tile.Air) == GasMixture.GasCompareResult.NoExchange) continue; + DebugTools.Assert(otherTile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); + if (otherTile2.Air != null && CompareExchange(otherTile2.Air, tile.Air) == GasCompareResult.NoExchange) continue; AddActiveTile(gridAtmosphere, otherTile2); break; } @@ -372,7 +373,7 @@ private void ExplosivelyDepressurize(IMapGrid mapGrid, GridAtmosphereComponent g otherTile.MonstermosInfo.LastCycle = cycleNum; otherTile.MonstermosInfo.CurrentTransferDirection = AtmosDirection.Invalid; // Tiles in the _depressurizeTiles array cannot have null air. - if (!otherTile.Air!.Immutable) + if (!otherTile.Space) { for (var j = 0; j < Atmospherics.Directions; j++) { @@ -380,6 +381,7 @@ private void ExplosivelyDepressurize(IMapGrid mapGrid, GridAtmosphereComponent g if (!otherTile.AdjacentBits.IsFlagSet(direction)) continue; var otherTile2 = otherTile.AdjacentTiles[j]; if (otherTile2?.Air == null) continue; + DebugTools.Assert(otherTile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); if (otherTile2.MonstermosInfo.LastQueueCycle == queueCycle) continue; ConsiderFirelocks(gridAtmosphere, otherTile, otherTile2); @@ -421,11 +423,12 @@ private void ExplosivelyDepressurize(IMapGrid mapGrid, GridAtmosphereComponent g { var direction = (AtmosDirection) (1 << j); // Tiles in _depressurizeProgressionOrder cannot have null air. - if (!otherTile.AdjacentBits.IsFlagSet(direction) && !otherTile.Air!.Immutable) continue; + if (!otherTile.AdjacentBits.IsFlagSet(direction) && !otherTile.Space) continue; var tile2 = otherTile.AdjacentTiles[j]; if (tile2?.MonstermosInfo.LastQueueCycle != queueCycle) continue; + DebugTools.Assert(tile2.AdjacentBits.IsFlagSet(direction.GetOpposite())); if (tile2.MonstermosInfo.LastSlowQueueCycle == queueCycleSlow) continue; - if(tile2.Air?.Immutable ?? false) continue; + if(tile2.Space) continue; tile2.MonstermosInfo.CurrentTransferDirection = direction.GetOpposite(); tile2.MonstermosInfo.CurrentTransferAmount = 0; tile2.PressureSpecificTarget = otherTile.PressureSpecificTarget; @@ -479,7 +482,7 @@ private void ExplosivelyDepressurize(IMapGrid mapGrid, GridAtmosphereComponent g } if(tileCount > 10 && (totalMolesRemoved / tileCount) > 20) - _adminLogger.Add(LogType.ExplosiveDepressurization, LogImpact.High, + _adminLog.Add(LogType.ExplosiveDepressurization, LogImpact.High, $"Explosive depressurization removed {totalMolesRemoved} moles from {tileCount} tiles starting from position {tile.GridIndices:position} on grid ID {tile.GridIndex:grid}"); Array.Clear(_depressurizeTiles, 0, Atmospherics.MonstermosHardTileLimit); @@ -513,8 +516,10 @@ private void ConsiderFirelocks(GridAtmosphereComponent gridAtmosphere, TileAtmos if (!reconsiderAdjacent) return; - UpdateAdjacent(mapGrid, gridAtmosphere, tile); - UpdateAdjacent(mapGrid, gridAtmosphere, other); + var tileEv = new UpdateAdjacentMethodEvent(mapGrid.GridEntityId, tile.GridIndices); + var otherEv = new UpdateAdjacentMethodEvent(mapGrid.GridEntityId, other.GridIndices); + GridUpdateAdjacent(mapGrid.GridEntityId, gridAtmosphere, ref tileEv); + GridUpdateAdjacent(mapGrid.GridEntityId, gridAtmosphere, ref otherEv); InvalidateVisuals(tile.GridIndex, tile.GridIndices); InvalidateVisuals(other.GridIndex, other.GridIndices); } @@ -541,6 +546,7 @@ private void FinalizeEq(GridAtmosphereComponent gridAtmosphere, TileAtmosphere t var amount = transferDirections[i]; var otherTile = tile.AdjacentTiles[i]; if (otherTile?.Air == null) continue; + DebugTools.Assert(otherTile.AdjacentBits.IsFlagSet(direction.GetOpposite())); if (amount <= 0) continue; // Everything that calls this method already ensures that Air will not be null. @@ -569,6 +575,7 @@ private void FinalizeEqNeighbors(GridAtmosphereComponent gridAtmosphere, TileAtm private void AdjustEqMovement(TileAtmosphere tile, AtmosDirection direction, float amount) { + DebugTools.AssertNotNull(tile); DebugTools.Assert(tile.AdjacentBits.IsFlagSet(direction)); DebugTools.Assert(tile.AdjacentTiles[direction.ToIndex()] != null); tile.MonstermosInfo[direction] += amount; diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs index b2dba53c6fcd..b479241a6971 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Processing.cs @@ -3,6 +3,7 @@ using Content.Server.NodeContainer.NodeGroups; using Content.Shared.Atmos; using Content.Shared.Maps; +using Robust.Shared.Map; using Robust.Shared.Timing; namespace Content.Server.Atmos.EntitySystems @@ -42,37 +43,45 @@ private bool ProcessRevalidate(GridAtmosphereComponent atmosphere) atmosphere.InvalidatedCoords.Clear(); } - if (!TryGetMapGrid(atmosphere, out var mapGrid)) + var uid = atmosphere.Owner; + + if (!TryComp(uid, out IMapGridComponent? mapGridComp)) return true; + var mapGrid = mapGridComp.Grid; + var mapUid = _mapManager.GetMapEntityIdOrThrow(mapGridComp.Grid.ParentMapId); + var volume = GetVolumeForTiles(mapGrid, 1); var number = 0; while (atmosphere.CurrentRunInvalidatedCoordinates.TryDequeue(out var indices)) { - var tile = GetTileAtmosphere(atmosphere, indices); - - if (tile == null) + if (!atmosphere.Tiles.TryGetValue(indices, out var tile)) { tile = new TileAtmosphere(mapGrid.GridEntityId, indices, new GasMixture(volume){Temperature = Atmospherics.T20C}); atmosphere.Tiles[indices] = tile; } - var isAirBlocked = IsTileAirBlocked(mapGrid, indices); + var airBlockedEv = new IsTileAirBlockedMethodEvent(uid, indices, MapGridComponent:mapGridComp); + GridIsTileAirBlocked(uid, atmosphere, ref airBlockedEv); + var isAirBlocked = airBlockedEv.Result; - UpdateAdjacent(mapGrid, atmosphere, tile); + var updateAdjacentEv = new UpdateAdjacentMethodEvent(uid, indices, mapGridComp); + GridUpdateAdjacent(uid, atmosphere, ref updateAdjacentEv); - if (IsTileSpace(mapGrid, indices) && !isAirBlocked) + // Call this instead of the grid method as the map has a say on whether the tile is space or not. + if ((!mapGrid.TryGetTileRef(indices, out var t) || t.IsSpace(_tileDefinitionManager)) && !isAirBlocked) { - tile.Air = new GasMixture(volume); - tile.Air.MarkImmutable(); - atmosphere.Tiles[indices] = tile; - + tile.Air = GetTileMixture(null, mapUid, indices); + tile.MolesArchived = tile.Air != null ? new float[Atmospherics.AdjustedNumberOfGases] : null; + tile.Space = IsTileSpace(null, mapUid, indices, mapGridComp); } else if (isAirBlocked) { var nullAir = false; - foreach (var airtight in GetObstructingComponents(mapGrid, indices)) + var enumerator = GetObstructingComponentsEnumerator(mapGrid, indices); + + while (enumerator.MoveNext(out var airtight)) { if (!airtight.NoAirWhenFullyAirBlocked) continue; @@ -84,6 +93,9 @@ private bool ProcessRevalidate(GridAtmosphereComponent atmosphere) if (nullAir) { tile.Air = null; + tile.MolesArchived = null; + tile.ArchivedCycle = 0; + tile.LastShare = 0f; tile.Hotspot = new Hotspot(); } } @@ -91,23 +103,31 @@ private bool ProcessRevalidate(GridAtmosphereComponent atmosphere) { if (tile.Air == null && NeedsVacuumFixing(mapGrid, indices)) { - FixVacuum(atmosphere, tile.GridIndices); + var vacuumEv = new FixTileVacuumMethodEvent(uid, indices); + GridFixTileVacuum(uid, atmosphere, ref vacuumEv); } // Tile used to be space, but isn't anymore. - if (tile.Air?.Immutable ?? false) + if (tile.Space || (tile.Air?.Immutable ?? false)) { tile.Air = null; + tile.MolesArchived = null; + tile.ArchivedCycle = 0; + tile.LastShare = 0f; + tile.Space = false; } tile.Air ??= new GasMixture(volume){Temperature = Atmospherics.T20C}; + tile.MolesArchived ??= new float[Atmospherics.AdjustedNumberOfGases]; } // We activate the tile. AddActiveTile(atmosphere, tile); // TODO ATMOS: Query all the contents of this tile (like walls) and calculate the correct thermal conductivity and heat capacity - var tileDef = GetTile(tile)?.Tile.GetContentTileDefinition(_tileDefinitionManager); + var tileDef = mapGrid.TryGetTileRef(indices, out var tileRef) + ? tileRef.GetContentTileDefinition(_tileDefinitionManager) : null; + tile.ThermalConductivity = tileDef?.ThermalConductivity ?? 0.5f; tile.HeatCapacity = tileDef?.HeatCapacity ?? float.PositiveInfinity; InvalidateVisuals(mapGrid.GridEntityId, indices); @@ -116,8 +136,8 @@ private bool ProcessRevalidate(GridAtmosphereComponent atmosphere) { var direction = (AtmosDirection) (1 << i); var otherIndices = indices.Offset(direction); - var otherTile = GetTileAtmosphere(atmosphere, otherIndices); - if (otherTile != null) + + if (atmosphere.Tiles.TryGetValue(otherIndices, out var otherTile)) AddActiveTile(atmosphere, otherTile); } @@ -138,9 +158,13 @@ private bool ProcessTileEqualize(GridAtmosphereComponent atmosphere) if(!atmosphere.ProcessingPaused) atmosphere.CurrentRunTiles = new Queue(atmosphere.ActiveTiles); - if (!TryGetMapGrid(atmosphere, out var mapGrid)) + var uid = atmosphere.Owner; + + if (!TryComp(uid, out IMapGridComponent? mapGridComp)) throw new Exception("Tried to process a grid atmosphere on an entity that isn't a grid!"); + var mapGrid = mapGridComp.Grid; + var number = 0; while (atmosphere.CurrentRunTiles.TryDequeue(out var tile)) { diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs index 4e3be35eba2b..33fa16a6c68b 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Superconductivity.cs @@ -73,7 +73,7 @@ public void FinishSuperconduction(GridAtmosphereComponent gridAtmosphere, TileAt // Conduct with air on my tile if I have it if (tile.Air != null) { - tile.Temperature = TemperatureShare(tile.Air, tile.ThermalConductivity, tile.Temperature, tile.HeatCapacity); + tile.Temperature = TemperatureShare(tile, tile.ThermalConductivity, tile.Temperature, tile.HeatCapacity); } FinishSuperconduction(gridAtmosphere, tile, tile.Air?.Temperature ?? tile.Temperature); @@ -107,7 +107,7 @@ public void NeighborConductWithSource(GridAtmosphereComponent gridAtmosphere, Ti if (other.Air != null) { - TemperatureShare(other.Air, tile.Air, Atmospherics.WindowHeatTransferCoefficient); + TemperatureShare(other, tile, Atmospherics.WindowHeatTransferCoefficient); } else { @@ -122,7 +122,7 @@ private void TemperatureShareOpenToSolid(TileAtmosphere tile, TileAtmosphere oth if (tile.Air == null) return; - other.Temperature = TemperatureShare(tile.Air, other.ThermalConductivity, other.Temperature, other.HeatCapacity); + other.Temperature = TemperatureShare(tile, other.ThermalConductivity, other.Temperature, other.HeatCapacity); } private void TemperatureShareMutualSolid(TileAtmosphere tile, TileAtmosphere other, float conductionCoefficient) diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Utils.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Utils.cs new file mode 100644 index 000000000000..36ac6e90de6d --- /dev/null +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.Utils.cs @@ -0,0 +1,84 @@ +using System.Runtime.CompilerServices; +using Content.Server.Atmos.Components; +using Content.Shared.Atmos; +using Content.Shared.Maps; +using Robust.Shared.Map; + +namespace Content.Server.Atmos.EntitySystems; + +public partial class AtmosphereSystem +{ + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void InvalidateVisuals(EntityUid gridUid, Vector2i tile) + { + _gasTileOverlaySystem.Invalidate(gridUid, tile); + } + + public bool NeedsVacuumFixing(IMapGrid mapGrid, Vector2i indices) + { + var value = false; + + var enumerator = GetObstructingComponentsEnumerator(mapGrid, indices); + + while (enumerator.MoveNext(out var airtight)) + { + value |= airtight.FixVacuum; + } + + return value; + } + + /// + /// Gets the volume in liters for a number of tiles, on a specific grid. + /// + /// The grid in question. + /// The amount of tiles. + /// The volume in liters that the tiles occupy. + private float GetVolumeForTiles(IMapGrid mapGrid, int tiles = 1) + { + return Atmospherics.CellVolume * mapGrid.TileSize * tiles; + } + + /// + /// Gets all obstructing instances in a specific tile. + /// + /// The grid where to get the tile. + /// The indices of the tile. + /// The enumerator for the airtight components. + public AtmosObstructionEnumerator GetObstructingComponentsEnumerator(IMapGrid mapGrid, Vector2i tile) + { + var ancEnumerator = mapGrid.GetAnchoredEntitiesEnumerator(tile); + var airQuery = GetEntityQuery(); + + var enumerator = new AtmosObstructionEnumerator(ancEnumerator, airQuery); + return enumerator; + } + + private AtmosDirection GetBlockedDirections(IMapGrid mapGrid, Vector2i indices) + { + var value = AtmosDirection.Invalid; + + var enumerator = GetObstructingComponentsEnumerator(mapGrid, indices); + + while (enumerator.MoveNext(out var airtight)) + { + if(airtight.AirBlocked) + value |= airtight.AirBlockedDirection; + } + + return value; + } + + /// + /// Pries a tile in a grid. + /// + /// The grid in question. + /// The indices of the tile. + private void PryTile(IMapGrid mapGrid, Vector2i tile) + { + if (!mapGrid.TryGetTileRef(tile, out var tileRef)) + return; + + tileRef.PryTile(_mapManager, _tileDefinitionManager, EntityManager, _robustRandom); + } +} diff --git a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs index 6c8ee5aee2c3..5089090e1270 100644 --- a/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AtmosphereSystem.cs @@ -4,90 +4,84 @@ using Content.Shared.Atmos.EntitySystems; using Content.Shared.Maps; using JetBrains.Annotations; +using Robust.Server.GameObjects; using Robust.Shared.Containers; using Robust.Shared.Map; +using Robust.Shared.Random; -namespace Content.Server.Atmos.EntitySystems -{ - /// - /// This is our SSAir equivalent, if you need to interact with or query atmos in any way, go through this. - /// - [UsedImplicitly] - public sealed partial class AtmosphereSystem : SharedAtmosphereSystem - { - [Dependency] private readonly IMapManager _mapManager = default!; - [Dependency] private readonly IAdminLogManager _adminLogger = default!; - [Dependency] private readonly SharedContainerSystem _containers = default!; - [Dependency] private readonly SharedPhysicsSystem _physics = default!; - +namespace Content.Server.Atmos.EntitySystems; - private const float ExposedUpdateDelay = 1f; - private float _exposedTimer = 0f; - - public override void Initialize() - { - base.Initialize(); +/// +/// This is our SSAir equivalent, if you need to interact with or query atmos in any way, go through this. +/// +[UsedImplicitly] +public sealed partial class AtmosphereSystem : SharedAtmosphereSystem +{ + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; + [Dependency] private readonly IRobustRandom _robustRandom = default!; + [Dependency] private readonly IAdminLogManager _adminLog = default!; + [Dependency] private readonly SharedContainerSystem _containers = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly GasTileOverlaySystem _gasTileOverlaySystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; - UpdatesAfter.Add(typeof(NodeGroupSystem)); - InitializeGases(); - InitializeCommands(); - InitializeCVars(); - InitializeGrid(); + private const float ExposedUpdateDelay = 1f; + private float _exposedTimer = 0f; + public override void Initialize() + { + base.Initialize(); - SubscribeLocalEvent(OnTileChanged); + UpdatesAfter.Add(typeof(NodeGroupSystem)); - } + InitializeGases(); + InitializeCommands(); + InitializeCVars(); + InitializeGridAtmosphere(); + InitializeMap(); - public override void Shutdown() - { - base.Shutdown(); - ShutdownCommands(); - } + SubscribeLocalEvent(OnTileChanged); - private void OnTileChanged(TileChangedEvent ev) - { - // When a tile changes, we want to update it only if it's gone from - // space -> not space or vice versa. So if the old tile is the - // same as the new tile in terms of space-ness, ignore the change + } - if (ev.NewTile.IsSpace(_tileDefinitionManager) == ev.OldTile.IsSpace(_tileDefinitionManager)) - { - return; - } + public override void Shutdown() + { + base.Shutdown(); - InvalidateTile(ev.NewTile.GridUid, ev.NewTile.GridIndices); - } + ShutdownCommands(); + } - public override void Update(float frameTime) - { - base.Update(frameTime); + private void OnTileChanged(TileChangedEvent ev) + { + InvalidateTile(ev.NewTile.GridUid, ev.NewTile.GridIndices); + } - UpdateProcessing(frameTime); - UpdateHighPressure(frameTime); + public override void Update(float frameTime) + { + base.Update(frameTime); - _exposedTimer += frameTime; + UpdateProcessing(frameTime); + UpdateHighPressure(frameTime); - if (_exposedTimer < ExposedUpdateDelay) - return; + _exposedTimer += frameTime; - foreach (var (exposed, transform) in EntityManager.EntityQuery()) - { - // Used for things like disposals/cryo to change which air people are exposed to. - var airEvent = new AtmosExposedGetAirEvent(); - RaiseLocalEvent(exposed.Owner, ref airEvent, false); + if (_exposedTimer < ExposedUpdateDelay) + return; - airEvent.Gas ??= GetTileMixture(transform.Coordinates); - if (airEvent.Gas == null) - continue; + foreach (var (exposed, transform) in EntityManager.EntityQuery()) + { + var air = GetContainingMixture(exposed.Owner, transform:transform); - var updateEvent = new AtmosExposedUpdateEvent(transform.Coordinates, airEvent.Gas); - RaiseLocalEvent(exposed.Owner, ref updateEvent, true); - } + if (air == null) + continue; - _exposedTimer -= ExposedUpdateDelay; + var updateEvent = new AtmosExposedUpdateEvent(transform.Coordinates, air, transform); + RaiseLocalEvent(exposed.Owner, ref updateEvent); } + + _exposedTimer -= ExposedUpdateDelay; } } diff --git a/Content.Server/Atmos/EntitySystems/AutomaticAtmosSystem.cs b/Content.Server/Atmos/EntitySystems/AutomaticAtmosSystem.cs index 4b9cb8dba9ca..bdd7c943cda6 100644 --- a/Content.Server/Atmos/EntitySystems/AutomaticAtmosSystem.cs +++ b/Content.Server/Atmos/EntitySystems/AutomaticAtmosSystem.cs @@ -12,6 +12,7 @@ namespace Content.Server.Atmos.EntitySystems; public sealed class AutomaticAtmosSystem : EntitySystem { [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!; + [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; public override void Initialize() { @@ -27,7 +28,7 @@ private void OnTileChanged(TileChangedEvent ev) // TODO: a simple array lookup, as tile IDs are likely contiguous, and there's at most 2^16 possibilities anyway. if (!((ev.OldTile.IsSpace(_tileDefinitionManager) && !ev.NewTile.IsSpace(_tileDefinitionManager)) || (!ev.OldTile.IsSpace(_tileDefinitionManager) && ev.NewTile.IsSpace(_tileDefinitionManager))) || - HasComp(ev.Entity)) + _atmosphereSystem.HasAtmosphere(ev.Entity)) return; if (!TryComp(ev.Entity, out var physics)) diff --git a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs index 556615fb0a31..8a202e5fa908 100644 --- a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs +++ b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs @@ -140,6 +140,7 @@ public override void Update(float frameTime) foreach (var (barotrauma, damageable, transform) in EntityManager.EntityQuery()) { + var uid = barotrauma.Owner; var totalDamage = FixedPoint2.Zero; foreach (var (barotraumaDamageType, _) in barotrauma.Damage.DamageDict) { @@ -152,7 +153,7 @@ public override void Update(float frameTime) var pressure = 1f; - if (_atmosphereSystem.GetTileMixture(transform.Coordinates) is { } mixture) + if (_atmosphereSystem.GetContainingMixture(uid) is {} mixture) { pressure = MathF.Max(mixture.Pressure, 1f); } diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index f1e0a6cd149d..8957481e1290 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using Content.Server.Administration.Logs; using Content.Server.Atmos.Components; using Content.Server.Stunnable; @@ -10,8 +12,13 @@ using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.Interaction; +using Content.Shared.Physics; using Content.Shared.Popups; using Content.Shared.Temperature; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Physics; using Robust.Shared.Physics.Dynamics; @@ -25,6 +32,8 @@ internal sealed class FlammableSystem : EntitySystem [Dependency] private readonly TemperatureSystem _temperatureSystem = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly AlertsSystem _alertsSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; + [Dependency] private readonly FixtureSystem _fixture = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; private const float MinimumFireStacks = -10f; @@ -32,16 +41,17 @@ internal sealed class FlammableSystem : EntitySystem private const float UpdateTime = 1f; private const float MinIgnitionTemperature = 373.15f; + public const string FlammableFixtureID = "flammable"; private float _timer = 0f; private Dictionary _fireEvents = new(); - // TODO: Port the rest of Flammable. public override void Initialize() { UpdatesAfter.Add(typeof(AtmosphereSystem)); + SubscribeLocalEvent(OnMapInit); SubscribeLocalEvent(OnInteractUsingEvent); SubscribeLocalEvent(OnCollideEvent); SubscribeLocalEvent(OnIsHotEvent); @@ -60,7 +70,7 @@ private void OnMeleeHit(EntityUid uid, IgniteOnMeleeHitComponent component, Mele flammable.FireStacks += component.FireStacks; Ignite(entity, flammable); } - + } private void IgniteOnCollide(EntityUid uid, IgniteOnCollideComponent component, StartCollideEvent args) @@ -74,13 +84,30 @@ private void IgniteOnCollide(EntityUid uid, IgniteOnCollideComponent component, Ignite(otherFixture, flammable); } + private void OnMapInit(EntityUid uid, FlammableComponent component, MapInitEvent args) + { + // Sets up a fixture for flammable collisions. + // TODO: Should this be generalized into a general non-hard 'effects' fixture or something? I can't think of other use cases for it. + // This doesn't seem great either (lots more collisions generated) but there isn't a better way to solve it either that I can think of. + + if (!TryComp(uid, out var body)) + return; + + _fixture.TryCreateFixture(body, new Fixture(body, component.FlammableCollisionShape) + { + Hard = false, + ID = FlammableFixtureID, + CollisionMask = (int) CollisionGroup.FullTileLayer + }); + } + private void OnInteractUsingEvent(EntityUid uid, FlammableComponent flammable, InteractUsingEvent args) { if (args.Handled) return; var isHotEvent = new IsHotEvent(); - RaiseLocalEvent(args.Used, isHotEvent, false); + RaiseLocalEvent(args.Used, isHotEvent); if (!isHotEvent.IsHot) return; @@ -92,6 +119,12 @@ private void OnInteractUsingEvent(EntityUid uid, FlammableComponent flammable, I private void OnCollideEvent(EntityUid uid, FlammableComponent flammable, StartCollideEvent args) { var otherUid = args.OtherFixture.Body.Owner; + + // 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.OtherFixture.ID != FlammableFixtureID && args.OurFixture.ID != FlammableFixtureID) + return; + if (!EntityManager.TryGetComponent(otherUid, out FlammableComponent? otherFlammable)) return; @@ -112,7 +145,8 @@ private void OnCollideEvent(EntityUid uid, FlammableComponent flammable, StartCo otherFlammable.FireStacks += flammable.FireStacks; Ignite(otherUid, otherFlammable); } - } else if (otherFlammable.OnFire) + } + else if (otherFlammable.OnFire) { otherFlammable.FireStacks /= 2; flammable.FireStacks += otherFlammable.FireStacks; @@ -272,7 +306,7 @@ public override void Update(float frameTime) continue; } - var air = _atmosphereSystem.GetTileMixture(transform.Coordinates); + var air = _atmosphereSystem.GetContainingMixture(uid); // If we're in an oxygenless environment, put the fire out. if (air == null || air.GetMoles(Gas.Oxygen) < 1f) @@ -281,7 +315,13 @@ public override void Update(float frameTime) continue; } - _atmosphereSystem.HotspotExpose(transform.Coordinates, 700f, 50f, true); + if(transform.GridUid != null) + { + _atmosphereSystem.HotspotExpose(transform.GridUid.Value, + _transformSystem.GetGridOrMapTilePosition(uid, transform), + 700f, 50f, true); + + } foreach (var otherUid in flammable.Collided.ToArray()) { diff --git a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs index ea647ef69876..118ba3822d85 100644 --- a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs @@ -140,9 +140,7 @@ private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) /// true if updated private bool TryRefreshTile(GridAtmosphereComponent gridAtmosphere, GasOverlayData oldTile, Vector2i indices, out GasOverlayData overlayData) { - var tile = _atmosphereSystem.GetTileAtmosphere(gridAtmosphere, indices); - - if (tile == null) + if (!gridAtmosphere.Tiles.TryGetValue(indices, out var tile)) { overlayData = default; return false; diff --git a/Content.Server/Atmos/GasMixture.cs b/Content.Server/Atmos/GasMixture.cs index 1f7db393a3a5..84f896fe399a 100644 --- a/Content.Server/Atmos/GasMixture.cs +++ b/Content.Server/Atmos/GasMixture.cs @@ -1,5 +1,7 @@ -using System.Linq; +using System.Diagnostics.CodeAnalysis; +using System.Linq; using System.Runtime.CompilerServices; +using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.Reactions; using Content.Shared.Atmos; using Robust.Shared.Serialization; @@ -19,17 +21,12 @@ public sealed class GasMixture : IEquatable, ISerializationHooks [DataField("moles")] [ViewVariables] public float[] Moles = new float[Atmospherics.AdjustedNumberOfGases]; - public float[] MolesArchived = new float[Atmospherics.AdjustedNumberOfGases]; - [DataField("temperature")] [ViewVariables] private float _temperature = Atmospherics.TCMB; [DataField("immutable")] [ViewVariables] public bool Immutable { get; private set; } - [DataField("lastShare")] [ViewVariables] - public float LastShare { get; set; } - [ViewVariables] public readonly Dictionary ReactionResults = new() { @@ -65,8 +62,6 @@ public float Temperature } } - public float TemperatureArchived { get; private set; } - [DataField("volume")] [ViewVariables] public float Volume { get; set; } @@ -87,13 +82,6 @@ public void MarkImmutable() Immutable = true; } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void Archive() - { - Moles.AsSpan().CopyTo(MolesArchived.AsSpan()); - TemperatureArchived = Temperature; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public float GetMoles(int gasId) { @@ -192,40 +180,6 @@ public void CopyFromMutable(GasMixture sample) Temperature = sample.Temperature; } - public enum GasCompareResult - { - NoExchange = -2, - TemperatureExchange = -1, - } - - /// - /// Compares sample to self to see if within acceptable ranges that group processing may be enabled. - /// - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public GasCompareResult Compare(GasMixture sample) - { - var moles = 0f; - - for(var i = 0; i < Atmospherics.TotalNumberOfGases; i++) - { - var gasMoles = Moles[i]; - var delta = MathF.Abs(gasMoles - sample.Moles[i]); - if (delta > Atmospherics.MinimumMolesDeltaToMove && (delta > gasMoles * Atmospherics.MinimumAirRatioToMove)) - return (GasCompareResult)i; // We can move gases! - moles += gasMoles; - } - - if (moles > Atmospherics.MinimumMolesDeltaToMove) - { - var tempDelta = MathF.Abs(Temperature - sample.Temperature); - if (tempDelta > Atmospherics.MinimumTemperatureDeltaToSuspend) - return GasCompareResult.TemperatureExchange; // There can be temperature exchange. - } - - // No exchange at all! - return GasCompareResult.NoExchange; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Clear() { @@ -244,7 +198,6 @@ void ISerializationHooks.AfterDeserialization() { // The arrays MUST have a specific length. Array.Resize(ref Moles, Atmospherics.AdjustedNumberOfGases); - Array.Resize(ref MolesArchived, Atmospherics.AdjustedNumberOfGases); } public override bool Equals(object? obj) @@ -259,15 +212,13 @@ public bool Equals(GasMixture? other) if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return Moles.SequenceEqual(other.Moles) - && MolesArchived.SequenceEqual(other.MolesArchived) && _temperature.Equals(other._temperature) && ReactionResults.SequenceEqual(other.ReactionResults) && Immutable == other.Immutable - && LastShare.Equals(other.LastShare) - && TemperatureArchived.Equals(other.TemperatureArchived) && Volume.Equals(other.Volume); } + [SuppressMessage("ReSharper", "NonReadonlyMemberInGetHashCode")] public override int GetHashCode() { var hashCode = new HashCode(); @@ -275,15 +226,11 @@ public override int GetHashCode() for (var i = 0; i < Atmospherics.TotalNumberOfGases; i++) { var moles = Moles[i]; - var molesArchived = MolesArchived[i]; hashCode.Add(moles); - hashCode.Add(molesArchived); } hashCode.Add(_temperature); - hashCode.Add(TemperatureArchived); hashCode.Add(Immutable); - hashCode.Add(LastShare); hashCode.Add(Volume); return hashCode.ToHashCode(); @@ -294,11 +241,8 @@ public GasMixture Clone() var newMixture = new GasMixture() { Moles = (float[])Moles.Clone(), - MolesArchived = (float[])MolesArchived.Clone(), _temperature = _temperature, Immutable = Immutable, - LastShare = LastShare, - TemperatureArchived = TemperatureArchived, Volume = Volume, }; return newMixture; diff --git a/Content.Server/Atmos/Miasma/MiasmaSystem.cs b/Content.Server/Atmos/Miasma/MiasmaSystem.cs index 76f1a54df92f..217e50ebecef 100644 --- a/Content.Server/Atmos/Miasma/MiasmaSystem.cs +++ b/Content.Server/Atmos/Miasma/MiasmaSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Temperature.Systems; using Content.Server.Body.Components; using Content.Shared.Examine; +using Robust.Server.GameObjects; using Content.Shared.Tag; using Robust.Shared.Containers; using Robust.Shared.Random; @@ -13,6 +14,7 @@ namespace Content.Server.Atmos.Miasma { public sealed class MiasmaSystem : EntitySystem { + [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; @@ -42,7 +44,8 @@ public sealed class MiasmaSystem : EntitySystem "BirdFlew", "VanAusdallsRobovirus", "BleedersBite", - "Plague" + "Plague", + "TongueTwister" }; /// @@ -108,9 +111,11 @@ public override void Update(float frameTime) float molRate = perishable.MolsPerSecondPerUnitMass * _rotUpdateRate; - var tileMix = _atmosphereSystem.GetTileMixture(Transform(perishable.Owner).Coordinates); - if (tileMix != null) - tileMix.AdjustMoles(Gas.Miasma, molRate * physics.FixturesMass); + var transform = Transform(perishable.Owner); + var indices = _transformSystem.GetGridOrMapTilePosition(perishable.Owner); + + var tileMix = _atmosphereSystem.GetTileMixture(transform.GridUid, null, indices, true); + tileMix?.AdjustMoles(Gas.Miasma, molRate * physics.FixturesMass); } } @@ -167,9 +172,10 @@ private void OnGibbed(EntityUid uid, PerishableComponent component, BeingGibbedE return; var molsToDump = (component.MolsPerSecondPerUnitMass * physics.FixturesMass) * component.DeathAccumulator; - var tileMix = _atmosphereSystem.GetTileMixture(Transform(uid).Coordinates); - if (tileMix != null) - tileMix.AdjustMoles(Gas.Miasma, molsToDump); + var transform = Transform(uid); + var indices = _transformSystem.GetGridOrMapTilePosition(uid, transform); + var tileMix = _atmosphereSystem.GetTileMixture(transform.GridUid, null, indices, true); + tileMix?.AdjustMoles(Gas.Miasma, molsToDump); // Waste of entities to let these through foreach (var part in args.GibbedParts) diff --git a/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs b/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs index f0249d704bb6..8a443c412dea 100644 --- a/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs +++ b/Content.Server/Atmos/Monitor/Systems/AtmosMonitoringSystem.cs @@ -9,6 +9,7 @@ using Content.Server.Power.EntitySystems; using Content.Shared.Atmos; using Content.Shared.Atmos.Monitor; +using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -24,6 +25,7 @@ public sealed class AtmosMonitorSystem : EntitySystem [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly AtmosDeviceSystem _atmosDeviceSystem = default!; [Dependency] private readonly DeviceNetworkSystem _deviceNetSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; // Commands @@ -118,27 +120,31 @@ private void OpenAirOrReposition(EntityUid uid, AtmosMonitorComponent? component if (!Resolve(uid, ref component, ref appearance)) return; var transform = Transform(component.Owner); + + if (transform.GridUid == null) + return; + // atmos alarms will first attempt to get the air // directly underneath it - if not, then it will // instead place itself directly in front of the tile // it is facing, and then visually shift itself back // via sprite offsets (SS13 style but fuck it) var coords = transform.Coordinates; + var pos = _transformSystem.GetGridOrMapTilePosition(uid, transform); - if (_atmosphereSystem.IsTileAirBlocked(coords)) + if (_atmosphereSystem.IsTileAirBlocked(transform.GridUid.Value, pos)) { - var rotPos = transform.LocalRotation.RotateVec(new Vector2(0, -1)); transform.Anchored = false; coords = coords.Offset(rotPos); transform.Coordinates = coords; - appearance.SetData("offset", - new Vector2(0, -1)); + appearance.SetData("offset", - new Vector2i(0, -1)); transform.Anchored = true; } - GasMixture? air = _atmosphereSystem.GetTileMixture(coords); + GasMixture? air = _atmosphereSystem.GetContainingMixture(uid, true); component.TileGas = air; _checkPos.Remove(uid); @@ -214,8 +220,7 @@ private void OnPowerChangedEvent(EntityUid uid, AtmosMonitorComponent component, if (atmosDeviceComponent.JoinedGrid == null) { _atmosDeviceSystem.JoinAtmosphere(atmosDeviceComponent); - var coords = Transform(component.Owner).Coordinates; - var air = _atmosphereSystem.GetTileMixture(coords); + var air = _atmosphereSystem.GetContainingMixture(uid, true); component.TileGas = air; } } diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs index 626cb4098b31..cf41fc1187f5 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs @@ -21,9 +21,10 @@ namespace Content.Server.Atmos.Piping.Binary.EntitySystems public sealed class GasVolumePumpSystem : EntitySystem { [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; - [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!; public override void Initialize() @@ -65,7 +66,7 @@ private void OnVolumePumpUpdated(EntityUid uid, GasVolumePumpComponent pump, Atm || !nodeContainer.TryGetNode(pump.InletName, out PipeNode? inlet) || !nodeContainer.TryGetNode(pump.OutletName, out PipeNode? outlet)) { - _ambientSoundSystem.SetAmbience(pump.Owner, false); + _ambientSoundSystem.SetAmbience(uid, false); return; } @@ -88,7 +89,9 @@ private void OnVolumePumpUpdated(EntityUid uid, GasVolumePumpComponent pump, Atm // Some of the gas from the mixture leaks when overclocked. if (pump.Overclocked) { - var tile = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(pump.Owner).Coordinates, true); + var transform = Transform(uid); + var indices = _transformSystem.GetGridOrMapTilePosition(uid, transform); + var tile = _atmosphereSystem.GetTileMixture(transform.GridUid, null, indices, true); if (tile != null) { @@ -98,7 +101,7 @@ private void OnVolumePumpUpdated(EntityUid uid, GasVolumePumpComponent pump, Atm } _atmosphereSystem.Merge(outlet.Air, removed); - _ambientSoundSystem.SetAmbience(pump.Owner, removed.TotalMoles > 0f); + _ambientSoundSystem.SetAmbience(uid, removed.TotalMoles > 0f); } private void OnVolumePumpLeaveAtmosphere(EntityUid uid, GasVolumePumpComponent pump, AtmosDeviceDisabledEvent args) diff --git a/Content.Server/Atmos/Piping/EntitySystems/AtmosDeviceSystem.cs b/Content.Server/Atmos/Piping/EntitySystems/AtmosDeviceSystem.cs index c9396e05945c..130370599f73 100644 --- a/Content.Server/Atmos/Piping/EntitySystems/AtmosDeviceSystem.cs +++ b/Content.Server/Atmos/Piping/EntitySystems/AtmosDeviceSystem.cs @@ -27,20 +27,25 @@ public override void Initialize() SubscribeLocalEvent(OnDeviceAnchorChanged); } - private bool CanJoinAtmosphere(AtmosDeviceComponent component) + private bool CanJoinAtmosphere(AtmosDeviceComponent component, TransformComponent transform) { - return !component.RequireAnchored || EntityManager.GetComponent(component.Owner).Anchored; + return (!component.RequireAnchored || transform.Anchored) && transform.GridUid != null; } public void JoinAtmosphere(AtmosDeviceComponent component) { - if (!CanJoinAtmosphere(component)) + var transform = Transform(component.Owner); + + if (!CanJoinAtmosphere(component, transform)) { return; } + // TODO: low-hanging fruit for perf improvements around here + + // GridUid is not null because we can join atmosphere. // We try to add the device to a valid atmosphere, and if we can't, try to add it to the entity system. - if (!_atmosphereSystem.AddAtmosDevice(component)) + if (!_atmosphereSystem.AddAtmosDevice(transform.GridUid!.Value, component)) { if (component.JoinSystem) { @@ -62,7 +67,7 @@ public void JoinAtmosphere(AtmosDeviceComponent component) public void LeaveAtmosphere(AtmosDeviceComponent component) { // Try to remove the component from an atmosphere, and if not - if (component.JoinedGrid != null && !_atmosphereSystem.RemoveAtmosDevice(component)) + if (component.JoinedGrid != null && !_atmosphereSystem.RemoveAtmosDevice(component.JoinedGrid.Value, component)) { // The grid might have been removed but not us... This usually shouldn't happen. component.JoinedGrid = null; diff --git a/Content.Server/Atmos/Piping/EntitySystems/AtmosUnsafeUnanchorSystem.cs b/Content.Server/Atmos/Piping/EntitySystems/AtmosUnsafeUnanchorSystem.cs index 52abad4104d1..9968b7191e60 100644 --- a/Content.Server/Atmos/Piping/EntitySystems/AtmosUnsafeUnanchorSystem.cs +++ b/Content.Server/Atmos/Piping/EntitySystems/AtmosUnsafeUnanchorSystem.cs @@ -27,7 +27,7 @@ private void OnUnanchorAttempt(EntityUid uid, AtmosUnsafeUnanchorComponent compo if (!component.Enabled || !EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodes)) return; - if (_atmosphereSystem.GetTileMixture(EntityManager.GetComponent(component.Owner).Coordinates) is not {} environment) + if (_atmosphereSystem.GetContainingMixture(uid, true) is not {} environment) return; foreach (var node in nodes.Nodes.Values) @@ -48,7 +48,7 @@ private void OnBeforeUnanchored(EntityUid uid, AtmosUnsafeUnanchorComponent comp if (!component.Enabled || !EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodes)) return; - if (_atmosphereSystem.GetTileMixture(EntityManager.GetComponent(component.Owner).Coordinates, true) is not {} environment) + if (_atmosphereSystem.GetContainingMixture(uid, true, true) is not {} environment) environment = GasMixture.SpaceGas; var lost = 0f; diff --git a/Content.Server/Atmos/Piping/Other/EntitySystems/GasMinerSystem.cs b/Content.Server/Atmos/Piping/Other/EntitySystems/GasMinerSystem.cs index fa310d2b5fbb..9cdee72b68e3 100644 --- a/Content.Server/Atmos/Piping/Other/EntitySystems/GasMinerSystem.cs +++ b/Content.Server/Atmos/Piping/Other/EntitySystems/GasMinerSystem.cs @@ -1,9 +1,13 @@ using System.Diagnostics.CodeAnalysis; +using Content.Server.Atmos.Components; using Content.Server.Atmos.EntitySystems; using Content.Server.Atmos.Piping.Components; using Content.Server.Atmos.Piping.Other.Components; using Content.Shared.Atmos; using JetBrains.Annotations; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; namespace Content.Server.Atmos.Piping.Other.EntitySystems { @@ -11,6 +15,7 @@ namespace Content.Server.Atmos.Piping.Other.EntitySystems public sealed class GasMinerSystem : EntitySystem { [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -34,10 +39,14 @@ private void OnMinerUpdated(EntityUid uid, GasMinerComponent miner, AtmosDeviceU private bool CheckMinerOperation(GasMinerComponent miner, [NotNullWhen(true)] out GasMixture? environment) { - environment = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(miner.Owner).Coordinates, true); + var uid = miner.Owner; + environment = _atmosphereSystem.GetContainingMixture(uid, true, true); + + var transform = Transform(uid); + var position = _transformSystem.GetGridOrMapTilePosition(uid, transform); // Space. - if (_atmosphereSystem.IsTileSpace(EntityManager.GetComponent(miner.Owner).Coordinates)) + if (_atmosphereSystem.IsTileSpace(transform.GridUid, transform.MapUid, position)) { miner.Broken = true; return false; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs index 8acabe39961d..405e62f89425 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs @@ -51,7 +51,7 @@ public void PurgeContents(EntityUid uid, GasCanisterComponent? canister = null, if (!Resolve(uid, ref canister, ref transform)) return; - var environment = _atmosphereSystem.GetTileMixture(transform.Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, false, true); if (environment is not null) _atmosphereSystem.Merge(environment, canister.Air); @@ -180,7 +180,7 @@ private void OnCanisterUpdated(EntityUid uid, GasCanisterComponent canister, Atm } else { - var environment = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(canister.Owner).Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, false, true); _atmosphereSystem.ReleaseGasTo(canister.Air, environment, canister.ReleasePressure); } } diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs index d7514d79fc31..3ef81d0f24ef 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs @@ -58,7 +58,7 @@ private void OnOutletInjectorUpdated(EntityUid uid, GasOutletInjectorComponent i if (!nodeContainer.TryGetNode(injector.InletName, out PipeNode? inlet)) return; - var environment = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(injector.Owner).Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, true, true); if (environment == null) return; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPassiveVentSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPassiveVentSystem.cs index 90aa96c9ebaf..6bd5fd7dadbf 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPassiveVentSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPassiveVentSystem.cs @@ -22,7 +22,7 @@ public override void Initialize() private void OnPassiveVentUpdated(EntityUid uid, GasPassiveVentComponent vent, AtmosDeviceUpdateEvent args) { - var environment = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(vent.Owner).Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, true, true); if (environment == null) return; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs index 5351e6e2a923..8b6b527b4117 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentPumpSystem.cs @@ -67,7 +67,7 @@ private void OnGasVentPumpUpdated(EntityUid uid, GasVentPumpComponent vent, Atmo return; } - var environment = _atmosphereSystem.GetTileMixture(EntityManager.GetComponent(vent.Owner).Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, true, true); // We're in an air-blocked tile... Do nothing. if (environment == null) diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentScrubberSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentScrubberSystem.cs index c0008afcc4e7..fb0f24e7a93b 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentScrubberSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasVentScrubberSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Atmos.Piping.Unary.Components; using Content.Shared.Audio; using JetBrains.Annotations; +using Robust.Server.GameObjects; using Robust.Shared.Timing; namespace Content.Server.Atmos.Piping.Unary.EntitySystems @@ -26,6 +27,7 @@ public sealed class GasVentScrubberSystem : EntitySystem [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly DeviceNetworkSystem _deviceNetSystem = default!; [Dependency] private readonly SharedAmbientSoundSystem _ambientSoundSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -54,19 +56,24 @@ private void OnVentScrubberUpdated(EntityUid uid, GasVentScrubberComponent scrub if (!scrubber.Enabled || !EntityManager.TryGetComponent(uid, out NodeContainerComponent? nodeContainer) || !nodeContainer.TryGetNode(scrubber.OutletName, out PipeNode? outlet)) - { return; - } var xform = Transform(uid); - var environment = _atmosphereSystem.GetTileMixture(xform.Coordinates, true); + + if (xform.GridUid == null) + return; + + var position = _transformSystem.GetGridOrMapTilePosition(uid, xform); + + var environment = _atmosphereSystem.GetTileMixture(xform.GridUid, xform.MapUid, position, true); Scrub(timeDelta, scrubber, environment, outlet); - if (!scrubber.WideNet) return; + if (!scrubber.WideNet) + return; // Scrub adjacent tiles too. - foreach (var adjacent in _atmosphereSystem.GetAdjacentTileMixtures(xform.Coordinates, false, true)) + foreach (var adjacent in _atmosphereSystem.GetAdjacentTileMixtures(xform.GridUid.Value, position, false, true)) { Scrub(timeDelta, scrubber, adjacent, outlet); } diff --git a/Content.Server/Atmos/TileAtmosphere.cs b/Content.Server/Atmos/TileAtmosphere.cs index 21cec7f26240..76948e163689 100644 --- a/Content.Server/Atmos/TileAtmosphere.cs +++ b/Content.Server/Atmos/TileAtmosphere.cs @@ -9,7 +9,7 @@ namespace Content.Server.Atmos /// Internal Atmos class that stores data about the atmosphere in a grid. /// You shouldn't use this directly, use instead. /// - [Access(typeof(AtmosphereSystem))] + [Access(typeof(AtmosphereSystem), typeof(GasTileOverlaySystem), typeof(AtmosDebugOverlaySystem))] public sealed class TileAtmosphere : IGasMixtureHolder { [ViewVariables] @@ -39,6 +39,12 @@ public sealed class TileAtmosphere : IGasMixtureHolder [ViewVariables] public bool Excited { get; set; } + /// + /// Whether this tile should be considered space. + /// + [ViewVariables] + public bool Space { get; set; } + /// /// Adjacent tiles in the same order as . (NSEW) /// @@ -81,6 +87,13 @@ public sealed class TileAtmosphere : IGasMixtureHolder [Access(typeof(AtmosphereSystem), Other = AccessPermissions.ReadExecute)] // FIXME Friends public GasMixture? Air { get; set; } + [ViewVariables] + [DataField("lastShare")] + public float LastShare; + + [ViewVariables] + public float[]? MolesArchived; + GasMixture IGasMixtureHolder.Air { get => Air ?? new GasMixture(Atmospherics.CellVolume){ Temperature = Temperature }; @@ -93,11 +106,13 @@ GasMixture IGasMixtureHolder.Air [ViewVariables] public AtmosDirection BlockedAirflow { get; set; } = AtmosDirection.Invalid; - public TileAtmosphere(EntityUid gridIndex, Vector2i gridIndices, GasMixture? mixture = null, bool immutable = false) + public TileAtmosphere(EntityUid gridIndex, Vector2i gridIndices, GasMixture? mixture = null, bool immutable = false, bool space = false) { GridIndex = gridIndex; GridIndices = gridIndices; Air = mixture; + Space = space; + MolesArchived = Air != null ? new float[Atmospherics.AdjustedNumberOfGases] : null; if(immutable) Air?.MarkImmutable(); diff --git a/Content.Server/Audio/ServerAdminSoundSystem.cs b/Content.Server/Audio/ServerGlobalSoundSystem.cs similarity index 67% rename from Content.Server/Audio/ServerAdminSoundSystem.cs rename to Content.Server/Audio/ServerGlobalSoundSystem.cs index 8d34692ed4e4..205058d7b5d4 100644 --- a/Content.Server/Audio/ServerAdminSoundSystem.cs +++ b/Content.Server/Audio/ServerGlobalSoundSystem.cs @@ -1,6 +1,9 @@ using Content.Server.Administration; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; using Content.Shared.Administration; using Content.Shared.Audio; +using Content.Shared.Sound; using Robust.Server.Player; using Robust.Shared.Audio; using Robust.Shared.Console; @@ -8,10 +11,11 @@ namespace Content.Server.Audio; -public sealed class ServerAdminSoundSystem : SharedAdminSoundSystem +public sealed class ServerGlobalSoundSystem : SharedGlobalSoundSystem { [Dependency] private readonly IConsoleHost _conHost = default!; [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly StationSystem _stationSystem = default!; public override void Initialize() { @@ -25,12 +29,43 @@ public override void Shutdown() _conHost.UnregisterCommand("playglobalsound"); } - private void PlayGlobal(Filter playerFilter, string filename, AudioParams? audioParams = null) + private void PlayAdminGlobal(Filter playerFilter, string filename, AudioParams? audioParams = null) { var msg = new AdminSoundEvent(filename, audioParams); RaiseNetworkEvent(msg, playerFilter); } + private Filter GetStationAndPvs(EntityUid source) + { + var stationFilter = _stationSystem.GetInStation(source); + stationFilter.AddPlayersByPvs(source, entityManager: EntityManager); + return stationFilter; + } + + public void PlayGlobalOnStation(EntityUid source, string filename, AudioParams? audioParams = null) + { + var msg = new GameGlobalSoundEvent(filename, audioParams); + var filter = GetStationAndPvs(source); + RaiseNetworkEvent(msg, filter); + } + + public void StopStationEventMusic(EntityUid source, StationEventMusicType type) + { + var msg = new StopStationEventMusic(type); + var filter = GetStationAndPvs(source); + RaiseNetworkEvent(msg, filter); + } + + public void DispatchStationEventMusic(EntityUid source, SoundSpecifier sound, StationEventMusicType type) + { + var audio = AudioParams.Default.WithVolume(-8); + var soundFile = sound.GetSound(); + var msg = new StationEventMusicEvent(soundFile, type, audio); + + var filter = GetStationAndPvs(source); + RaiseNetworkEvent(msg, filter); + } + /// /// Command that allows admins to play global sounds. /// @@ -96,6 +131,6 @@ public void PlayGlobalSoundCommand(IConsoleShell shell, string argStr, string[] break; } - PlayGlobal(filter, args[0], audio); + PlayAdminGlobal(filter, args[0], audio); } } diff --git a/Content.Server/Body/Components/BloodstreamComponent.cs b/Content.Server/Body/Components/BloodstreamComponent.cs index b5adfa3a429b..4ac3cdbc6ff9 100644 --- a/Content.Server/Body/Components/BloodstreamComponent.cs +++ b/Content.Server/Body/Components/BloodstreamComponent.cs @@ -4,11 +4,12 @@ using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; using Content.Shared.Sound; +using Content.Server.Chemistry.EntitySystems; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Body.Components { - [RegisterComponent, Access(typeof(BloodstreamSystem))] + [RegisterComponent, Access(typeof(BloodstreamSystem), (typeof(ChemistrySystem)))] public sealed class BloodstreamComponent : Component { public static string DefaultChemicalsSolutionName = "chemicals"; diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs index 1e6ddd88be54..448341659e67 100644 --- a/Content.Server/Body/Systems/RespiratorSystem.cs +++ b/Content.Server/Body/Systems/RespiratorSystem.cs @@ -102,7 +102,7 @@ public void Inhale(EntityUid uid, SharedBodyComponent? body=null) if (ev.Gas == null) { - ev.Gas = _atmosSys.GetTileMixture(Transform(uid).Coordinates); + ev.Gas = _atmosSys.GetContainingMixture(uid, false, true); if (ev.Gas == null) return; } @@ -133,7 +133,7 @@ public void Exhale(EntityUid uid, SharedBodyComponent? body=null) if (ev.Gas == null) { - ev.Gas = _atmosSys.GetTileMixture(Transform(uid).Coordinates); + ev.Gas = _atmosSys.GetContainingMixture(uid, false, true); // Walls and grids without atmos comp return null. I guess it makes sense to not be able to exhale in walls, // but this also means you cannot exhale on some grids. diff --git a/Content.Server/Botany/Components/PlantHolderComponent.cs b/Content.Server/Botany/Components/PlantHolderComponent.cs index 9e099872d6e6..c2f651c1e128 100644 --- a/Content.Server/Botany/Components/PlantHolderComponent.cs +++ b/Content.Server/Botany/Components/PlantHolderComponent.cs @@ -7,6 +7,7 @@ using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; +using Robust.Server.GameObjects; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Timing; @@ -225,7 +226,8 @@ public void Update() _updateSpriteAfterUpdate = true; } - var environment = EntitySystem.Get().GetTileMixture(_entMan.GetComponent(Owner).Coordinates, true) ?? + var atmosphereSystem = _entMan.EntitySysManager.GetEntitySystem(); + var environment = atmosphereSystem.GetContainingMixture(Owner, true, true) ?? GasMixture.SpaceGas; if (Seed.ConsumeGasses.Count > 0) diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index 4c7ad5e9b086..3de90663e109 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -165,13 +165,13 @@ public void TrySendInGameOOCMessage(EntityUid source, string message, InGameOOCC #region Announcements /// - /// Dispatches an announcement to all stations + /// Dispatches an announcement to all. /// /// The contents of the message /// The sender (Communications Console in Communications Console Announcement) /// Play the announcement sound /// Optional color for the announcement message - public void DispatchGlobalStationAnnouncement(string message, string sender = "Central Command", + public void DispatchGlobalAnnouncement(string message, string sender = "Central Command", bool playDefaultSound = true, Color? colorOverride = null) { var messageWrap = Loc.GetString("chat-manager-sender-announcement-wrap-message", ("sender", sender)); @@ -195,7 +195,6 @@ public void DispatchStationAnnouncement(EntityUid source, string message, string { var messageWrap = Loc.GetString("chat-manager-sender-announcement-wrap-message", ("sender", sender)); var station = _stationSystem.GetOwningStation(source); - var filter = Filter.Empty(); if (station == null) { @@ -205,10 +204,7 @@ public void DispatchStationAnnouncement(EntityUid source, string message, string if (!EntityManager.TryGetComponent(station, out var stationDataComp)) return; - foreach (var gridEnt in stationDataComp.Grids) - { - filter.AddInGrid(gridEnt); - } + var filter = _stationSystem.GetInStation(stationDataComp); _chatManager.ChatMessageToManyFiltered(filter, ChatChannel.Radio, message, messageWrap, source, false, colorOverride); @@ -422,7 +418,7 @@ private string TransformSpeech(EntityUid sender, string message) private IEnumerable GetDeadChatClients() { return Filter.Empty() - .AddWhereAttachedEntity(uid => HasComp(uid)) + .AddWhereAttachedEntity(HasComp) .Recipients .Union(_adminManager.ActiveAdmins) .Select(p => p.ConnectedClient); diff --git a/Content.Server/Chemistry/EntitySystems/ChemistrySystem.Injector.cs b/Content.Server/Chemistry/EntitySystems/ChemistrySystem.Injector.cs index 1d3694ae17a4..a6add96c94f8 100644 --- a/Content.Server/Chemistry/EntitySystems/ChemistrySystem.Injector.cs +++ b/Content.Server/Chemistry/EntitySystems/ChemistrySystem.Injector.cs @@ -68,6 +68,13 @@ private void UseInjector(EntityUid target, EntityUid user, InjectorComponent com } else if (component.ToggleState == SharedInjectorComponent.InjectorToggleMode.Draw) { + /// Draw from a bloodstream, if the target has that + if (TryComp(target, out var stream)) + { + TryDraw(component, target, stream.BloodSolution, user, stream); + return; + } + /// Draw from an object (food, beaker, etc) if (_solutions.TryGetDrawableSolution(target, out var drawableSolution)) { TryDraw(component, target, drawableSolution, user); @@ -329,7 +336,7 @@ private void AfterDraw(InjectorComponent component) } } - private void TryDraw(InjectorComponent component, EntityUid targetEntity, Solution targetSolution, EntityUid user) + private void TryDraw(InjectorComponent component, EntityUid targetEntity, Solution targetSolution, EntityUid user, BloodstreamComponent? stream = null) { if (!_solutions.TryGetSolution(component.Owner, InjectorComponent.SolutionName, out var solution) || solution.AvailableVolume == 0) @@ -347,6 +354,13 @@ private void TryDraw(InjectorComponent component, EntityUid targetEntity, Soluti return; } + /// We have some snowflaked behavior for streams. + if (stream != null) + { + DrawFromBlood(user, targetEntity, component, solution, stream, (float) realTransferAmount); + return; + } + // Move units from attackSolution to targetSolution var removedSolution = _solutions.Draw(targetEntity, targetSolution, realTransferAmount); @@ -363,6 +377,29 @@ private void TryDraw(InjectorComponent component, EntityUid targetEntity, Soluti AfterDraw(component); } + private void DrawFromBlood(EntityUid user, EntityUid target, InjectorComponent component, Solution injectorSolution, BloodstreamComponent stream, float drawAmount) + { + float bloodAmount = drawAmount; + float chemAmount = 0f; + if (stream.ChemicalSolution.CurrentVolume > 0f) // If they have stuff in their chem stream, we'll draw some of that + { + bloodAmount = drawAmount * 0.85f; + chemAmount = drawAmount * 0.15f; + } + + var bloodTemp = stream.BloodSolution.SplitSolution(bloodAmount); + var chemTemp = stream.ChemicalSolution.SplitSolution(chemAmount); + + _solutions.TryAddSolution(component.Owner, injectorSolution, bloodTemp); + _solutions.TryAddSolution(component.Owner, injectorSolution, chemTemp); + + _popup.PopupEntity(Loc.GetString("injector-component-draw-success-message", + ("amount", drawAmount), + ("target", target)), component.Owner, Filter.Entities(user)); + + Dirty(component); + AfterDraw(component); + } private sealed class InjectionCompleteEvent : EntityEventArgs { public InjectorComponent Component { get; init; } = default!; diff --git a/Content.Server/Chemistry/ReagentEffects/CreateGas.cs b/Content.Server/Chemistry/ReagentEffects/CreateGas.cs index 0f726dca1a51..a2a0c61124b9 100644 --- a/Content.Server/Chemistry/ReagentEffects/CreateGas.cs +++ b/Content.Server/Chemistry/ReagentEffects/CreateGas.cs @@ -21,10 +21,9 @@ public sealed class CreateGas : ReagentEffect public override void Effect(ReagentEffectArgs args) { - var atmosSys = EntitySystem.Get(); + var atmosSys = args.EntityManager.EntitySysManager.GetEntitySystem(); - var xform = args.EntityManager.GetComponent(args.SolutionEntity); - var tileMix = atmosSys.GetTileMixture(xform.Coordinates); + var tileMix = atmosSys.GetContainingMixture(args.SolutionEntity, false, true); if (tileMix != null) { diff --git a/Content.Server/Chemistry/TileReactions/ExtinguishTileReaction.cs b/Content.Server/Chemistry/TileReactions/ExtinguishTileReaction.cs index e3274a098e71..36438d8dee36 100644 --- a/Content.Server/Chemistry/TileReactions/ExtinguishTileReaction.cs +++ b/Content.Server/Chemistry/TileReactions/ExtinguishTileReaction.cs @@ -21,7 +21,7 @@ public FixedPoint2 TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 var atmosphereSystem = EntitySystem.Get(); - var environment = atmosphereSystem.GetTileMixture(tile.GridUid, tile.GridIndices, true); + var environment = atmosphereSystem.GetTileMixture(tile.GridUid, null, tile.GridIndices, true); if (environment == null || !atmosphereSystem.IsHotspotActive(tile.GridUid, tile.GridIndices)) return FixedPoint2.Zero; @@ -30,7 +30,7 @@ public FixedPoint2 TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 MathF.Max(MathF.Min(environment.Temperature - (_coolingTemperature * 1000f), environment.Temperature / _coolingTemperature), Atmospherics.TCMB); - atmosphereSystem.React(tile.GridUid, tile.GridIndices); + atmosphereSystem.ReactTile(tile.GridUid, tile.GridIndices); atmosphereSystem.HotspotExtinguish(tile.GridUid, tile.GridIndices); return FixedPoint2.Zero; diff --git a/Content.Server/Chemistry/TileReactions/FlammableTileReaction.cs b/Content.Server/Chemistry/TileReactions/FlammableTileReaction.cs index 753321aa30e8..47f5c910064d 100644 --- a/Content.Server/Chemistry/TileReactions/FlammableTileReaction.cs +++ b/Content.Server/Chemistry/TileReactions/FlammableTileReaction.cs @@ -20,12 +20,12 @@ public FixedPoint2 TileReact(TileRef tile, ReagentPrototype reagent, FixedPoint2 var atmosphereSystem = EntitySystem.Get(); - var environment = atmosphereSystem.GetTileMixture(tile.GridUid, tile.GridIndices, true); + var environment = atmosphereSystem.GetTileMixture(tile.GridUid, null, tile.GridIndices, true); if (environment == null || !atmosphereSystem.IsHotspotActive(tile.GridUid, tile.GridIndices)) return FixedPoint2.Zero; environment.Temperature *= MathF.Max(_temperatureMultiplier * reactVolume.Float(), 1f); - atmosphereSystem.React(tile.GridUid, tile.GridIndices); + atmosphereSystem.ReactTile(tile.GridUid, tile.GridIndices); return reactVolume; } diff --git a/Content.Server/Communications/CommunicationsConsoleSystem.cs b/Content.Server/Communications/CommunicationsConsoleSystem.cs index f36fa7f351c9..af270af9ab52 100644 --- a/Content.Server/Communications/CommunicationsConsoleSystem.cs +++ b/Content.Server/Communications/CommunicationsConsoleSystem.cs @@ -249,7 +249,7 @@ private void OnAnnounceMessage(EntityUid uid, CommunicationsConsoleComponent com msg += "\n" + Loc.GetString("comms-console-announcement-sent-by") + " " + author; if (comp.AnnounceGlobal) { - _chatSystem.DispatchGlobalStationAnnouncement(msg, title, colorOverride: comp.AnnouncementColor); + _chatSystem.DispatchGlobalAnnouncement(msg, title, colorOverride: comp.AnnouncementColor); return; } _chatSystem.DispatchStationAnnouncement(uid, msg, title, colorOverride: comp.AnnouncementColor); diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs index 0f9522967981..98991973b84f 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs @@ -70,7 +70,7 @@ public void ExitDisposals(EntityUid uid, DisposalHolderComponent? holder = null, _disposalUnitSystem.TryEjectContents(duc); } - if (_atmosphereSystem.GetTileMixture(holderTransform.Coordinates, true) is {} environment) + if (_atmosphereSystem.GetContainingMixture(uid, false, true) is {} environment) { _atmosphereSystem.Merge(environment, holder.Air); holder.Air.Clear(); diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index 3b0c0643608a..6cea4cc0d734 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -42,6 +42,7 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly DumpableSystem _dumpableSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; private readonly List _activeDisposals = new(); @@ -521,8 +522,9 @@ public bool TryFlush(DisposalUnitComponent component) var air = component.Air; var entryComponent = EntityManager.GetComponent(entry); + var indices = _transformSystem.GetGridOrMapTilePosition(component.Owner, xform); - if (_atmosSystem.GetTileMixture(xform.Coordinates, true) is {Temperature: > 0} environment) + if (_atmosSystem.GetTileMixture(xform.GridUid, xform.MapUid, indices, true) is {Temperature: > 0} environment) { var transferMoles = 0.1f * (0.25f * Atmospherics.OneAtmosphere * 1.01f - air.Pressure) * air.Volume / (environment.Temperature * Atmospherics.R); diff --git a/Content.Server/DoAfter/DoAfter.cs b/Content.Server/DoAfter/DoAfter.cs index ec166b5a45d3..f46965118b20 100644 --- a/Content.Server/DoAfter/DoAfter.cs +++ b/Content.Server/DoAfter/DoAfter.cs @@ -162,6 +162,30 @@ private bool IsCancelled(IEntityManager entityManager) } } + if (EventArgs.DistanceThreshold != null) + { + var xformQuery = entityManager.GetEntityQuery(); + TransformComponent? userXform = null; + + // Check user distance to target AND used entities. + if (EventArgs.Target != null && !EventArgs.User.Equals(EventArgs.Target)) + { + //recalculate Target location in case Target has also moved + var targetCoordinates = xformQuery.GetComponent(EventArgs.Target.Value).Coordinates; + userXform ??= xformQuery.GetComponent(EventArgs.User); + if (userXform.Coordinates.InRange(entityManager, targetCoordinates, EventArgs.DistanceThreshold.Value)) + return true; + } + + if (EventArgs.Used != null) + { + var targetCoordinates = xformQuery.GetComponent(EventArgs.Used.Value).Coordinates; + userXform ??= xformQuery.GetComponent(EventArgs.User); + if (!userXform.Coordinates.InRange(entityManager, targetCoordinates, EventArgs.DistanceThreshold.Value)) + return true; + } + } + return false; } diff --git a/Content.Server/DoAfter/DoAfterEventArgs.cs b/Content.Server/DoAfter/DoAfterEventArgs.cs index 96b1ebaaac92..2d527ea3ab62 100644 --- a/Content.Server/DoAfter/DoAfterEventArgs.cs +++ b/Content.Server/DoAfter/DoAfterEventArgs.cs @@ -20,6 +20,11 @@ public sealed class DoAfterEventArgs /// public EntityUid? Target { get; } + /// + /// Entity used by the User on the Target. + /// + public EntityUid? Used { get; set; } + /// /// Manually cancel the do_after so it no longer runs /// @@ -55,6 +60,11 @@ public sealed class DoAfterEventArgs public FixedPoint2 DamageThreshold { get; set; } public bool BreakOnStun { get; set; } + /// + /// Threshold for distance user from the used OR target entities. + /// + public float? DistanceThreshold { get; set; } + /// /// Requires a function call once at the end (like InRangeUnobstructed). /// @@ -102,12 +112,14 @@ public DoAfterEventArgs( EntityUid user, float delay, CancellationToken cancelToken = default, - EntityUid? target = null) + EntityUid? target = null, + EntityUid? used = null) { User = user; Delay = delay; CancelToken = cancelToken; Target = target; + Used = used; MovementThreshold = 0.1f; DamageThreshold = 1.0; diff --git a/Content.Server/Doors/Components/FirelockComponent.cs b/Content.Server/Doors/Components/FirelockComponent.cs index 564c748a8c00..665d46f39e85 100644 --- a/Content.Server/Doors/Components/FirelockComponent.cs +++ b/Content.Server/Doors/Components/FirelockComponent.cs @@ -2,6 +2,10 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Doors.Systems; using Content.Shared.Doors.Components; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Serialization.Manager.Attributes; namespace Content.Server.Doors.Components { @@ -42,12 +46,20 @@ public bool EmergencyPressureStop() public bool IsHoldingPressure(float threshold = 20) { - var atmosphereSystem = EntitySystem.Get(); + var transform = _entMan.GetComponent(Owner); + + if (transform.GridUid is not {} gridUid) + return false; + + var atmosphereSystem = _entMan.EntitySysManager.GetEntitySystem(); + var transformSystem = _entMan.EntitySysManager.GetEntitySystem(); + + var position = transformSystem.GetGridOrMapTilePosition(Owner, transform); var minMoles = float.MaxValue; var maxMoles = 0f; - foreach (var adjacent in atmosphereSystem.GetAdjacentTileMixtures(_entMan.GetComponent(Owner).Coordinates)) + foreach (var adjacent in atmosphereSystem.GetAdjacentTileMixtures(gridUid, position)) { var moles = adjacent.TotalMoles; if (moles < minMoles) @@ -61,20 +73,25 @@ public bool IsHoldingPressure(float threshold = 20) public bool IsHoldingFire() { - var atmosphereSystem = EntitySystem.Get(); + var atmosphereSystem = _entMan.EntitySysManager.GetEntitySystem(); + var transformSystem = _entMan.EntitySysManager.GetEntitySystem(); + + var transform = _entMan.GetComponent(Owner); + var position = transformSystem.GetGridOrMapTilePosition(Owner, transform); - if (!atmosphereSystem.TryGetGridAndTile(_entMan.GetComponent(Owner).Coordinates, out var tuple)) + // No grid, no fun. + if (transform.GridUid is not {} gridUid) return false; - if (atmosphereSystem.GetTileMixture(tuple.Value.Grid, tuple.Value.Tile) == null) + if (atmosphereSystem.GetTileMixture(gridUid, null, position) == null) return false; - if (atmosphereSystem.IsHotspotActive(tuple.Value.Grid, tuple.Value.Tile)) + if (atmosphereSystem.IsHotspotActive(gridUid, position)) return true; - foreach (var adjacent in atmosphereSystem.GetAdjacentTiles(_entMan.GetComponent(Owner).Coordinates)) + foreach (var adjacent in atmosphereSystem.GetAdjacentTiles(gridUid, position)) { - if (atmosphereSystem.IsHotspotActive(tuple.Value.Grid, adjacent)) + if (atmosphereSystem.IsHotspotActive(gridUid, adjacent)) return true; } diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 95a7dd6b9b46..789d67d1fba3 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -483,7 +483,7 @@ private void AnnounceRound() if (!proto.GamePresets.Contains(Preset.ID)) continue; if (proto.Message != null) - _chatSystem.DispatchGlobalStationAnnouncement(Loc.GetString(proto.Message), playDefaultSound: true); + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString(proto.Message), playDefaultSound: true); if (proto.Sound != null) SoundSystem.Play(proto.Sound.GetSound(), Filter.Broadcast()); diff --git a/Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs index c1934b5e6db7..038e6c62934f 100644 --- a/Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs @@ -19,6 +19,7 @@ using Content.Shared.PDA; using Content.Shared.Roles; using Content.Shared.Traitor.Uplink; +using Robust.Server.GameObjects; using Robust.Server.Player; using Robust.Shared.Configuration; using Robust.Shared.Map; @@ -36,6 +37,8 @@ public sealed class TraitorDeathMatchRuleSystem : GameRuleSystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly MaxTimeRestartRuleSystem _restarter = default!; [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override string Prototype => "TraitorDeathMatch"; @@ -243,10 +246,17 @@ private bool FindAnyIsolatedSpawnLocation(Mind.Mind ignoreMe, out EntityCoordina _robustRandom.Shuffle(ents); var foundATarget = false; bestTarget = EntityCoordinates.Invalid; - var atmosphereSystem = EntitySystem.Get(); + foreach (var entity in ents) { - if (!atmosphereSystem.IsTileMixtureProbablySafe(Transform(entity).Coordinates)) + var transform = Transform(entity); + + if (transform.GridUid == null || transform.MapUid == null) + continue; + + var position = _transformSystem.GetGridOrMapTilePosition(entity, transform); + + if (!_atmosphereSystem.IsTileMixtureProbablySafe(transform.GridUid.Value, transform.MapUid.Value, position)) continue; var distanceFromNearest = float.PositiveInfinity; diff --git a/Content.Server/Light/EntitySystems/MatchstickSystem.cs b/Content.Server/Light/EntitySystems/MatchstickSystem.cs index 9b0fa1652a70..171b07f44f5a 100644 --- a/Content.Server/Light/EntitySystems/MatchstickSystem.cs +++ b/Content.Server/Light/EntitySystems/MatchstickSystem.cs @@ -14,8 +14,8 @@ namespace Content.Server.Light.EntitySystems public sealed class MatchstickSystem : EntitySystem { private HashSet _litMatches = new(); - [Dependency] - private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -38,7 +38,14 @@ public override void Update(float frameTime) if (match.CurrentState != SmokableState.Lit || Paused(match.Owner) || match.Deleted) continue; - _atmosphereSystem.HotspotExpose(EntityManager.GetComponent(match.Owner).Coordinates, 400, 50, true); + var xform = Transform(match.Owner); + + if (xform.GridUid is not {} gridUid) + return; + + var position = _transformSystem.GetGridOrMapTilePosition(match.Owner, xform); + + _atmosphereSystem.HotspotExpose(gridUid, position, 400, 50, true); } } diff --git a/Content.Server/NodeContainer/NodeGroups/PipeNet.cs b/Content.Server/NodeContainer/NodeGroups/PipeNet.cs index df362354cf6d..e5dd31cbc159 100644 --- a/Content.Server/NodeContainer/NodeGroups/PipeNet.cs +++ b/Content.Server/NodeContainer/NodeGroups/PipeNet.cs @@ -33,10 +33,13 @@ public override void Initialize(Node sourceNode, IEntityManager? entMan = null) Grid = entMan.GetComponent(sourceNode.Owner).GridUid; if (Grid == null) + { Logger.Error($"Created a pipe network without an associated grid. Pipe networks currently need to be tied to a grid for amtos to work. Source entity: {entMan.ToPrettyString(sourceNode.Owner)}"); + return; + } _atmosphereSystem = entMan.EntitySysManager.GetEntitySystem(); - _atmosphereSystem.AddPipeNet(this); + _atmosphereSystem.AddPipeNet(Grid.Value, this); } public void Update() @@ -85,7 +88,11 @@ public override void AfterRemake(IEnumerable> newGr private void RemoveFromGridAtmos() { DebugTools.AssertNotNull(_atmosphereSystem); - _atmosphereSystem?.RemovePipeNet(this); + + if (Grid == null) + return; + + _atmosphereSystem?.RemovePipeNet(Grid.Value, this); } public override string GetDebugData() diff --git a/Content.Server/Nuke/NukeCodeSystem.cs b/Content.Server/Nuke/NukeCodeSystem.cs index 80f2a42bf828..8c478cff3e11 100644 --- a/Content.Server/Nuke/NukeCodeSystem.cs +++ b/Content.Server/Nuke/NukeCodeSystem.cs @@ -80,7 +80,7 @@ public bool SendNukeCodes() if (wasSent) { var msg = Loc.GetString("nuke-component-announcement-send-codes"); - _chatSystem.DispatchGlobalStationAnnouncement(msg, colorOverride: Color.Red); + _chatSystem.DispatchGlobalAnnouncement(msg, colorOverride: Color.Red); } return wasSent; diff --git a/Content.Server/Nuke/NukeComponent.cs b/Content.Server/Nuke/NukeComponent.cs index 33761a9ad365..503a50758e77 100644 --- a/Content.Server/Nuke/NukeComponent.cs +++ b/Content.Server/Nuke/NukeComponent.cs @@ -1,3 +1,4 @@ +using System.Threading; using Content.Shared.Containers.ItemSlots; using Content.Shared.Explosion; using Content.Shared.Nuke; @@ -18,11 +19,10 @@ public sealed class NukeComponent : SharedNukeComponent { /// /// Default bomb timer value in seconds. - /// Must be shorter then the nuke alarm song. /// [DataField("timer")] [ViewVariables(VVAccess.ReadWrite)] - public int Timer = 120; + public int Timer = 300; /// /// How long until the bomb can arm again after deactivation. @@ -40,14 +40,25 @@ public sealed class NukeComponent : SharedNukeComponent public ItemSlot DiskSlot = new(); /// - /// After this time nuke will play last alert sound + /// When this time is left, nuke will play last alert sound /// [DataField("alertTime")] public float AlertSoundTime = 10.0f; + /// + /// How long a user must wait to disarm the bomb. + /// + [DataField("disarmDoafterLength")] + public float DisarmDoafterLength = 30.0f; + [DataField("alertLevelOnActivate")] public string AlertLevelOnActivate = default!; [DataField("alertLevelOnDeactivate")] public string AlertLevelOnDeactivate = default!; + /// + /// This is stored so we can do a funny by making 0 shift the last played note up by 12 semitones (octave) + /// + public int LastPlayedKeypadSemitones = 0; + [DataField("keypadPressSound")] public SoundSpecifier KeypadPressSound = new SoundPathSpecifier("/Audio/Machines/Nuke/general_beep.ogg"); @@ -66,6 +77,9 @@ public sealed class NukeComponent : SharedNukeComponent [DataField("disarmSound")] public SoundSpecifier DisarmSound = new SoundPathSpecifier("/Audio/Misc/notice2.ogg"); + [DataField("armMusic")] + public SoundSpecifier ArmMusic = new SoundPathSpecifier("/Audio/StationEvents/countdown.ogg"); + // These datafields here are duplicates of those in explosive component. But I'm hesitant to use explosive // component, just in case at some point, somehow, when grenade crafting added in someone manages to wire up a // proximity trigger or something to the nuke and set it off prematurely. I want to make sure they MEAN to set of @@ -133,11 +147,18 @@ public sealed class NukeComponent : SharedNukeComponent [ViewVariables] public NukeStatus Status = NukeStatus.AWAIT_DISK; + /// + /// Check if nuke has already played the nuke song so we don't do it again + /// + public bool PlayedNukeSong = false; + /// /// Check if nuke has already played last alert sound /// public bool PlayedAlertSound = false; + public CancellationToken? DisarmCancelToken = null; + public IPlayingAudioStream? AlertAudioStream = default; } } diff --git a/Content.Server/Nuke/NukeSystem.cs b/Content.Server/Nuke/NukeSystem.cs index 174fdf5d281d..6f08aed792f4 100644 --- a/Content.Server/Nuke/NukeSystem.cs +++ b/Content.Server/Nuke/NukeSystem.cs @@ -1,8 +1,10 @@ using Content.Server.AlertLevel; +using Content.Server.Audio; using Content.Server.Chat; using Content.Server.Chat.Managers; using Content.Server.Chat.Systems; using Content.Server.Coordinates.Helpers; +using Content.Server.DoAfter; using Content.Server.Explosion.EntitySystems; using Content.Server.Popups; using Content.Server.Station.Systems; @@ -15,6 +17,7 @@ using Robust.Shared.Audio; using Robust.Shared.Containers; using Robust.Shared.Player; +using Robust.Shared.Timing; namespace Content.Server.Nuke { @@ -26,7 +29,19 @@ public sealed class NukeSystem : EntitySystem [Dependency] private readonly ExplosionSystem _explosions = default!; [Dependency] private readonly AlertLevelSystem _alertLevel = default!; [Dependency] private readonly StationSystem _stationSystem = default!; + [Dependency] private readonly ServerGlobalSoundSystem _soundSystem = default!; [Dependency] private readonly ChatSystem _chatSystem = default!; + [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; + + /// + /// Used to calculate when the nuke song should start playing for maximum kino with the nuke sfx + /// + private const float NukeSongLength = 60f + 51.6f; + + /// + /// Time to leave between the nuke song and the nuke alarm playing. + /// + private const float NukeSongBuffer = 1.5f; public override void Initialize() { @@ -48,6 +63,10 @@ public override void Initialize() SubscribeLocalEvent(OnKeypadButtonPressed); SubscribeLocalEvent(OnClearButtonPressed); SubscribeLocalEvent(OnEnterButtonPressed); + + // Doafter events + SubscribeLocalEvent(OnDisarmSuccess); + SubscribeLocalEvent(OnDisarmCancelled); } private void OnInit(EntityUid uid, NukeComponent component, ComponentInit args) @@ -95,6 +114,7 @@ private void OnItemSlotChanged(EntityUid uid, NukeComponent component, Container } #region Anchor + private void OnAnchorAttempt(EntityUid uid, NukeComponent component, AnchorAttemptEvent args) { CheckAnchorAttempt(uid, component, args); @@ -121,9 +141,11 @@ private void OnAnchorChanged(EntityUid uid, NukeComponent component, ref AnchorS { UpdateUserInterface(uid, component); } + #endregion #region UI Events + private async void OnAnchorButtonPressed(EntityUid uid, NukeComponent component, NukeAnchorMessage args) { if (!component.DiskSlot.HasItem) @@ -151,7 +173,7 @@ private void OnEnterButtonPressed(EntityUid uid, NukeComponent component, NukeKe private void OnKeypadButtonPressed(EntityUid uid, NukeComponent component, NukeKeypadMessage args) { - PlaySound(uid, component.KeypadPressSound, 0.125f, component); + PlayNukeKeypadSound(uid, args.Value, component); if (component.Status != NukeStatus.AWAIT_CODE) return; @@ -185,9 +207,28 @@ private void OnArmButtonPressed(EntityUid uid, NukeComponent component, NukeArme } else { - DisarmBomb(uid, component); + if (args.Session.AttachedEntity is not { } user) + return; + + DisarmBombDoafter(uid, user, component); } } + + #endregion + + #region Doafter Events + + private void OnDisarmSuccess(EntityUid uid, NukeComponent component, NukeDisarmSuccessEvent args) + { + component.DisarmCancelToken = null; + DisarmBomb(uid, component); + } + + private void OnDisarmCancelled(EntityUid uid, NukeComponent component, NukeDisarmCancelledEvent args) + { + component.DisarmCancelToken = null; + } + #endregion private void TickCooldown(EntityUid uid, float frameTime, NukeComponent? nuke = null) @@ -214,10 +255,19 @@ private void TickTimer(EntityUid uid, float frameTime, NukeComponent? nuke = nul nuke.RemainingTime -= frameTime; + // Start playing the nuke event song so that it ends a couple seconds before the alert sound + // should play + if (nuke.RemainingTime <= NukeSongLength + nuke.AlertSoundTime + NukeSongBuffer && !nuke.PlayedNukeSong) + { + _soundSystem.DispatchStationEventMusic(uid, nuke.ArmMusic, StationEventMusicType.Nuke); + nuke.PlayedNukeSong = true; + } + // play alert sound if time is running out if (nuke.RemainingTime <= nuke.AlertSoundTime && !nuke.PlayedAlertSound) { nuke.AlertAudioStream = SoundSystem.Play(nuke.AlertSound.GetSound(), Filter.Broadcast()); + _soundSystem.StopStationEventMusic(uid, StationEventMusicType.Nuke); nuke.PlayedAlertSound = true; } @@ -244,28 +294,29 @@ private void UpdateStatus(EntityUid uid, NukeComponent? component = null) component.Status = NukeStatus.AWAIT_CODE; break; case NukeStatus.AWAIT_CODE: + { + if (!component.DiskSlot.HasItem) { - if (!component.DiskSlot.HasItem) - { - component.Status = NukeStatus.AWAIT_DISK; - component.EnteredCode = ""; - break; - } - - var isValid = _codes.IsCodeValid(component.EnteredCode); - if (isValid) - { - component.Status = NukeStatus.AWAIT_ARM; - component.RemainingTime = component.Timer; - PlaySound(uid, component.AccessGrantedSound, 0, component); - } - else - { - component.EnteredCode = ""; - PlaySound(uid, component.AccessDeniedSound, 0, component); - } + component.Status = NukeStatus.AWAIT_DISK; + component.EnteredCode = ""; break; } + + var isValid = _codes.IsCodeValid(component.EnteredCode); + if (isValid) + { + component.Status = NukeStatus.AWAIT_ARM; + component.RemainingTime = component.Timer; + PlaySound(uid, component.AccessGrantedSound, 0, component); + } + else + { + component.EnteredCode = ""; + PlaySound(uid, component.AccessDeniedSound, 0, component); + } + + break; + } case NukeStatus.AWAIT_ARM: // do nothing, wait for arm button to be pressed break; @@ -307,6 +358,37 @@ private void UpdateUserInterface(EntityUid uid, NukeComponent? component = null) ui.SetState(state); } + private void PlayNukeKeypadSound(EntityUid uid, int number, NukeComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + + // This is a C mixolydian blues scale. + // 1 2 3 C D Eb + // 4 5 6 E F F# + // 7 8 9 G A Bb + var semitoneShift = number switch + { + 1 => 0, + 2 => 2, + 3 => 3, + 4 => 4, + 5 => 5, + 6 => 6, + 7 => 7, + 8 => 9, + 9 => 10, + 0 => component.LastPlayedKeypadSemitones + 12, + _ => 0 + }; + + // Don't double-dip on the octave shifting + component.LastPlayedKeypadSemitones = number == 0 ? component.LastPlayedKeypadSemitones : semitoneShift; + + SoundSystem.Play(component.KeypadPressSound.GetSound(), Filter.Pvs(uid), + AudioHelpers.ShiftSemitone(semitoneShift).WithVolume(-5f)); + } + private void PlaySound(EntityUid uid, SoundSpecifier sound, float varyPitch = 0f, NukeComponent? component = null) { @@ -318,6 +400,7 @@ private void PlaySound(EntityUid uid, SoundSpecifier sound, float varyPitch = 0f } #region Public API + /// /// Force a nuclear bomb to start a countdown timer /// @@ -335,7 +418,7 @@ public void ArmBomb(EntityUid uid, NukeComponent? component = null) // Otherwise, you could set every station to whatever AlertLevelOnActivate is. if (stationUid != null) { - _alertLevel.SetLevel(stationUid.Value, component.AlertLevelOnActivate, true, true, true, true); + _alertLevel.SetLevel(stationUid.Value, component.AlertLevelOnActivate, false, true, true, true); } // warn a crew @@ -344,9 +427,9 @@ public void ArmBomb(EntityUid uid, NukeComponent? component = null) var sender = Loc.GetString("nuke-component-announcement-sender"); _chatSystem.DispatchStationAnnouncement(uid, announcement, sender, false, Color.Red); - // todo: move it to announcements system - SoundSystem.Play(component.ArmSound.GetSound(), Filter.Broadcast()); + NukeArmedAudio(component); + _itemSlots.SetLock(uid, component.DiskSlot, true); component.Status = NukeStatus.ARMED; UpdateUserInterface(uid, component); } @@ -373,14 +456,15 @@ public void DisarmBomb(EntityUid uid, NukeComponent? component = null) var sender = Loc.GetString("nuke-component-announcement-sender"); _chatSystem.DispatchStationAnnouncement(uid, announcement, sender, false); - // todo: move it to announcements system - SoundSystem.Play(component.DisarmSound.GetSound(), Filter.Broadcast()); + component.PlayedNukeSong = false; + NukeDisarmedAudio(component); // disable sound and reset it component.PlayedAlertSound = false; component.AlertAudioStream?.Stop(); // start bomb cooldown + _itemSlots.SetLock(uid, component.DiskSlot, false); component.Status = NukeStatus.COOLDOWN; component.CooldownTime = component.Cooldown; @@ -423,6 +507,7 @@ public void ActivateBomb(EntityUid uid, NukeComponent? component = null, RaiseLocalEvent(new NukeExplodedEvent()); + _soundSystem.StopStationEventMusic(component.Owner, StationEventMusicType.Nuke); EntityManager.DeleteEntity(uid); } @@ -437,8 +522,49 @@ public void SetRemainingTime(EntityUid uid, float timer, NukeComponent? componen component.RemainingTime = timer; UpdateUserInterface(uid, component); } + #endregion + + private void DisarmBombDoafter(EntityUid uid, EntityUid user, NukeComponent nuke) + { + nuke.DisarmCancelToken = new(); + var doafter = new DoAfterEventArgs(user, nuke.DisarmDoafterLength, nuke.DisarmCancelToken.Value, uid) + { + TargetCancelledEvent = new NukeDisarmCancelledEvent(), + TargetFinishedEvent = new NukeDisarmSuccessEvent(), + BreakOnDamage = true, + BreakOnStun = true, + BreakOnTargetMove = true, + BreakOnUserMove = true, + NeedHand = true, + }; + + _doAfterSystem.DoAfter(doafter); + _popups.PopupEntity(Loc.GetString("nuke-component-doafter-warning"), user, Filter.Entities(user)); + } + + private void NukeArmedAudio(NukeComponent component) + { + _soundSystem.PlayGlobalOnStation(component.Owner, component.ArmSound.GetSound()); + } + + private void NukeDisarmedAudio(NukeComponent component) + { + _soundSystem.PlayGlobalOnStation(component.Owner, component.DisarmSound.GetSound()); + _soundSystem.StopStationEventMusic(component.Owner, StationEventMusicType.Nuke); + } } public sealed class NukeExplodedEvent : EntityEventArgs {} + + /// + /// Raised directed on the nuke when its disarm doafter is successful. + /// + public sealed class NukeDisarmSuccessEvent : EntityEventArgs {} + + /// + /// Raised directed on the nuke when its disarm doafter is cancelled. + /// + public sealed class NukeDisarmCancelledEvent : EntityEventArgs {} + } diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index ff46bf4b73af..30d49a815453 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -126,13 +126,14 @@ public bool TryFeed(EntityUid user, EntityUid target, FoodComponent food) var moveBreak = user != target; - _doAfterSystem.DoAfter(new DoAfterEventArgs(user, forceFeed ? food.ForceFeedDelay : food.Delay, food.CancelToken.Token, target) + _doAfterSystem.DoAfter(new DoAfterEventArgs(user, forceFeed ? food.ForceFeedDelay : food.Delay, food.CancelToken.Token, target, food.Owner) { BreakOnUserMove = moveBreak, BreakOnDamage = true, BreakOnStun = true, BreakOnTargetMove = moveBreak, MovementThreshold = 0.01f, + DistanceThreshold = 2.0f, TargetFinishedEvent = new FeedEvent(user, food, foodSolution, utensils), BroadcastCancelledEvent = new ForceFeedCancelledEvent(food), NeedHand = true, diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs index 23552f99bffc..60547510b509 100644 --- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.cs @@ -11,6 +11,7 @@ using Content.Shared.Inventory; using Content.Shared.Smoking; using Content.Shared.Temperature; +using Robust.Server.GameObjects; using Robust.Shared.Containers; namespace Content.Server.Nutrition.EntitySystems @@ -21,8 +22,8 @@ public sealed partial class SmokingSystem : EntitySystem [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; [Dependency] private readonly AtmosphereSystem _atmos = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; - private const float UpdateTimer = 3f; private float _timer = 0f; @@ -79,6 +80,7 @@ public override void Update(float frameTime) if (_timer < UpdateTimer) return; + // TODO Use an "active smoke" component instead, EntityQuery over that. foreach (var uid in _active.ToArray()) { if (!TryComp(uid, out SmokableComponent? smokable)) @@ -96,7 +98,12 @@ public override void Update(float frameTime) if (smokable.ExposeTemperature > 0 && smokable.ExposeVolume > 0) { var transform = Transform(uid); - _atmos.HotspotExpose(transform.Coordinates, smokable.ExposeTemperature, smokable.ExposeVolume, true); + + if (transform.GridUid is {} gridUid) + { + var position = _transformSystem.GetGridOrMapTilePosition(uid, transform); + _atmos.HotspotExpose(gridUid, position, smokable.ExposeTemperature, smokable.ExposeVolume, true); + } } var inhaledSolution = _solutionContainerSystem.SplitSolution(uid, solution, smokable.InhaleAmount * _timer); diff --git a/Content.Server/Physics/Controllers/MoverController.cs b/Content.Server/Physics/Controllers/MoverController.cs index d534f547eade..c0b2ad388f88 100644 --- a/Content.Server/Physics/Controllers/MoverController.cs +++ b/Content.Server/Physics/Controllers/MoverController.cs @@ -24,7 +24,7 @@ public sealed class MoverController : SharedMoverController /// client namespace. /// private HashSet _excludedMobs = new(); - private Dictionary> _shuttlePilots = new(); + private Dictionary> _shuttlePilots = new(); protected override Filter GetSoundPlayers(EntityUid mover) { @@ -60,7 +60,7 @@ public override void UpdateBeforeSolve(bool prediction, float frameTime) private void HandleShuttleMovement(float frameTime) { - var newPilots = new Dictionary>(); + var newPilots = new Dictionary>(); // We just mark off their movement and the shuttle itself does its own movement foreach (var (pilot, mover) in EntityManager.EntityQuery()) @@ -85,11 +85,11 @@ private void HandleShuttleMovement(float frameTime) if (!newPilots.TryGetValue(shuttleComponent, out var pilots)) { - pilots = new List<(PilotComponent, IMoverComponent)>(); + pilots = new List<(PilotComponent, IMoverComponent, TransformComponent)>(); newPilots[shuttleComponent] = pilots; } - pilots.Add((pilot, mover)); + pilots.Add((pilot, mover, xform)); } // Reset inputs for non-piloted shuttles. @@ -115,21 +115,13 @@ private void HandleShuttleMovement(float frameTime) switch (shuttle.Mode) { case ShuttleMode.Cruise: - foreach (var (pilot, mover) in pilots) + foreach (var (pilot, mover, consoleXform) in pilots) { - var console = pilot.Console; - - if (console == null) - { - DebugTools.Assert(false); - continue; - } - var sprint = mover.VelocityDir.sprinting; if (sprint.Equals(Vector2.Zero)) continue; - var offsetRotation = EntityManager.GetComponent(console.Owner).LocalRotation; + var offsetRotation = consoleXform.LocalRotation; linearInput += offsetRotation.RotateVec(new Vector2(0f, sprint.Y)); angularInput += sprint.X; @@ -137,21 +129,13 @@ private void HandleShuttleMovement(float frameTime) break; case ShuttleMode.Strafing: // No angular input possible - foreach (var (pilot, mover) in pilots) + foreach (var (pilot, mover, consoleXform) in pilots) { - var console = pilot.Console; - - if (console == null) - { - DebugTools.Assert(false); - continue; - } - var sprint = mover.VelocityDir.sprinting; if (sprint.Equals(Vector2.Zero)) continue; - var offsetRotation = EntityManager.GetComponent((console).Owner).LocalRotation; + var offsetRotation = consoleXform.LocalRotation; sprint = offsetRotation.RotateVec(sprint); linearInput += sprint; diff --git a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs index 8bc745262243..88364fa810a2 100644 --- a/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs +++ b/Content.Server/PneumaticCannon/PneumaticCannonSystem.cs @@ -252,7 +252,7 @@ public void Fire(PneumaticCannonComponent comp, PneumaticCannonComponent.FireDat { // we checked for this earlier in HasGas so a GetComp is okay var gas = EntityManager.GetComponent(contained); - var environment = _atmos.GetTileMixture(EntityManager.GetComponent(comp.Owner).Coordinates, true); + var environment = _atmos.GetContainingMixture(comp.Owner, false, true); var removed = gas.RemoveAir(GetMoleUsageFromPower(comp.Power)); if (environment != null && removed != null) { diff --git a/Content.Server/RatKing/RatKingSystem.cs b/Content.Server/RatKing/RatKingSystem.cs index a4548b39329d..530012cd7ea2 100644 --- a/Content.Server/RatKing/RatKingSystem.cs +++ b/Content.Server/RatKing/RatKingSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Popups; using Content.Shared.Actions; using Content.Shared.Atmos; +using Robust.Server.GameObjects; using Robust.Shared.Player; namespace Content.Server.RatKing @@ -17,6 +18,7 @@ public sealed class RatKingSystem : EntitySystem [Dependency] private readonly DiseaseSystem _disease = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly AtmosphereSystem _atmos = default!; + [Dependency] private readonly TransformSystem _xform = default!; public override void Initialize() { @@ -79,9 +81,10 @@ private void OnDomain(EntityUid uid, RatKingComponent component, RatKingDomainAc _popup.PopupEntity(Loc.GetString("rat-king-domain-popup"), uid, Filter.Pvs(uid)); - var tileMix = _atmos.GetTileMixture(Transform(uid).Coordinates); - if (tileMix != null) - tileMix.AdjustMoles(Gas.Miasma, component.MolesMiasmaPerDomain); + var transform = Transform(uid); + var indices = _xform.GetGridOrMapTilePosition(uid, transform); + var tileMix = _atmos.GetTileMixture(transform.GridUid, transform.MapUid, indices, true); + tileMix?.AdjustMoles(Gas.Miasma, component.MolesMiasmaPerDomain); } } diff --git a/Content.Server/RoundEnd/RoundEndSystem.cs b/Content.Server/RoundEnd/RoundEndSystem.cs index 46785bf928a4..effbbdef9ac1 100644 --- a/Content.Server/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/RoundEnd/RoundEndSystem.cs @@ -128,7 +128,7 @@ public void RequestRoundEnd(TimeSpan countdownTime, EntityUid? requester = null, units = "eta-units-minutes"; } - _chatSystem.DispatchGlobalStationAnnouncement(Loc.GetString("round-end-system-shuttle-called-announcement", + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString("round-end-system-shuttle-called-announcement", ("time", time), ("units", Loc.GetString(units))), Loc.GetString("Station"), @@ -163,7 +163,7 @@ public void CancelRoundEndCountdown(EntityUid? requester = null, bool checkCoold _adminLogger.Add(LogType.ShuttleRecalled, LogImpact.High, $"Shuttle recalled"); } - _chatSystem.DispatchGlobalStationAnnouncement(Loc.GetString("round-end-system-shuttle-recalled-announcement"), + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString("round-end-system-shuttle-recalled-announcement"), Loc.GetString("Station"), false, colorOverride: Color.Gold); SoundSystem.Play("/Audio/Announcements/shuttlerecalled.ogg", Filter.Broadcast()); diff --git a/Content.Server/Salvage/SalvageMobRestrictionsSystem.cs b/Content.Server/Salvage/SalvageMobRestrictionsSystem.cs index 02fc0314ccd9..1819cf85e199 100644 --- a/Content.Server/Salvage/SalvageMobRestrictionsSystem.cs +++ b/Content.Server/Salvage/SalvageMobRestrictionsSystem.cs @@ -20,6 +20,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.CodeAnalysis; namespace Content.Server.Salvage; @@ -63,16 +64,20 @@ private void OnRemove(EntityUid uid, SalvageMobRestrictionsComponent component, private void OnRemoveGrid(EntityUid uid, SalvageMobRestrictionsGridComponent component, ComponentRemove args) { - foreach (EntityUid target in component.MobsToKill) + var metaQuery = GetEntityQuery(); + var bodyQuery = GetEntityQuery(); + var damageQuery = GetEntityQuery(); + foreach (var target in component.MobsToKill) { - if (TryComp(target, out BodyComponent? body)) + if (Deleted(target, metaQuery)) continue; + if (bodyQuery.TryGetComponent(target, out var body)) { // Just because. body.Gib(); } - else if (TryComp(target, out DamageableComponent? dc)) + else if (damageQuery.TryGetComponent(target, out var damageableComponent)) { - _damageableSystem.SetAllDamage(dc, 200); + _damageableSystem.SetAllDamage(damageableComponent, 200); } } } diff --git a/Content.Server/Salvage/SalvageSystem.cs b/Content.Server/Salvage/SalvageSystem.cs index 34932543ae93..c769001c5df1 100644 --- a/Content.Server/Salvage/SalvageSystem.cs +++ b/Content.Server/Salvage/SalvageSystem.cs @@ -14,7 +14,12 @@ using System.Linq; using Content.Server.Chat; using Content.Server.Chat.Systems; +using Content.Server.Ghost.Components; +using Content.Server.Radio.EntitySystems; using Content.Server.Station.Systems; +using Content.Shared.Chat; +using Content.Shared.Radio; +using Robust.Shared.Network; namespace Content.Server.Salvage { @@ -26,7 +31,7 @@ public sealed class SalvageSystem : EntitySystem [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; - [Dependency] private readonly ChatSystem _chatSystem = default!; + [Dependency] private readonly RadioSystem _radioSystem = default!; private static readonly TimeSpan AttachingTime = TimeSpan.FromSeconds(30); private static readonly TimeSpan HoldTime = TimeSpan.FromMinutes(4); @@ -299,10 +304,15 @@ private bool SpawnSalvage(SalvageMagnetComponent component) Report(component.Owner, "salvage-system-announcement-arrived", ("timeLeft", HoldTime.TotalSeconds)); return true; } - private void Report(EntityUid source, string messageKey) => - _chatSystem.DispatchStationAnnouncement(source, Loc.GetString(messageKey), Loc.GetString("salvage-system-announcement-source"), colorOverride: Color.Orange, playDefaultSound: false); - private void Report(EntityUid source, string messageKey, params (string, object)[] args) => - _chatSystem.DispatchStationAnnouncement(source, Loc.GetString(messageKey, args), Loc.GetString("salvage-system-announcement-source"), colorOverride: Color.Orange, playDefaultSound: false); + + private void Report(EntityUid source, string messageKey, params (string, object)[] args) + { + if (!TryComp(source, out var radio)) return; + + var message = args.Length == 0 ? Loc.GetString(messageKey) : Loc.GetString(messageKey, args); + var channel = _prototypeManager.Index("Supply"); + _radioSystem.SpreadMessage(radio, source, message, channel); + } private void Transition(SalvageMagnetComponent magnet, TimeSpan currentTime) { diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs index a77582aafa58..ef5060bed5f6 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.EmergencyConsole.cs @@ -1,4 +1,5 @@ using System.Threading; +using Content.Server.Access.Systems; using Content.Server.Popups; using Content.Server.RoundEnd; using Content.Server.Shuttles.Components; @@ -25,6 +26,7 @@ public sealed partial class ShuttleSystem */ [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IdCardSystem _idSystem = default!; [Dependency] private readonly AccessReaderSystem _reader = default!; [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly RoundEndSystem _roundEnd = default!; @@ -133,7 +135,7 @@ private void UpdateEmergencyConsole(float frameTime) if (_consoleAccumulator <= 0f) { _launchedShuttles = true; - _chatSystem.DispatchGlobalStationAnnouncement(Loc.GetString("emergency-shuttle-left", ("transitTime", $"{_transitTime:0}"))); + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString("emergency-shuttle-left", ("transitTime", $"{_transitTime:0}"))); _roundEndCancelToken = new CancellationTokenSource(); Timer.Spawn((int) (_transitTime * 1000) + _bufferTime.Milliseconds, () => _roundEnd.EndRound(), _roundEndCancelToken.Token); @@ -154,6 +156,7 @@ private void OnEmergencyRepealAll(EntityUid uid, EmergencyShuttleConsoleComponen if (component.AuthorizedEntities.Count == 0) return; _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL ALL by {args.Session:user}"); + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString("emergency-shuttle-console-auth-revoked", ("remaining", component.AuthorizationsRequired))); component.AuthorizedEntities.Clear(); UpdateAllEmergencyConsoles(); } @@ -163,18 +166,18 @@ private void OnEmergencyRepeal(EntityUid uid, EmergencyShuttleConsoleComponent c var player = args.Session.AttachedEntity; if (player == null) return; - if (!_reader.IsAllowed(player.Value, uid)) + if (!_idSystem.TryFindIdCard(player.Value, out var idCard) || !_reader.IsAllowed(idCard.Owner, uid)) { - _popup.PopupCursor("Access denied", Filter.Entities(player.Value)); + _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), Filter.Entities(player.Value)); return; } // TODO: This is fucking bad - if (!component.AuthorizedEntities.Remove(MetaData(player.Value).EntityName)) return; + if (!component.AuthorizedEntities.Remove(MetaData(idCard.Owner).EntityName)) return; _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch REPEAL by {args.Session:user}"); var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count; - _chatSystem.DispatchGlobalStationAnnouncement(Loc.GetString("emergency-shuttle-console-auth-revoked", ("remaining", remaining))); + _chatSystem.DispatchGlobalAnnouncement(Loc.GetString("emergency-shuttle-console-auth-revoked", ("remaining", remaining))); CheckForLaunch(component); UpdateAllEmergencyConsoles(); } @@ -184,20 +187,20 @@ private void OnEmergencyAuthorize(EntityUid uid, EmergencyShuttleConsoleComponen var player = args.Session.AttachedEntity; if (player == null) return; - if (!_reader.IsAllowed(player.Value, uid)) + if (!_idSystem.TryFindIdCard(player.Value, out var idCard) || !_reader.IsAllowed(idCard.Owner, uid)) { _popup.PopupCursor(Loc.GetString("emergency-shuttle-console-denied"), Filter.Entities(player.Value)); return; } // TODO: This is fucking bad - if (!component.AuthorizedEntities.Add(MetaData(player.Value).EntityName)) return; + if (!component.AuthorizedEntities.Add(MetaData(idCard.Owner).EntityName)) return; _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle early launch AUTH by {args.Session:user}"); var remaining = component.AuthorizationsRequired - component.AuthorizedEntities.Count; if (remaining > 0) - _chatSystem.DispatchGlobalStationAnnouncement( + _chatSystem.DispatchGlobalAnnouncement( Loc.GetString("emergency-shuttle-console-auth-left", ("remaining", remaining)), playDefaultSound: false, colorOverride: DangerColor); @@ -261,7 +264,7 @@ public bool EarlyLaunch() _consoleAccumulator = MathF.Max(1f, MathF.Min(_consoleAccumulator, _authorizeTime)); EarlyLaunchAuthorized = true; RaiseLocalEvent(new EmergencyShuttleAuthorizedEvent()); - _chatSystem.DispatchGlobalStationAnnouncement( + _chatSystem.DispatchGlobalAnnouncement( Loc.GetString("emergency-shuttle-launch-time", ("consoleAccumulator", $"{_consoleAccumulator:0}")), playDefaultSound: false, colorOverride: DangerColor); diff --git a/Content.Server/Speech/Components/ScrambledAccentComponent.cs b/Content.Server/Speech/Components/ScrambledAccentComponent.cs new file mode 100644 index 000000000000..d25e048ede84 --- /dev/null +++ b/Content.Server/Speech/Components/ScrambledAccentComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.Speech.Components +{ + [RegisterComponent] + public sealed class ScrambledAccentComponent : Component + { + } +} diff --git a/Content.Server/Speech/EntitySystems/ScrambledAccentSystem.cs b/Content.Server/Speech/EntitySystems/ScrambledAccentSystem.cs new file mode 100644 index 000000000000..00e1a768f394 --- /dev/null +++ b/Content.Server/Speech/EntitySystems/ScrambledAccentSystem.cs @@ -0,0 +1,46 @@ +using System.Linq; +using System.Text.RegularExpressions; +using Content.Server.Speech.Components; +using Robust.Shared.Random; + +namespace Content.Server.Speech.EntitySystems +{ + public sealed class ScrambledAccentSystem : EntitySystem + { + [Dependency] private readonly IRobustRandom _random = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnAccent); + } + + public string Accentuate(string message) + { + var words = message.ToLower().Split(); + + if (words.Length < 2) + { + var pick = _random.Next(1, 8); + // If they try to weasel out of it by saying one word at a time we give them this. + return Loc.GetString($"accent-scrambled-words-{pick}"); + } + + //Scramble the words + var scrambled = words.OrderBy(x => _random.Next()).ToArray(); + + var msg = String.Join(" ", scrambled); + + //First letter should be capital + msg = msg[0].ToString().ToUpper() + msg.Remove(0, 1); + + //Capitalize lone i's + msg = Regex.Replace(msg, @"(?<=\ )i(?=[\ \.\?]|$)", "I"); + return msg; + } + + private void OnAccent(EntityUid uid, ScrambledAccentComponent component, AccentGetEvent args) + { + args.Message = Accentuate(args.Message); + } + } +} diff --git a/Content.Server/Station/Systems/StationSystem.cs b/Content.Server/Station/Systems/StationSystem.cs index 953c5c2c59a1..59acbfcaa2b0 100644 --- a/Content.Server/Station/Systems/StationSystem.cs +++ b/Content.Server/Station/Systems/StationSystem.cs @@ -6,8 +6,11 @@ using Content.Server.Station.Components; using Content.Shared.CCVar; using JetBrains.Annotations; +using Robust.Server.Player; +using Robust.Shared.Collections; using Robust.Shared.Configuration; using Robust.Shared.Map; +using Robust.Shared.Player; using Robust.Shared.Random; namespace Content.Server.Station.Systems; @@ -24,9 +27,11 @@ public sealed class StationSystem : EntitySystem [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly ILogManager _logManager = default!; [Dependency] private readonly IMapManager _mapManager = 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!; private ISawmill _sawmill = default!; @@ -153,12 +158,71 @@ private void OnRoundEnd(GameRunLevelChangedEvent eventArgs) #endregion Event handlers + public Filter GetInStation(EntityUid source, float range = 32f) + { + var station = GetOwningStation(source); + + if (TryComp(station, out var data)) + { + return GetInStation(data); + } + + return Filter.Empty(); + } + + /// + /// Retrieves a filter for everything in a particular station or near its member grids. + /// + public Filter GetInStation(StationDataComponent dataComponent, float range = 32f) + { + // Could also use circles if you wanted. + var bounds = new ValueList(dataComponent.Grids.Count); + var filter = Filter.Empty(); + var mapIds = new ValueList(); + var xformQuery = GetEntityQuery(); + + foreach (var gridUid in dataComponent.Grids) + { + if (!_mapManager.TryGetGrid(gridUid, out var grid) || + !xformQuery.TryGetComponent(gridUid, out var xform)) continue; + + var mapId = xform.MapID; + var position = _transform.GetWorldPosition(xform, xformQuery); + var bound = grid.LocalAABB.Enlarged(range).Translated(position); + + bounds.Add(bound); + if (!mapIds.Contains(mapId)) + { + mapIds.Add(grid.ParentMapId); + } + } + + foreach (var session in Filter.GetAllPlayers(_player)) + { + var entity = session.AttachedEntity; + if (entity == null || !xformQuery.TryGetComponent(entity, out var xform)) continue; + + var mapId = xform.MapID; + + if (!mapIds.Contains(mapId)) continue; + + var position = _transform.GetWorldPosition(xform, xformQuery); + + foreach (var bound in bounds) + { + if (!bound.Contains(position)) continue; + + filter.AddPlayer(session); + break; + } + } + + return filter; + } /// /// Generates a station name from the given config. /// - /// - /// public static string GenerateStationName(StationConfig config) { return config.NameGenerator is not null diff --git a/Content.Server/StationEvents/Events/DiseaseOutbreak.cs b/Content.Server/StationEvents/Events/DiseaseOutbreak.cs index 34685bcff2c2..f5d0ec523f9d 100644 --- a/Content.Server/StationEvents/Events/DiseaseOutbreak.cs +++ b/Content.Server/StationEvents/Events/DiseaseOutbreak.cs @@ -30,7 +30,8 @@ public sealed class DiseaseOutbreak : StationEvent "VentCough", "AMIV", "SpaceFlu", - "BirdFlew" + "BirdFlew", + "TongueTwister" }; public override string Name => "DiseaseOutbreak"; public override float Weight => WeightNormal; diff --git a/Content.Server/StationEvents/Events/GasLeak.cs b/Content.Server/StationEvents/Events/GasLeak.cs index ceef8af0906f..a6b70cfdbe74 100644 --- a/Content.Server/StationEvents/Events/GasLeak.cs +++ b/Content.Server/StationEvents/Events/GasLeak.cs @@ -115,7 +115,7 @@ public override void Update(float frameTime) _timeUntilLeak += LeakCooldown; var atmosphereSystem = _entityManager.EntitySysManager.GetEntitySystem(); - + if (!_foundTile || _targetGrid == default || _entityManager.Deleted(_targetGrid) || @@ -125,7 +125,7 @@ public override void Update(float frameTime) return; } - var environment = atmosphereSystem.GetTileMixture(_targetGrid, _targetTile, true); + var environment = atmosphereSystem.GetTileMixture(_targetGrid, null, _targetTile, true); environment?.AdjustMoles(_leakGas, LeakCooldown * _molesPerSecond); } diff --git a/Content.Server/StationEvents/Events/StationEvent.cs b/Content.Server/StationEvents/Events/StationEvent.cs index 8218c292310d..65d8a919a34a 100644 --- a/Content.Server/StationEvents/Events/StationEvent.cs +++ b/Content.Server/StationEvents/Events/StationEvent.cs @@ -148,7 +148,7 @@ public virtual void Announce() if (AnnounceEvent && StartAnnouncement != null) { var chatSystem = IoCManager.Resolve().GetEntitySystem(); - chatSystem.DispatchGlobalStationAnnouncement(StartAnnouncement, playDefaultSound: false, colorOverride: Color.Gold); + chatSystem.DispatchGlobalAnnouncement(StartAnnouncement, playDefaultSound: false, colorOverride: Color.Gold); } if (AnnounceEvent && StartAudio != null) @@ -171,7 +171,7 @@ public virtual void Shutdown() if (AnnounceEvent && EndAnnouncement != null) { var chatSystem = IoCManager.Resolve().GetEntitySystem(); - chatSystem.DispatchGlobalStationAnnouncement(EndAnnouncement, playDefaultSound: false, colorOverride: Color.Gold); + chatSystem.DispatchGlobalAnnouncement(EndAnnouncement, playDefaultSound: false, colorOverride: Color.Gold); } if (AnnounceEvent && EndAudio != null) @@ -227,7 +227,8 @@ public static bool TryFindRandomTile(out Vector2i tile, out EntityUid targetStat targetGrid = robustRandom.Pick(possibleTargets); - if (!entityManager.TryGetComponent(targetGrid, out var gridComp)) + if (!entityManager.TryGetComponent(targetGrid, out var gridComp) + || !entityManager.TryGetComponent(targetGrid, out var transform)) return false; var grid = gridComp.Grid; @@ -242,7 +243,9 @@ public static bool TryFindRandomTile(out Vector2i tile, out EntityUid targetStat var randomY = robustRandom.Next((int) gridBounds.Bottom, (int) gridBounds.Top); tile = new Vector2i(randomX - (int) gridPos.X, randomY - (int) gridPos.Y); - if (atmosphereSystem.IsTileSpace(grid, tile) || atmosphereSystem.IsTileAirBlocked(grid, tile)) continue; + if (atmosphereSystem.IsTileSpace(grid.GridEntityId, transform.MapUid, tile, mapGridComp:gridComp) + || atmosphereSystem.IsTileAirBlocked(grid.GridEntityId, tile, mapGridComp:gridComp)) + continue; found = true; targetCoords = grid.GridTileToLocal(tile); break; diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index 954f1bfdba4a..7c079f543980 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using System.Linq; using Content.Server.Administration.Logs; using Content.Server.Atmos.Components; @@ -7,11 +9,15 @@ using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.Inventory; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; namespace Content.Server.Temperature.Systems { public sealed class TemperatureSystem : EntitySystem { + [Dependency] private readonly TransformSystem _transformSystem = default!; [Dependency] private readonly DamageableSystem _damageableSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly AlertsSystem _alertsSystem = default!; @@ -94,8 +100,15 @@ public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistanc private void OnAtmosExposedUpdate(EntityUid uid, TemperatureComponent temperature, ref AtmosExposedUpdateEvent args) { + var transform = args.Transform; + + if (transform.MapUid == null) + return; + + var position = _transformSystem.GetGridOrMapTilePosition(uid, transform); + var temperatureDelta = args.GasMixture.Temperature - temperature.CurrentTemperature; - var tileHeatCapacity = _atmosphereSystem.GetTileHeatCapacity(args.Coordinates); + var tileHeatCapacity = _atmosphereSystem.GetTileHeatCapacity(transform.GridUid, transform.MapUid.Value, position); var heat = temperatureDelta * (tileHeatCapacity * temperature.HeatCapacity / (tileHeatCapacity + temperature.HeatCapacity)); ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature ); } diff --git a/Content.Server/Tools/ToolSystem.Welder.cs b/Content.Server/Tools/ToolSystem.Welder.cs index 69c387c0178d..108d6d11ed5b 100644 --- a/Content.Server/Tools/ToolSystem.Welder.cs +++ b/Content.Server/Tools/ToolSystem.Welder.cs @@ -78,9 +78,10 @@ public bool TryTurnWelderOn(EntityUid uid, EntityUid? user, SolutionContainerManagerComponent? solutionContainer = null, SharedItemComponent? item = null, PointLightComponent? light = null, - AppearanceComponent? appearance = null) + AppearanceComponent? appearance = null, + TransformComponent? transform = null) { - if (!Resolve(uid, ref welder, ref solutionContainer)) + if (!Resolve(uid, ref welder, ref solutionContainer, ref transform)) return false; // Optional components. @@ -113,8 +114,11 @@ public bool TryTurnWelderOn(EntityUid uid, EntityUid? user, SoundSystem.Play(welder.WelderOnSounds.GetSound(), Filter.Pvs(uid), uid, AudioHelpers.WithVariation(0.125f).WithVolume(-5f)); - // TODO: Use TransformComponent directly. - _atmosphereSystem.HotspotExpose(EntityManager.GetComponent(welder.Owner).Coordinates, 700, 50, true); + if (transform.GridUid is {} gridUid) + { + var position = _transformSystem.GetGridOrMapTilePosition(uid, transform); + _atmosphereSystem.HotspotExpose(gridUid, position, 700, 50, true); + } welder.Dirty(); @@ -300,17 +304,22 @@ private void UpdateWelders(float frameTime) if (_welderTimer < WelderUpdateTimer) return; + // TODO Use an "active welder" component instead, EntityQuery over that. foreach (var tool in _activeWelders.ToArray()) { if (!EntityManager.TryGetComponent(tool, out WelderComponent? welder) - || !EntityManager.TryGetComponent(tool, out SolutionContainerManagerComponent? solutionContainer)) + || !EntityManager.TryGetComponent(tool, out SolutionContainerManagerComponent? solutionContainer) + || !EntityManager.TryGetComponent(tool, out TransformComponent? transform)) continue; if (!_solutionContainerSystem.TryGetSolution(tool, welder.FuelSolution, out var solution, solutionContainer)) continue; - // TODO: Use TransformComponent directly. - _atmosphereSystem.HotspotExpose(EntityManager.GetComponent(welder.Owner).Coordinates, 700, 50, true); + if (transform.GridUid is { } gridUid) + { + var position = _transformSystem.GetGridOrMapTilePosition(tool, transform); + _atmosphereSystem.HotspotExpose(gridUid, position, 700, 50, true); + } solution.RemoveReagent(welder.FuelReagent, welder.FuelConsumption * _welderTimer); diff --git a/Content.Server/Tools/ToolSystem.cs b/Content.Server/Tools/ToolSystem.cs index 7ea23d166a6a..63026980506d 100644 --- a/Content.Server/Tools/ToolSystem.cs +++ b/Content.Server/Tools/ToolSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Popups; using Content.Shared.Audio; using Content.Shared.Tools.Components; +using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Map; using Robust.Shared.Player; @@ -23,6 +24,7 @@ public sealed partial class ToolSystem : EntitySystem [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() diff --git a/Content.Server/UserInterface/IntrinsicUIComponent.cs b/Content.Server/UserInterface/IntrinsicUIComponent.cs index b5c247652f03..d003381a35e3 100644 --- a/Content.Server/UserInterface/IntrinsicUIComponent.cs +++ b/Content.Server/UserInterface/IntrinsicUIComponent.cs @@ -15,9 +15,11 @@ public sealed class IntrinsicUIComponent : Component, ISerializationHooks void ISerializationHooks.AfterDeserialization() { - foreach (var ui in UIs) + for (var i = 0; i < UIs.Count; i++) { + var ui = UIs[i]; ui.AfterDeserialization(); + UIs[i] = ui; } } } diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs index 551911056d02..5ac8c7602660 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/GasArtifactSystem.cs @@ -40,7 +40,7 @@ private void OnActivate(EntityUid uid, GasArtifactComponent component, ArtifactA var transform = Transform(uid); - var environment = _atmosphereSystem.GetTileMixture(transform.Coordinates, true); + var environment = _atmosphereSystem.GetContainingMixture(uid, false, true); if (environment == null) return; diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs index 5a2a71124a57..f124ad1caad8 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/TemperatureArtifactSystem.cs @@ -2,12 +2,14 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Components; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Robust.Server.GameObjects; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Effects.Systems; public sealed class TemperatureArtifactSystem : EntitySystem { [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -19,14 +21,16 @@ private void OnActivate(EntityUid uid, TemperatureArtifactComponent component, A { var transform = Transform(uid); - var center = _atmosphereSystem.GetTileMixture(transform.Coordinates, true); + var center = _atmosphereSystem.GetContainingMixture(uid, false, true); if (center == null) return; UpdateTileTemperature(component, center); - if (component.EffectAdjacentTiles) + if (component.EffectAdjacentTiles && transform.GridUid != null) { - var adjacent = _atmosphereSystem.GetAdjacentTileMixtures(transform.Coordinates, invalidate: true); + var adjacent = _atmosphereSystem.GetAdjacentTileMixtures(transform.GridUid.Value, + _transformSystem.GetGridOrMapTilePosition(uid, transform), excite: true); + foreach (var mixture in adjacent) { UpdateTileTemperature(component, mixture); diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactGasTriggerSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactGasTriggerSystem.cs index 3cd16bb50378..b773c71beac6 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactGasTriggerSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactGasTriggerSystem.cs @@ -1,6 +1,7 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; using Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Components; +using Robust.Server.GameObjects; using Robust.Shared.Random; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; @@ -10,6 +11,7 @@ public sealed class ArtifactGasTriggerSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly ArtifactSystem _artifactSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -32,10 +34,14 @@ public override void Update(float frameTime) var query = EntityManager.EntityQuery(); foreach (var (trigger, transform) in query) { + var uid = trigger.Owner; + if (trigger.ActivationGas == null) continue; - var environment = _atmosphereSystem.GetTileMixture(transform.Coordinates); + var environment = _atmosphereSystem.GetTileMixture(transform.GridUid, transform.MapUid, + _transformSystem.GetGridOrMapTilePosition(uid, transform)); + if (environment == null) continue; diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactHeatTriggerSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactHeatTriggerSystem.cs index 0e3d3d65ce2d..ff486deaded8 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactHeatTriggerSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Triggers/Systems/ArtifactHeatTriggerSystem.cs @@ -3,6 +3,7 @@ using Content.Shared.Interaction; using Content.Shared.Temperature; using Content.Shared.Weapons.Melee; +using Robust.Server.GameObjects; namespace Content.Server.Xenoarchaeology.XenoArtifacts.Triggers.Systems; @@ -10,6 +11,7 @@ public sealed class ArtifactHeatTriggerSystem : EntitySystem { [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly ArtifactSystem _artifactSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; public override void Initialize() { @@ -25,7 +27,9 @@ public override void Update(float frameTime) var query = EntityManager.EntityQuery(); foreach (var (trigger, transform, artifact) in query) { - var environment = _atmosphereSystem.GetTileMixture(transform.Coordinates); + var uid = trigger.Owner; + var environment = _atmosphereSystem.GetTileMixture(transform.GridUid, transform.MapUid, + _transformSystem.GetGridOrMapTilePosition(uid, transform)); if (environment == null) continue; diff --git a/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs b/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs index 21394f7ab590..4abdc2131f0a 100644 --- a/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs +++ b/Content.Shared/Atmos/EntitySystems/SharedAtmosDebugOverlaySystem.cs @@ -16,10 +16,11 @@ public readonly struct AtmosDebugOverlayData public readonly float[] Moles; public readonly AtmosDirection PressureDirection; public readonly AtmosDirection LastPressureDirection; - public readonly bool InExcitedGroup; + public readonly int InExcitedGroup; public readonly AtmosDirection BlockDirection; + public readonly bool IsSpace; - public AtmosDebugOverlayData(float temperature, float[] moles, AtmosDirection pressureDirection, AtmosDirection lastPressureDirection, bool inExcited, AtmosDirection blockDirection) + public AtmosDebugOverlayData(float temperature, float[] moles, AtmosDirection pressureDirection, AtmosDirection lastPressureDirection, int inExcited, AtmosDirection blockDirection, bool isSpace) { Temperature = temperature; Moles = moles; @@ -27,6 +28,7 @@ public AtmosDebugOverlayData(float temperature, float[] moles, AtmosDirection pr LastPressureDirection = lastPressureDirection; InExcitedGroup = inExcited; BlockDirection = blockDirection; + IsSpace = isSpace; } } diff --git a/Content.Shared/Audio/SharedAdminSoundSystem.cs b/Content.Shared/Audio/SharedAdminSoundSystem.cs deleted file mode 100644 index f26558e6904f..000000000000 --- a/Content.Shared/Audio/SharedAdminSoundSystem.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Robust.Shared.Audio; -using Robust.Shared.Serialization; - -namespace Content.Shared.Audio; - - -public abstract class SharedAdminSoundSystem : EntitySystem -{ -} - -[Serializable, NetSerializable] -public sealed class AdminSoundEvent : EntityEventArgs -{ - public string Filename; - public AudioParams? AudioParams; - public AdminSoundEvent(string filename, AudioParams? audioParams = null) - { - Filename = filename; - AudioParams = audioParams; - } -} diff --git a/Content.Shared/Audio/SharedGlobalSoundSystem.cs b/Content.Shared/Audio/SharedGlobalSoundSystem.cs new file mode 100644 index 000000000000..7ad07c21aa15 --- /dev/null +++ b/Content.Shared/Audio/SharedGlobalSoundSystem.cs @@ -0,0 +1,76 @@ +using Content.Shared.CCVar; +using Robust.Shared.Audio; +using Robust.Shared.Serialization; +namespace Content.Shared.Audio; + +/// +/// Handles playing audio to all players globally unless disabled by cvar. Some events are grid-specific. +/// +public abstract class SharedGlobalSoundSystem : EntitySystem +{ +} + +[Virtual] +[Serializable, NetSerializable] +public class GlobalSoundEvent : EntityEventArgs +{ + public string Filename; + public AudioParams? AudioParams; + public GlobalSoundEvent(string filename, AudioParams? audioParams = null) + { + Filename = filename; + AudioParams = audioParams; + } +} + +/// +/// Intended for admin music. Can be disabled by the cvar. +/// +[Serializable, NetSerializable] +public sealed class AdminSoundEvent : GlobalSoundEvent +{ + public AdminSoundEvent(string filename, AudioParams? audioParams = null) : base(filename, audioParams){} +} + +/// +/// Intended for misc sound effects. Can't be disabled by cvar. +/// +[Serializable, NetSerializable] +public sealed class GameGlobalSoundEvent : GlobalSoundEvent +{ + public GameGlobalSoundEvent(string filename, AudioParams? audioParams = null) : base(filename, audioParams){} +} + +public enum StationEventMusicType : byte +{ + Nuke +} + +/// +/// Intended for music triggered by events on a specific station. Can be disabled by the cvar. +/// +[Serializable, NetSerializable] +public sealed class StationEventMusicEvent : GlobalSoundEvent +{ + public StationEventMusicType Type; + + public StationEventMusicEvent(string filename, StationEventMusicType type, AudioParams? audioParams = null) : base( + filename, audioParams) + { + Type = type; + } +} + +/// +/// Attempts to stop a playing stream. +/// +[Serializable, NetSerializable] +public sealed class StopStationEventMusic : EntityEventArgs +{ + public StationEventMusicType Type; + + public StopStationEventMusic(StationEventMusicType type) + { + Type = type; + } +} diff --git a/Content.Shared/Blocking/BlockingSystem.cs b/Content.Shared/Blocking/BlockingSystem.cs new file mode 100644 index 000000000000..813fbdf306bd --- /dev/null +++ b/Content.Shared/Blocking/BlockingSystem.cs @@ -0,0 +1,194 @@ +using Content.Shared.Actions; +using Content.Shared.Actions.ActionTypes; +using Content.Shared.Hands; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Physics; +using Content.Shared.Popups; +using Content.Shared.Toggleable; +using Robust.Shared.Physics; +using Robust.Shared.Physics.Dynamics; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Blocking; + +public sealed class BlockingSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly FixtureSystem _fixtureSystem = default!; + [Dependency] private readonly SharedHandsSystem _handsSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnEquip); + SubscribeLocalEvent(OnUnequip); + + SubscribeLocalEvent(OnGetActions); + SubscribeLocalEvent(OnToggleAction); + + SubscribeLocalEvent(OnShutdown); + } + + private void OnEquip(EntityUid uid, BlockingComponent component, GotEquippedHandEvent args) + { + component.User = args.User; + + //To make sure that this bodytype doesn't get set as anything but the original + if (TryComp(args.User, out var physicsComponent) && physicsComponent.BodyType != BodyType.Static + && !TryComp(args.User, out var blockingUserComponent)) + { + var userComp = EnsureComp(args.User); + userComp.BlockingItem = uid; + userComp.OriginalBodyType = physicsComponent.BodyType; + } + } + + private void OnUnequip(EntityUid uid, BlockingComponent component, GotUnequippedHandEvent args) + { + BlockingShutdownHelper(uid, component, args.User); + } + + private void OnGetActions(EntityUid uid, BlockingComponent component, GetItemActionsEvent args) + { + if (component.BlockingToggleAction == null + && _proto.TryIndex(component.BlockingToggleActionId, out InstantActionPrototype? act)) + { + component.BlockingToggleAction = new(act); + } + + if (component.BlockingToggleAction != null) + args.Actions.Add(component.BlockingToggleAction); + } + + private void OnToggleAction(EntityUid uid, BlockingComponent component, ToggleActionEvent args) + { + if(args.Handled) + return; + + if (component.IsBlocking) + StopBlocking(uid, component, args.Performer); + else + StartBlocking(uid, component, args.Performer); + + args.Handled = true; + } + + private void OnShutdown(EntityUid uid, BlockingComponent component, ComponentShutdown args) + { + //In theory the user should not be null when this fires off + if (component.User != null) + { + _actionsSystem.RemoveProvidedActions(component.User.Value, uid); + BlockingShutdownHelper(uid, component, component.User.Value); + } + } + + /// + /// Called where you want the user to start blocking + /// Creates a new hard fixture to bodyblock + /// Also makes the user static to prevent prediction issues + /// + /// The entity with the blocking component + /// The + /// The entity who's using the item to block + /// + public bool StartBlocking(EntityUid item, BlockingComponent component, EntityUid user) + { + if (component.IsBlocking) return false; + + var xform = Transform(user); + + var shieldName = Name(item); + + var msgUser = Loc.GetString("action-popup-blocking-user", ("shield", shieldName)); + var msgOther = Loc.GetString("action-popup-blocking-other", ("blockerName", Name(user)), ("shield", shieldName)); + + if (component.BlockingToggleAction != null) + { + _transformSystem.AnchorEntity(xform); + if (!xform.Anchored) + { + var msgError = Loc.GetString("action-popup-blocking-user-cant-block"); + _popupSystem.PopupEntity(msgError, user, Filter.Entities(user)); + return false; + } + _actionsSystem.SetToggled(component.BlockingToggleAction, true); + _popupSystem.PopupEntity(msgUser, user, Filter.Entities(user)); + _popupSystem.PopupEntity(msgOther, user, Filter.Pvs(user).RemoveWhereAttachedEntity(e => e == user)); + } + + if (TryComp(user, out var physicsComponent)) + { + var fixture = new Fixture(physicsComponent, component.Shape) + { + ID = BlockingComponent.BlockFixtureID, + Hard = true, + CollisionLayer = (int) CollisionGroup.WallLayer + }; + + _fixtureSystem.TryCreateFixture(physicsComponent, fixture); + } + + component.IsBlocking = true; + + return true; + } + + /// + /// Called where you want the user to stop blocking. + /// + /// The entity with the blocking component + /// The + /// The entity who's using the item to block + /// + public bool StopBlocking(EntityUid item, BlockingComponent component, EntityUid user) + { + if (!component.IsBlocking) return false; + + var xform = Transform(user); + + var shieldName = Name(item); + + var msgUser = Loc.GetString("action-popup-blocking-disabling-user", ("shield", shieldName)); + var msgOther = Loc.GetString("action-popup-blocking-disabling-other", ("blockerName", Name(user)), ("shield", shieldName)); + + //If the component blocking toggle isn't null, grab the users SharedBlockingUserComponent and PhysicsComponent + //then toggle the action to false, unanchor the user, remove the hard fixture + //and set the users bodytype back to their original type + if (component.BlockingToggleAction != null && TryComp(user, out var blockingUserComponent) + && TryComp(user, out var physicsComponent)) + { + _transformSystem.Unanchor(xform); + _actionsSystem.SetToggled(component.BlockingToggleAction, false); + _fixtureSystem.DestroyFixture(physicsComponent, BlockingComponent.BlockFixtureID); + physicsComponent.BodyType = blockingUserComponent.OriginalBodyType; + _popupSystem.PopupEntity(msgUser, user, Filter.Entities(user)); + _popupSystem.PopupEntity(msgOther, user, Filter.Pvs(user).RemoveWhereAttachedEntity(e => e == user)); + } + + component.IsBlocking = false; + + return true; + } + + /// + /// Called where you want someone to stop blocking and to remove the from them + /// + /// The item the component is attached to + /// The + /// The person holding the blocking item + private void BlockingShutdownHelper(EntityUid uid, BlockingComponent component, EntityUid user) + { + if (component.IsBlocking) + StopBlocking(uid, component, user); + + RemComp(user); + component.User = null; + } + +} diff --git a/Content.Shared/Blocking/BlockingUserSystem.cs b/Content.Shared/Blocking/BlockingUserSystem.cs new file mode 100644 index 000000000000..a14d42c293f2 --- /dev/null +++ b/Content.Shared/Blocking/BlockingUserSystem.cs @@ -0,0 +1,60 @@ +using Content.Shared.Audio; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Hands.EntitySystems; +using Robust.Shared.Audio; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Blocking; + +public sealed class BlockingUserSystem : EntitySystem +{ + [Dependency] private readonly SharedHandsSystem _handsSystem = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly BlockingSystem _blockingSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDamageChanged); + SubscribeLocalEvent(OnUserDamageModified); + + SubscribeLocalEvent(OnAnchorChanged); + } + + private void OnAnchorChanged(EntityUid uid, BlockingUserComponent component, ref AnchorStateChangedEvent args) + { + if (!args.Anchored) + return; + + if (TryComp(component.BlockingItem, out var blockComp) && blockComp.IsBlocking) + { + _blockingSystem.StopBlocking(component.BlockingItem.Value, blockComp, uid); + } + } + + private void OnDamageChanged(EntityUid uid, BlockingUserComponent component, DamageChangedEvent args) + { + if (component.BlockingItem != null) + { + RaiseLocalEvent(component.BlockingItem.Value, args); + } + } + + private void OnUserDamageModified(EntityUid uid, BlockingUserComponent component, DamageModifyEvent args) + { + if (TryComp(component.BlockingItem, out var blockingComponent)) + { + if (_proto.TryIndex(blockingComponent.PassiveBlockDamageModifer, out DamageModifierSetPrototype? passiveblockModifier) && !blockingComponent.IsBlocking) + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, passiveblockModifier); + + if (_proto.TryIndex(blockingComponent.ActiveBlockDamageModifier, out DamageModifierSetPrototype? activeBlockModifier) && blockingComponent.IsBlocking) + { + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, activeBlockModifier); + SoundSystem.Play(blockingComponent.BlockSound.GetSound(), Filter.Pvs(component.Owner, entityManager: EntityManager), component.Owner, AudioHelpers.WithVariation(0.2f)); + } + } + } +} diff --git a/Content.Shared/Blocking/Components/BlockingComponent.cs b/Content.Shared/Blocking/Components/BlockingComponent.cs new file mode 100644 index 000000000000..abdd032a3caa --- /dev/null +++ b/Content.Shared/Blocking/Components/BlockingComponent.cs @@ -0,0 +1,64 @@ +using Content.Shared.Actions.ActionTypes; +using Content.Shared.Sound; +using Robust.Shared.Physics.Collision.Shapes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Blocking; + +/// +/// This component goes on an item that you want to use to block +/// +[RegisterComponent] +public sealed class BlockingComponent : Component +{ + /// + /// The entity that's blocking + /// + [ViewVariables] + public EntityUid? User; + + /// + /// Is it currently blocking? + /// + [ViewVariables] + public bool IsBlocking; + + /// + /// The ID for the fixture that's dynamically created when blocking + /// + public const string BlockFixtureID = "blocking-active"; + + /// + /// The shape of the blocking fixture that will be dynamically spawned + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("shape")] + public IPhysShape Shape = new PhysShapeCircle {Radius = 0.5F}; + + /// + /// The damage modifer to use while passively blocking + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("passiveBlockModifier")] + public string PassiveBlockDamageModifer = "Metallic"; + + /// + /// The damage modifier to use while actively blocking. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("activeBlockModifier")] + public string ActiveBlockDamageModifier = "Metallic"; + + [DataField("blockingToggleActionId", customTypeSerializer:typeof(PrototypeIdSerializer))] + public string BlockingToggleActionId = "ToggleBlock"; + + [DataField("blockingToggleAction")] + public InstantAction? BlockingToggleAction; + + /// + /// The sound to be played when you get hit while actively blocking + /// + [ViewVariables] + [DataField("blockSound")] + public SoundSpecifier BlockSound = new SoundPathSpecifier("/Audio/Weapons/block_metal1.ogg"); +} diff --git a/Content.Shared/Blocking/Components/BlockingUserComponent.cs b/Content.Shared/Blocking/Components/BlockingUserComponent.cs new file mode 100644 index 000000000000..6292d7b9c339 --- /dev/null +++ b/Content.Shared/Blocking/Components/BlockingUserComponent.cs @@ -0,0 +1,31 @@ +using Content.Shared.Damage; +using Robust.Shared.Physics; + +namespace Content.Shared.Blocking; + +/// +/// This component gets dynamically added to an Entity via the +/// +[RegisterComponent] +public sealed class BlockingUserComponent : Component +{ + /// + /// The entity that's being used to block + /// + [ViewVariables] + [DataField("blockingItem")] + public EntityUid? BlockingItem; + + [ViewVariables] + [DataField("modifiers")] + public DamageModifierSet Modifiers = default!; + + /// + /// Stores the entities original bodytype + /// Used so that it can be put back to what it was after anchoring + /// + [ViewVariables] + [DataField("originalBodyType")] + public BodyType OriginalBodyType; + +} diff --git a/Content.Shared/Body/Components/SharedBodyComponent.cs b/Content.Shared/Body/Components/SharedBodyComponent.cs index 76cf0ca4c21b..ca1c2ed81fc3 100644 --- a/Content.Shared/Body/Components/SharedBodyComponent.cs +++ b/Content.Shared/Body/Components/SharedBodyComponent.cs @@ -390,9 +390,16 @@ public override void HandleComponentState(ComponentState? curState, ComponentSta public virtual HashSet Gib(bool gibParts = false) { + var entMgr = IoCManager.Resolve(); + var metaQuery = entMgr.GetEntityQuery(); var gibs = new HashSet(); foreach (var part in SlotParts.Keys) { + if (!metaQuery.HasComponent(part.Owner)) + { + SlotParts.Remove(part); + continue; + } gibs.Add(part.Owner); RemovePart(part); diff --git a/Content.Shared/Body/Components/SharedBodyPartComponent.cs b/Content.Shared/Body/Components/SharedBodyPartComponent.cs index 875ffe41790e..6d8e3608580a 100644 --- a/Content.Shared/Body/Components/SharedBodyPartComponent.cs +++ b/Content.Shared/Body/Components/SharedBodyPartComponent.cs @@ -255,8 +255,9 @@ public bool DeleteMechanism(MechanismComponent mechanism) private void AddedToBody(SharedBodyComponent body) { - _entMan.GetComponent(Owner).LocalRotation = 0; - _entMan.GetComponent(Owner).AttachParent(body.Owner); + var transformComponent = _entMan.GetComponent(Owner); + transformComponent.LocalRotation = 0; + transformComponent.AttachParent(body.Owner); OnAddedToBody(body); foreach (var mechanism in _mechanisms) @@ -267,9 +268,9 @@ private void AddedToBody(SharedBodyComponent body) private void RemovedFromBody(SharedBodyComponent old) { - if (!_entMan.GetComponent(Owner).Deleted) + if (_entMan.TryGetComponent(Owner, out var transformComponent)) { - _entMan.GetComponent(Owner).AttachToGridOrMap(); + transformComponent.AttachToGridOrMap(); } OnRemovedFromBody(old); diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index be9897595108..68724b75d526 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -463,18 +463,21 @@ public static readonly CVarDef CVarDef.Create("physics.mob_pushing", false, CVar.REPLICATED); /* - * Lobby music + * Music */ public static readonly CVarDef LobbyMusicEnabled = - CVarDef.Create("ambience.lobbymusicenabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + CVarDef.Create("ambience.lobby_music_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + + public static readonly CVarDef EventMusicEnabled = + CVarDef.Create("ambience.event_music_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); /* * Admin sounds */ public static readonly CVarDef AdminSoundsEnabled = - CVarDef.Create("audio.adminsoundsenabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); + CVarDef.Create("audio.admin_sounds_enabled", true, CVar.ARCHIVE | CVar.CLIENTONLY); /* * HUD @@ -568,7 +571,7 @@ public static readonly CVarDef /// Actual area may be larger, as it currently doesn't terminate mid neighbor finding. I.e., area may be that of a ~51 tile radius circle instead. /// public static readonly CVarDef ExplosionMaxArea = - CVarDef.Create("explosion.max_area", (int) 3.14f * 50 * 50, CVar.SERVERONLY); + CVarDef.Create("explosion.max_area", (int) 3.14f * 256 * 256, CVar.SERVERONLY); /// /// Upper limit on the number of neighbor finding steps for the explosion system neighbor-finding algorithm. @@ -578,7 +581,7 @@ public static readonly CVarDef /// instances, will likely be hit before this becomes a limiting factor. /// public static readonly CVarDef ExplosionMaxIterations = - CVarDef.Create("explosion.max_iterations", 150, CVar.SERVERONLY); + CVarDef.Create("explosion.max_iterations", 500, CVar.SERVERONLY); /// /// Max Time in milliseconds to spend processing explosions every tick. @@ -858,7 +861,7 @@ public static readonly CVarDef /// public static readonly CVarDef VoteRestartNotAllowedWhenAdminOnline = CVarDef.Create("vote.restart_not_allowed_when_admin_online", true, CVar.SERVERONLY); - + /// /// The delay which two votes of the same type are allowed to be made by separate people, in seconds. /// @@ -945,7 +948,7 @@ public static readonly CVarDef /// How long after the console is authorized for the shuttle to early launch. /// public static readonly CVarDef EmergencyShuttleTransitTime = - CVarDef.Create("shuttle.emergency_transit_time", 120f, CVar.SERVERONLY); + CVarDef.Create("shuttle.emergency_transit_time", 60f, CVar.SERVERONLY); /// /// Whether the emergency shuttle is enabled or should the round just end. diff --git a/Resources/Audio/Machines/Nuke/general_beep.ogg b/Resources/Audio/Machines/Nuke/general_beep.ogg index c149eb300a0c..a8d2e34b49e9 100644 Binary files a/Resources/Audio/Machines/Nuke/general_beep.ogg and b/Resources/Audio/Machines/Nuke/general_beep.ogg differ diff --git a/Resources/Audio/StationEvents/attribution.txt b/Resources/Audio/StationEvents/attribution.txt new file mode 100644 index 000000000000..84a99426d3b3 --- /dev/null +++ b/Resources/Audio/StationEvents/attribution.txt @@ -0,0 +1 @@ +countdown.ogg is created by qwertyquerty and licensed under CC-BY-SA-3.0. It is taken from https://github.com/BeeStation/BeeStation-Hornet at commit 79b8cc23cfb347cf23ea70fc5f6f39afedf9cde7. diff --git a/Resources/Audio/StationEvents/countdown.ogg b/Resources/Audio/StationEvents/countdown.ogg new file mode 100644 index 000000000000..bd34212158c2 Binary files /dev/null and b/Resources/Audio/StationEvents/countdown.ogg differ diff --git a/Resources/Audio/Weapons/block_metal1.ogg b/Resources/Audio/Weapons/block_metal1.ogg new file mode 100644 index 000000000000..c0f98249cd3b Binary files /dev/null and b/Resources/Audio/Weapons/block_metal1.ogg differ diff --git a/Resources/Audio/Weapons/licenses.txt b/Resources/Audio/Weapons/licenses.txt index 747730fba51e..1dd99f9e2bd6 100644 --- a/Resources/Audio/Weapons/licenses.txt +++ b/Resources/Audio/Weapons/licenses.txt @@ -4,4 +4,6 @@ grille_hit.ogg taken from https://github.com/tgstation/tgstation/blob/803ca4537d slash.ogg taken from https://github.com/tgstation/tgstation/blob/5d264fbea0124e5af511af3fed24203e196d108b/sound/weapons/slash.ogg under CC BY-SA 3.0 -tap.ogg taken from https://github.com/tgstation/tgstation/blob/803ca4537df35cf252b056d8460d510be8a4f353/sound/weapons/tap.ogg under CC BY-SA 3.0 \ No newline at end of file +tap.ogg taken from https://github.com/tgstation/tgstation/blob/803ca4537df35cf252b056d8460d510be8a4f353/sound/weapons/tap.ogg under CC BY-SA 3.0 + +block_metal1.ogg taken from https://github.com/Citadel-Station-13/Citadel-Station-13/commit/31c5996a5db8cce0cb431cb1dc20d99cac83f268 under CC BY-SA 3.0 \ No newline at end of file diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index e02c3376bb38..774ef48257a3 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,113 +1,4 @@ Entries: -- author: 20kdc - changes: - - {message: You should be less likely to be phased through walls., type: Fix} - - {message: When pushed by high pressure differences ("space wind") you should be - pushed in the direction of the pressure difference again., type: Fix} - id: 1357 - time: '2022-04-18T14:42:32.0000000+00:00' -- author: EmoGarbage404 - changes: - - {message: 'Nanotrasen has reported sightings of corpses prowljng the halls, given - new life by unknown forces.', type: Add} - id: 1358 - time: '2022-04-18T22:30:22.0000000+00:00' -- author: UKNOWH - changes: - - {message: You can grind pills to test for its substance, type: Add} - id: 1359 - time: '2022-04-18T22:40:35.0000000+00:00' -- author: Mirino97 - changes: - - {message: 'Bees cannot disarm anymore, so no more bee stunning!', type: Tweak} - id: 1360 - time: '2022-04-18T22:41:07.0000000+00:00' -- author: CrzyPotato - changes: - - {message: 'Airlock Painter now has a lathe recipe and can be found in tool closets, - and tool vendors', type: Add} - id: 1361 - time: '2022-04-18T22:43:19.0000000+00:00' -- author: Mirino97 - changes: - - {message: Replaced light bulbs in fixtures will no longer remain off!, type: Fix} - id: 1362 - time: '2022-04-18T22:47:04.0000000+00:00' -- author: ShadowCommander - changes: - - {message: Firelocks and airlocks now close when there are static entities in the - way (e.g. anchored tables)., type: Fix} - id: 1363 - time: '2022-04-19T13:45:37.0000000+00:00' -- author: EmoGarbage404 - changes: - - {message: Zombie names no longer spam fill the ghost role menu and only appear - when able to be taken over., type: Fix} - - {message: Probability adjustments for zombie outbreak event., type: Tweak} - id: 1364 - time: '2022-04-20T01:54:11.0000000+00:00' -- author: UKNOWH - changes: - - {message: You can now put stuff in the chef hat, type: Add} - id: 1365 - time: '2022-04-20T05:17:03.0000000+00:00' -- author: UKNOWH - changes: - - {message: Added a Flash payload that allows players to make modular flashbangs, - type: Add} - id: 1366 - time: '2022-04-20T06:08:57.0000000+00:00' -- author: UKNOWH - changes: - - {message: mouse size changed form 0 to 5, type: Add} - id: 1367 - time: '2022-04-20T07:19:33.0000000+00:00' -- author: Emisse - changes: - - {message: 'Atlas, a low-pop ship map adapted from Goonstation (SS13). Major credit - goes to all those who worked on the original layout of Atlas on Goonstation.', - type: Add} - id: 1368 - time: '2022-04-20T21:08:43.0000000+00:00' -- author: Daemon - changes: - - {message: Added several gas mask variants, type: Add} - - {message: Tweaked Survival Boxes, type: Tweak} - - {message: Tweaked Locker Fills, type: Tweak} - id: 1369 - time: '2022-04-21T12:11:26.0000000+00:00' -- author: Peptide90 - changes: - - {message: Split Station massive update!, type: Add} - id: 1370 - time: '2022-04-21T13:19:44.0000000+00:00' -- author: Peptide90 - changes: - - {message: Added a number identifier to all mobs. Now it's easier to report rule - breaking ghost roles such as ticks and carp., type: Add} - id: 1371 - time: '2022-04-21T22:32:23.0000000+00:00' -- author: EmoGarbage404 - changes: - - {message: Grenade Penguin's explosion now does more damage., type: Tweak} - - {message: Grenade Penguin AI should be less buggy., type: Fix} - id: 1372 - time: '2022-04-21T22:32:44.0000000+00:00' -- author: Saakra - changes: - - {message: Bibles and Necronomicons can now be worn in the belt slot, type: Add} - id: 1373 - time: '2022-04-22T01:20:07.0000000+00:00' -- author: keronshb - changes: - - {message: Players can't suicide if they're already dead., type: Add} - id: 1374 - time: '2022-04-22T05:37:49.0000000+00:00' -- author: moonheart08 - changes: - - {message: You can rotate the salvage magnet and PA parts again., type: Fix} - id: 1375 - time: '2022-04-23T01:14:28.0000000+00:00' - author: moony changes: - {message: The game no longer pretends only one salvage magnet can exist at a time., @@ -2945,3 +2836,121 @@ Entries: - {message: PAI can now only hear Common radio., type: Tweak} id: 1856 time: '2022-07-03T08:36:40.0000000+00:00' +- author: metalgearsloth + changes: + - {message: Shuttle transit time reduced from 2 minutes to 1 minute., type: Tweak} + id: 1857 + time: '2022-07-04T05:14:04.0000000+00:00' +- author: jessicamaybe + changes: + - {message: 'Adds a new disease, tongue twister.', type: Add} + id: 1858 + time: '2022-07-04T05:22:30.0000000+00:00' +- author: metalgearsloth + changes: + - {message: Salvage magnet broadcasts over supply instead of announcements now., + type: Tweak} + id: 1859 + time: '2022-07-04T06:19:41.0000000+00:00' +- author: ike709 + changes: + - {message: A song now plays during the nuke countdown. It can be disabled with + the Event Music audio setting., type: Add} + id: 1860 + time: '2022-07-04T06:29:38.0000000+00:00' +- author: keronshb + changes: + - {message: Blocking has now been added! Use shields to lower incoming damage., + type: Add} + - {message: 'Riot, Laser, Ballistic, Mirror, Clockwork, Makeshift, and Buckler Shields + have been added!', type: Add} + id: 1861 + time: '2022-07-04T06:31:13.0000000+00:00' +- author: themias + changes: + - {message: No more Dine and Dash (alt clicking food and running away), type: Fix} + id: 1862 + time: '2022-07-04T06:56:31.0000000+00:00' +- author: Peptide90 + changes: + - {message: Added telescreens and a large flat screen TV., type: Add} + id: 1863 + time: '2022-07-04T07:10:30.0000000+00:00' +- author: Peptide90 + changes: + - {message: Added rusted metal walls! Use a welder to remove the rust. They're weaker + so be careful., type: Add} + id: 1864 + time: '2022-07-04T07:11:47.0000000+00:00' +- author: metalgearsloth + changes: + - {message: No more playing hot potato with ID cards to early launch the shuttle., + type: Tweak} + id: 1865 + time: '2022-07-04T13:09:10.0000000+00:00' +- author: ike709 + changes: + - {message: Players can now examine each other's ID card slots while an ID/PDA is + worn, type: Add} + id: 1866 + time: '2022-07-05T00:20:44.0000000+00:00' +- author: Rane + changes: + - {message: 'Taking blood from mobs now also takes a small amount of their chemstream, + letting you see what''s affecting them.', type: Add} + - {message: All mobs whose blood couldn't be drawn for no reason before should work + now., type: Fix} + id: 1867 + time: '2022-07-05T00:37:21.0000000+00:00' +- author: mirrorcult + changes: + - {message: Colliding with ignited mobs will now properly ignite you as well., type: Tweak} + id: 1868 + time: '2022-07-05T01:30:45.0000000+00:00' +- author: mirrorcult + changes: + - {message: The nuke music now times itself properly so as to end right before the + nuke alarm goes off., type: Tweak} + - {message: 'The nuke can no longer have its disk ejected while the nuke is armed. + This means nuclear operatives have a phase where they must defend the nuke for + the time that it''s active, until the timer hits 30 seconds and they can run.', + type: Tweak} + - {message: Disarming the nuke now has a suspenseful 30 second doafter., type: Tweak} + - {message: 'The nuke now has a much, much larger blast radius.', type: Tweak} + id: 1869 + time: '2022-07-05T06:49:19.0000000+00:00' +- author: mirrorcult + changes: + - {message: 'The nuke keypad now plays a scale (C mixolydian blues), so you can + bang out some funny tunes on it. "0" plays the last note an octave higher.', + type: Add} + id: 1870 + time: '2022-07-05T07:24:37.0000000+00:00' +- author: metalgearsloth + changes: + - {message: Cargo shuttle console now no longer needs to be facing South for controls., + type: Fix} + id: 1871 + time: '2022-07-05T13:40:30.0000000+00:00' +- author: Peptide90 + changes: + - {message: 'Security Officer, Warden and HoS now have external access.', type: Tweak} + id: 1872 + time: '2022-07-05T14:11:29.0000000+00:00' +- author: Aerocrux + changes: + - {message: Cap Guns now have visible held sprites, type: Add} + id: 1873 + time: '2022-07-05T17:09:54.0000000+00:00' +- author: BurninDreamer + changes: + - {message: Make the uplink lantern actually flash you., type: Tweak} + id: 1874 + time: '2022-07-05T18:40:19.0000000+00:00' +- author: EmoGarbage404 + changes: + - {message: The security techfab now starts with all technologies unlocked., type: Tweak} + - {message: Removed security tech tree from science., type: Remove} + - {message: Department lathes no longer print common items., type: Tweak} + id: 1875 + time: '2022-07-05T19:56:58.0000000+00:00' diff --git a/Resources/Locale/en-US/accent/scrambled.ftl b/Resources/Locale/en-US/accent/scrambled.ftl new file mode 100644 index 000000000000..e01f57474233 --- /dev/null +++ b/Resources/Locale/en-US/accent/scrambled.ftl @@ -0,0 +1,7 @@ +accent-scrambled-words-1 = Who?, +accent-scrambled-words-2 = What?, +accent-scrambled-words-3 = When?, +accent-scrambled-words-4 = Where?, +accent-scrambled-words-5 = Why!, +accent-scrambled-words-6 = How?, +accent-scrambled-words-7 = Me!, diff --git a/Resources/Locale/en-US/access/components/id-examinable-component.ftl b/Resources/Locale/en-US/access/components/id-examinable-component.ftl new file mode 100644 index 000000000000..e9ad65e357b2 --- /dev/null +++ b/Resources/Locale/en-US/access/components/id-examinable-component.ftl @@ -0,0 +1,3 @@ +id-examinable-component-verb-text = ID Card +id-examinable-component-verb-disabled = Read an ID card in close range. +id-examinable-component-verb-no-id = No ID card visible. diff --git a/Resources/Locale/en-US/actions/actions/blocking.ftl b/Resources/Locale/en-US/actions/actions/blocking.ftl new file mode 100644 index 000000000000..48bbe7d83bc1 --- /dev/null +++ b/Resources/Locale/en-US/actions/actions/blocking.ftl @@ -0,0 +1,10 @@ +action-name-blocking = Block +action-description-blocking = Raise or lower your shield. + +action-popup-blocking-user = You raise your {$shield}! +action-popup-blocking-disabling-user = You lower your {$shield}! + +action-popup-blocking-other = {$blockerName} raises their {$shield}! +action-popup-blocking-disabling-other = {$blockerName} lowers their {$shield}! + +action-popup-blocking-user-cant-block = The gravity here prevents you from blocking. diff --git a/Resources/Locale/en-US/disease/disease.ftl b/Resources/Locale/en-US/disease/disease.ftl index 674e1905fd0a..ee30b59ebfee 100644 --- a/Resources/Locale/en-US/disease/disease.ftl +++ b/Resources/Locale/en-US/disease/disease.ftl @@ -10,3 +10,4 @@ disease-eaten-inside = You feel like you're being eaten from the inside. disease-banana-compulsion = You really want to eat some bananas. disease-beat-chest-compulsion = {CAPITALIZE(THE($person))} beats {POSS-ADJ($person)} chest. disease-vomit = {CAPITALIZE(THE($person))} vomits. +disease-think = You feel like you can't think straight. 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 e768feca9dee..56fa911e9be8 100644 --- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl @@ -16,6 +16,7 @@ ui-options-midi-volume = MIDI (Instrument) Volume: ui-options-ambience-volume = Ambience volume: ui-options-ambience-max-sounds = Ambience simultaneous sounds: ui-options-lobby-music = Lobby & Round-end Music +ui-options-event-music = Event Music ui-options-admin-sounds = Play Admin Sounds ui-options-station-ambience = Station Ambience ui-options-space-ambience = Space Ambience diff --git a/Resources/Locale/en-US/nuke/nuke-component.ftl b/Resources/Locale/en-US/nuke/nuke-component.ftl index add3ede4f4d4..52fc260d08eb 100644 --- a/Resources/Locale/en-US/nuke/nuke-component.ftl +++ b/Resources/Locale/en-US/nuke/nuke-component.ftl @@ -3,6 +3,7 @@ nuke-component-announcement-sender = Nuclear Fission Explosive nuke-component-announcement-armed = Attention! The station's self-destruct mechanism has been engaged. {$time} seconds until detonation. nuke-component-announcement-unarmed = The station's self-destruct was deactivated! Have a nice day! nuke-component-announcement-send-codes = Attention! Requested self-destruction codes was sent to communication consoles. +nuke-component-doafter-warning = You start fiddling with wires and knobs in order to disarm the nuke.. This may take a while. # Nuke UI nuke-user-interface-title = Nuclear Fission Explosive diff --git a/Resources/Locale/en-US/shuttles/emergency.ftl b/Resources/Locale/en-US/shuttles/emergency.ftl index 84fb0957c0cf..b348f53a44d7 100644 --- a/Resources/Locale/en-US/shuttles/emergency.ftl +++ b/Resources/Locale/en-US/shuttles/emergency.ftl @@ -11,7 +11,7 @@ emergency-shuttle-command-dock-desc = Calls the emergency shuttle and docks it t emergency-shuttle-command-launch-desc = Early launches the emergency shuttle if possible. # Emergency shuttle -emergency-shuttle-left = The Emergency Shuttle has left the station. Estimate {$transitTime} seconds until the shuttle arives at Centcomm. +emergency-shuttle-left = The Emergency Shuttle has left the station. Estimate {$transitTime} seconds until the shuttle arrives at Centcomm. emergency-shuttle-launch-time = The emergency shuttle will launch in {$consoleAccumulator} seconds. emergency-shuttle-docked = The Emergency Shuttle has docked with the station. It will leave in {$time} seconds. emergency-shuttle-good-luck = The Emergency Shuttle is unable to find a station. Good luck. diff --git a/Resources/Maps/Shuttles/emergency_shuttle.yml b/Resources/Maps/Shuttles/emergency_shuttle.yml index ac408fa34d09..a315ac2c1445 100644 --- a/Resources/Maps/Shuttles/emergency_shuttle.yml +++ b/Resources/Maps/Shuttles/emergency_shuttle.yml @@ -1,3508 +1,3695 @@ -meta: - format: 2 - name: DemoStation - author: Space-Wizards - postmapinit: false -tilemap: - 0: space - 1: FloorArcadeBlue - 2: FloorArcadeBlue2 - 3: FloorArcadeRed - 4: FloorAsteroidIronsand1 - 5: FloorAsteroidIronsand2 - 6: FloorAsteroidIronsand3 - 7: FloorAsteroidIronsand4 - 8: FloorBoxing - 9: FloorCarpetClown - 10: FloorCarpetOffice - 11: FloorEighties - 12: FloorGrassJungle - 13: FloorGym - 14: FloorMetalDiamond - 15: FloorShuttleBlue - 16: FloorShuttleOrange - 17: FloorShuttlePurple - 18: FloorShuttleRed - 19: FloorShuttleWhite - 20: floor_asteroid_coarse_sand0 - 21: floor_asteroid_coarse_sand1 - 22: floor_asteroid_coarse_sand2 - 23: floor_asteroid_coarse_sand_dug - 24: floor_asteroid_sand - 25: floor_asteroid_tile - 26: floor_bar - 27: floor_blue - 28: floor_blue_circuit - 29: floor_clown - 30: floor_dark - 31: floor_elevator_shaft - 32: floor_freezer - 33: floor_glass - 34: floor_gold - 35: floor_grass - 36: floor_green_circuit - 37: floor_hydro - 38: floor_kitchen - 39: floor_laundry - 40: floor_lino - 41: floor_mime - 42: floor_mono - 43: floor_reinforced - 44: floor_rglass - 45: floor_rock_vault - 46: floor_showroom - 47: floor_silver - 48: floor_snow - 49: floor_steel - 50: floor_steel_dirty - 51: floor_techmaint - 52: floor_white - 53: floor_wood - 54: lattice - 55: plating -grids: -- settings: - chunksize: 16 - tilesize: 1 - chunks: - - ind: -1,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAA3AAAANwAAADMAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADEAAAAeAAAAMQAAADEAAAAeAAAAMQAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAxAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAMQAAAB4AAAAxAAAAMQAAAB4AAAAxAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAB4AAAAeAAAANwAAADcAAAA0AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAADcAAAA0AAAANAAAADQAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAADEAAAA3AAAANAAAADQAAAA0AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAANwAAADQAAAA0AAAANAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAeAAAAMQAAADcAAAA3AAAANAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA3AAAAMQAAADEAAAAeAAAAHgAAAB4AAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAADEAAAAxAAAAHgAAAB4AAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - ind: -1,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAANwAAADMAAAAzAAAAKwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAeAAAAMQAAADcAAAAzAAAAMwAAACsAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADEAAAA3AAAAMwAAADMAAAA3AAAANwAAAA== - - ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - ind: 0,0 - tiles: HgAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAxAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAMQAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAADEAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAANwAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== -entities: -- uid: 0 - components: - - pos: 2.2710133,-2.4148211 - parent: null - type: Transform - - index: 0 - type: MapGrid - - angularDamping: 100 - linearDamping: 50 - fixedRotation: False - bodyType: Dynamic - type: Physics - - fixtures: [] - type: Fixtures - - gravityShakeSound: !type:SoundPathSpecifier - path: /Audio/Effects/alert.ogg - type: Gravity - - chunkCollection: - -1,0: - 0: - color: '#52B4E996' - id: FullTileOverlayGreyscale - coordinates: -3,5 - 1: - color: '#52B4E996' - id: FullTileOverlayGreyscale - coordinates: -3,6 - 2: - color: '#52B4E996' - id: FullTileOverlayGreyscale - coordinates: -3,7 - 3: - color: '#52B4E996' - id: FullTileOverlayGreyscale - coordinates: -2,6 - 4: - color: '#52B4E996' - id: FullTileOverlayGreyscale - coordinates: -4,6 - 5: - color: '#334E6DC8' - id: FullTileOverlayGreyscale - coordinates: -3,10 - 11: - color: '#FFFFFFFF' - id: Bot - coordinates: -1,1 - 12: - color: '#FFFFFFFF' - id: Bot - coordinates: -2,1 - 13: - color: '#FFFFFFFF' - id: Bot - coordinates: -1,3 - 14: - color: '#FFFFFFFF' - id: Bot - coordinates: -2,3 - 15: - color: '#FFFFFFFF' - id: Bot - coordinates: -4,3 - 16: - color: '#FFFFFFFF' - id: Bot - coordinates: -5,3 - 17: - color: '#FFFFFFFF' - id: Bot - coordinates: -5,1 - 18: - color: '#FFFFFFFF' - id: Bot - coordinates: -4,1 - 21: - color: '#FFFFFFFF' - id: Bot - coordinates: -7,1 - 22: - color: '#FFFFFFFF' - id: Bot - coordinates: -7,2 - 23: - color: '#FFFFFFFF' - id: Bot - coordinates: -7,3 - 24: - color: '#FFFFFFFF' - id: Bot - coordinates: -6,5 - 25: - color: '#FFFFFFFF' - id: Bot - coordinates: -6,6 - 26: - color: '#FFFFFFFF' - id: Bot - coordinates: -6,7 - 30: - color: '#FFFFFFFF' - id: Bot - coordinates: -1,11 - 31: - color: '#FFFFFFFF' - id: Bot - coordinates: -1,12 - 32: - color: '#FFFFFFFF' - id: Bot - coordinates: -5,12 - 33: - color: '#FFFFFFFF' - id: Bot - coordinates: -5,11 - 34: - color: '#FFFFFFFF' - id: Bot - coordinates: -3,12 - 35: - color: '#FFFFFFFF' - id: Arrows - coordinates: -3,11 - 36: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale180 - coordinates: -4,11 - 37: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale180 - coordinates: -2,11 - 38: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale90 - coordinates: -4,9 - 39: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale90 - coordinates: -5,9 - 40: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale90 - coordinates: -6,9 - 41: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale - coordinates: -2,9 - 42: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale - coordinates: -1,9 - 0,-1: - 6: - color: '#FFFFFFFF' - id: Bot - coordinates: 0,-2 - 7: - color: '#FFFFFFFF' - id: Bot - coordinates: 0,-1 - 0,0: - 8: - color: '#FFFFFFFF' - id: Bot - coordinates: 1,1 - 9: - color: '#FFFFFFFF' - id: Bot - coordinates: 1,2 - 10: - color: '#FFFFFFFF' - id: Bot - coordinates: 1,3 - 27: - color: '#FFFFFFFF' - id: Bot - coordinates: 0,5 - 28: - color: '#FFFFFFFF' - id: Bot - coordinates: 0,6 - 29: - color: '#FFFFFFFF' - id: Bot - coordinates: 0,7 - 43: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale - coordinates: 0,9 - -1,-1: - 19: - color: '#FFFFFFFF' - id: Bot - coordinates: -6,-2 - 20: - color: '#FFFFFFFF' - id: Bot - coordinates: -6,-1 - type: DecalGrid - - tiles: - -5,-2: 0 - -5,-1: 1 - -4,-10: 1 - -4,-4: 0 - -4,-3: 0 - -3,-11: 1 - -3,-8: 0 - -3,-7: 0 - -3,-6: 0 - -2,-11: 1 - -2,-9: 0 - -2,-8: 0 - -2,-7: 0 - -2,-6: 0 - -2,-5: 0 - -2,-4: 0 - -2,-3: 0 - -2,-1: 0 - -1,-11: 1 - -1,-9: 0 - -1,-8: 0 - -1,-7: 0 - -1,-6: 0 - -1,-5: 0 - -1,-4: 0 - -1,-3: 0 - -1,-1: 0 - -5,5: 0 - -5,6: 0 - -5,7: 0 - -4,1: 0 - -4,2: 0 - -4,3: 0 - -4,7: 0 - -4,8: 0 - -4,9: 0 - -3,12: 1 - -3,13: 1 - -3,14: 0 - -2,0: 0 - -2,1: 0 - -2,2: 0 - -2,3: 0 - -2,4: 0 - -2,5: 0 - -2,7: 0 - -2,8: 0 - -2,9: 0 - -2,10: 0 - -1,0: 0 - -1,1: 0 - -1,2: 0 - -1,3: 0 - -1,4: 0 - -1,5: 0 - -1,7: 0 - -1,8: 0 - -1,9: 0 - -1,10: 0 - -1,12: 0 - -1,13: 0 - -1,14: 0 - 0,-11: 1 - 0,-9: 0 - 0,-8: 0 - 0,-7: 0 - 0,-6: 0 - 0,-5: 0 - 0,-4: 0 - 0,-3: 0 - 1,-11: 1 - 1,-9: 0 - 1,-8: 0 - 1,-7: 0 - 1,-6: 0 - 1,-5: 0 - 1,-4: 0 - 1,-3: 0 - 1,-1: 0 - 2,-11: 1 - 2,-9: 0 - 2,-8: 0 - 2,-7: 0 - 2,-6: 0 - 2,-5: 0 - 2,-4: 0 - 2,-3: 0 - 2,-1: 0 - 3,-11: 1 - 3,-9: 0 - 3,-8: 0 - 3,-7: 0 - 3,-6: 0 - 3,-5: 0 - 3,-4: 0 - 3,-3: 0 - 3,-1: 0 - 4,-11: 1 - 4,-8: 0 - 4,-7: 0 - 4,-6: 0 - 5,-10: 1 - 5,-4: 1 - 5,-3: 1 - 6,-2: 1 - 6,-1: 1 - 0,7: 0 - 0,8: 0 - 0,9: 0 - 0,10: 0 - 0,12: 0 - 0,13: 0 - 0,14: 0 - 0,15: 0 - 1,0: 0 - 1,1: 0 - 1,2: 0 - 1,3: 0 - 1,4: 0 - 1,5: 0 - 1,7: 0 - 1,8: 0 - 1,9: 0 - 1,10: 0 - 1,12: 0 - 1,13: 0 - 1,14: 0 - 1,15: 0 - 2,0: 0 - 2,1: 0 - 2,2: 0 - 2,3: 0 - 2,4: 0 - 2,5: 0 - 2,7: 0 - 2,8: 0 - 2,9: 0 - 2,10: 0 - 2,12: 0 - 2,13: 0 - 2,14: 0 - 3,0: 0 - 3,1: 0 - 3,2: 0 - 3,3: 0 - 3,4: 0 - 3,5: 0 - 3,7: 0 - 3,8: 0 - 3,9: 0 - 3,10: 0 - 4,12: 1 - 4,13: 1 - 4,14: 1 - 5,1: 0 - 5,2: 0 - 5,3: 0 - 5,7: 1 - 5,8: 1 - 5,9: 1 - 6,1: 0 - 6,2: 0 - 6,3: 0 - 6,5: 1 - 6,6: 1 - 6,7: 1 - 0,17: 1 - 1,17: 1 - 2,17: 1 - 3,16: 1 - -2,16: 1 - -1,17: 1 - -4,-9: 0 - -4,-8: 0 - -4,-7: 0 - -4,-6: 0 - -4,-5: 0 - -3,-10: 0 - -3,-9: 0 - -3,-5: 0 - -3,-4: 0 - -3,-3: 0 - -3,-2: 0 - -3,-1: 0 - -2,-10: 0 - -2,-2: 0 - -1,-10: 0 - -1,-2: 0 - -5,0: 0 - -5,1: 0 - -5,2: 0 - -5,3: 0 - -5,4: 0 - -4,0: 0 - -4,4: 0 - -3,0: 0 - -3,1: 0 - -3,2: 0 - -3,3: 0 - -3,4: 0 - -3,5: 0 - -3,6: 0 - -3,7: 0 - -3,8: 0 - -3,9: 0 - -3,10: 0 - -3,11: 0 - -2,6: 0 - -2,11: 0 - -2,12: 0 - -2,13: 0 - -2,14: 0 - -2,15: 0 - -1,6: 0 - -1,11: 0 - -1,15: 0 - 0,-10: 0 - 0,-2: 0 - 0,-1: 0 - 1,-10: 0 - 1,-2: 0 - 2,-10: 0 - 2,-2: 0 - 3,-10: 0 - 3,-2: 0 - 4,-10: 0 - 4,-9: 0 - 4,-5: 0 - 4,-4: 0 - 4,-3: 0 - 4,-2: 0 - 4,-1: 0 - 5,-9: 0 - 5,-8: 0 - 5,-7: 0 - 5,-6: 0 - 5,-5: 0 - 0,0: 0 - 0,1: 0 - 0,2: 0 - 0,3: 0 - 0,4: 0 - 0,5: 0 - 0,6: 0 - 0,11: 0 - 1,6: 0 - 1,11: 0 - 2,6: 0 - 2,11: 0 - 2,15: 0 - 3,6: 0 - 3,11: 0 - 3,12: 0 - 3,13: 0 - 3,14: 0 - 3,15: 0 - 4,0: 0 - 4,1: 0 - 4,2: 0 - 4,3: 0 - 4,4: 0 - 4,5: 0 - 4,6: 0 - 4,7: 0 - 4,8: 0 - 4,9: 0 - 4,10: 0 - 4,11: 0 - 5,0: 0 - 5,4: 0 - 6,0: 0 - 6,4: 0 - 0,16: 0 - 1,16: 0 - 2,16: 0 - -1,16: 0 - -8,0: 0 - -8,1: 0 - -8,2: 0 - -8,3: 0 - -8,4: 0 - -8,5: 0 - -8,6: 0 - -8,7: 0 - -8,8: 0 - -8,9: 0 - -8,10: 0 - -7,0: 0 - -7,1: 0 - -7,2: 0 - -7,3: 0 - -7,4: 0 - -7,5: 0 - -7,6: 0 - -7,7: 0 - -7,8: 0 - -7,9: 0 - -7,10: 0 - -7,11: 0 - -7,12: 0 - -7,13: 0 - -6,0: 0 - -6,1: 0 - -6,2: 0 - -6,3: 0 - -6,4: 0 - -6,5: 0 - -6,6: 0 - -6,7: 0 - -6,8: 0 - -6,9: 0 - -6,10: 0 - -6,11: 0 - -6,12: 0 - -6,13: 0 - -6,14: 0 - -5,8: 0 - -5,9: 0 - -5,10: 0 - -5,11: 0 - -5,12: 0 - -5,13: 0 - -5,14: 0 - -4,5: 0 - -4,6: 0 - -4,10: 0 - -4,11: 0 - -4,12: 0 - -4,13: 0 - -4,14: 0 - -8,-6: 0 - -8,-5: 0 - -8,-4: 0 - -8,-3: 0 - -8,-2: 0 - -8,-1: 0 - -7,-6: 0 - -7,-5: 0 - -7,-4: 0 - -7,-3: 0 - -7,-2: 0 - -7,-1: 0 - -6,-6: 0 - -6,-5: 0 - -6,-4: 0 - -6,-3: 0 - -6,-2: 0 - -6,-1: 0 - -5,-6: 0 - -5,-5: 0 - -5,-4: 0 - -5,-3: 0 - -4,-2: 0 - -4,-1: 0 - -8,11: 0 - -8,12: 0 - uniqueMixes: - - volume: 2500 - temperature: 293.15 - moles: - - 21.824879 - - 82.10312 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - volume: 2500 - immutable: True - moles: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - type: GridAtmosphere -- uid: 1 - type: SubstationWallBasic - components: - - pos: -4.5,-0.5 - parent: 0 - type: Transform -- uid: 2 - type: Thruster - components: - - rot: 1.5707963267948966 rad - pos: -7.5,-4.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 3 - type: WallShuttle - components: - - pos: -7.5,-3.5 - parent: 0 - type: Transform -- uid: 4 - type: AirlockGlassShuttle - components: - - rot: -1.5707963267948966 rad - pos: -7.5,7.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 5 - type: WallShuttle - components: - - pos: -7.5,-1.5 - parent: 0 - type: Transform -- uid: 6 - type: AirlockGlassShuttle - components: - - rot: -1.5707963267948966 rad - pos: -7.5,5.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 7 - type: WallShuttle - components: - - pos: -7.5,0.5 - parent: 0 - type: Transform -- uid: 8 - type: WallShuttle - components: - - pos: -4.5,0.5 - parent: 0 - type: Transform -- uid: 9 - type: WallShuttle - components: - - pos: -0.5,-1.5 - parent: 0 - type: Transform -- uid: 10 - type: WallShuttle - components: - - pos: 2.5,4.5 - parent: 0 - type: Transform -- uid: 11 - type: WallShuttle - components: - - pos: -7.5,4.5 - parent: 0 - type: Transform -- uid: 12 - type: AirlockGlassShuttle - components: - - rot: -1.5707963267948966 rad - pos: -7.5,-0.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 13 - type: WallShuttle - components: - - pos: -7.5,6.5 - parent: 0 - type: Transform -- uid: 14 - type: AirlockGlassShuttle - components: - - rot: -1.5707963267948966 rad - pos: -7.5,-2.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 15 - type: WallShuttle - components: - - pos: -7.5,8.5 - parent: 0 - type: Transform -- uid: 16 - type: WallShuttle - components: - - pos: -7.5,9.5 - parent: 0 - type: Transform -- uid: 17 - type: WallShuttle - components: - - pos: -7.5,10.5 - parent: 0 - type: Transform -- uid: 18 - type: WallShuttle - components: - - pos: -6.5,10.5 - parent: 0 - type: Transform -- uid: 19 - type: WallShuttle - components: - - pos: -6.5,11.5 - parent: 0 - type: Transform -- uid: 20 - type: WallShuttle - components: - - pos: 1.5,11.5 - parent: 0 - type: Transform -- uid: 21 - type: ReinforcedWindow - components: - - pos: -6.5,12.5 - parent: 0 - type: Transform -- uid: 22 - type: ReinforcedWindow - components: - - pos: -2.5,14.5 - parent: 0 - type: Transform -- uid: 23 - type: ReinforcedWindow - components: - - pos: -1.5,14.5 - parent: 0 - type: Transform -- uid: 24 - type: ReinforcedWindow - components: - - pos: 1.5,12.5 - parent: 0 - type: Transform -- uid: 25 - type: ReinforcedWindow - components: - - pos: 1.5,13.5 - parent: 0 - type: Transform -- uid: 26 - type: ReinforcedWindow - components: - - pos: 0.5,13.5 - parent: 0 - type: Transform -- uid: 27 - type: ReinforcedWindow - components: - - pos: 0.5,14.5 - parent: 0 - type: Transform -- uid: 28 - type: ReinforcedWindow - components: - - pos: -0.5,14.5 - parent: 0 - type: Transform -- uid: 29 - type: ReinforcedWindow - components: - - pos: -3.5,14.5 - parent: 0 - type: Transform -- uid: 30 - type: ReinforcedWindow - components: - - pos: -4.5,14.5 - parent: 0 - type: Transform -- uid: 31 - type: ReinforcedWindow - components: - - pos: -5.5,14.5 - parent: 0 - type: Transform -- uid: 32 - type: ReinforcedWindow - components: - - pos: -5.5,13.5 - parent: 0 - type: Transform -- uid: 33 - type: ReinforcedWindow - components: - - pos: -6.5,13.5 - parent: 0 - type: Transform -- uid: 34 - type: WallShuttle - components: - - pos: 1.5,10.5 - parent: 0 - type: Transform -- uid: 35 - type: WallShuttle - components: - - pos: 0.5,10.5 - parent: 0 - type: Transform -- uid: 36 - type: WallShuttle - components: - - pos: -0.5,10.5 - parent: 0 - type: Transform -- uid: 37 - type: WallShuttle - components: - - pos: -4.5,4.5 - parent: 0 - type: Transform -- uid: 38 - type: WallShuttle - components: - - pos: -4.5,-1.5 - parent: 0 - type: Transform -- uid: 39 - type: WallShuttle - components: - - pos: -4.5,10.5 - parent: 0 - type: Transform -- uid: 40 - type: WallShuttle - components: - - pos: -5.5,10.5 - parent: 0 - type: Transform -- uid: 41 - type: WallShuttle - components: - - pos: 2.5,0.5 - parent: 0 - type: Transform -- uid: 42 - type: WallShuttle - components: - - pos: -0.5,-0.5 - parent: 0 - type: Transform -- uid: 43 - type: CableApcExtension - components: - - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 44 - type: CableApcExtension - components: - - pos: 0.5,1.5 - parent: 0 - type: Transform -- uid: 45 - type: CableApcExtension - components: - - pos: -6.5,2.5 - parent: 0 - type: Transform -- uid: 46 - type: CableApcExtension - components: - - pos: 1.5,4.5 - parent: 0 - type: Transform -- uid: 47 - type: WallShuttle - components: - - pos: 2.5,10.5 - parent: 0 - type: Transform -- uid: 48 - type: WallShuttle - components: - - pos: -3.5,0.5 - parent: 0 - type: Transform -- uid: 49 - type: WallShuttle - components: - - pos: -0.5,8.5 - parent: 0 - type: Transform -- uid: 50 - type: ReinforcedWindow - components: - - pos: -4.5,5.5 - parent: 0 - type: Transform -- uid: 51 - type: WallShuttle - components: - - pos: -4.5,-5.5 - parent: 0 - type: Transform -- uid: 52 - type: WallShuttle - components: - - pos: -0.5,-3.5 - parent: 0 - type: Transform -- uid: 53 - type: WallShuttle - components: - - pos: 2.5,-1.5 - parent: 0 - type: Transform -- uid: 54 - type: ReinforcedWindow - components: - - pos: -4.5,7.5 - parent: 0 - type: Transform -- uid: 55 - type: WallShuttle - components: - - pos: -0.5,4.5 - parent: 0 - type: Transform -- uid: 56 - type: ReinforcedWindow - components: - - pos: -4.5,6.5 - parent: 0 - type: Transform -- uid: 57 - type: AirlockMedicalGlassLocked - components: - - pos: -2.5,8.5 - parent: 0 - type: Transform -- uid: 58 - type: WallShuttle - components: - - pos: -1.5,8.5 - parent: 0 - type: Transform -- uid: 59 - type: WallShuttle - components: - - pos: -0.5,-2.5 - parent: 0 - type: Transform -- uid: 60 - type: ReinforcedWindow - components: - - pos: -7.5,1.5 - parent: 0 - type: Transform -- uid: 61 - type: WallShuttle - components: - - pos: -0.5,0.5 - parent: 0 - type: Transform -- uid: 62 - type: ReinforcedWindow - components: - - pos: -7.5,2.5 - parent: 0 - type: Transform -- uid: 63 - type: SMESBasic - components: - - pos: -3.5,-2.5 - parent: 0 - type: Transform - - containers: - - machine_parts - - machine_board - type: Construction -- uid: 64 - type: WallShuttle - components: - - pos: -0.5,-5.5 - parent: 0 - type: Transform -- uid: 65 - type: WindowReinforcedDirectional - components: - - rot: -1.5707963267948966 rad - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 66 - type: WindowReinforcedDirectional - components: - - rot: 1.5707963267948966 rad - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 67 - type: WallShuttle - components: - - pos: -1.5,-5.5 - parent: 0 - type: Transform -- uid: 68 - type: WallShuttle - components: - - pos: -2.5,-5.5 - parent: 0 - type: Transform -- uid: 69 - type: WallShuttle - components: - - pos: -3.5,-5.5 - parent: 0 - type: Transform -- uid: 70 - type: GasOutletInjector - components: - - pos: -1.5,-2.5 - parent: 0 - type: Transform -- uid: 71 - type: Thruster - components: - - rot: 3.141592653589793 rad - pos: 1.5,-5.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 72 - type: Thruster - components: - - rot: -1.5707963267948966 rad - pos: 2.5,-4.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 73 - type: CableApcExtension - components: - - pos: -2.5,-4.5 - parent: 0 - type: Transform -- uid: 74 - type: CableApcExtension - components: - - pos: -2.5,-3.5 - parent: 0 - type: Transform -- uid: 75 - type: CableApcExtension - components: - - pos: -2.5,-2.5 - parent: 0 - type: Transform -- uid: 76 - type: CableApcExtension - components: - - pos: -2.5,-0.5 - parent: 0 - type: Transform -- uid: 77 - type: CableApcExtension - components: - - pos: -5.5,1.5 - parent: 0 - type: Transform -- uid: 78 - type: ReinforcedWindow - components: - - pos: -7.5,3.5 - parent: 0 - type: Transform -- uid: 79 - type: WallShuttle - components: - - pos: 2.5,9.5 - parent: 0 - type: Transform -- uid: 80 - type: WallShuttle - components: - - pos: 2.5,6.5 - parent: 0 - type: Transform -- uid: 81 - type: CableApcExtension - components: - - pos: -6.5,4.5 - parent: 0 - type: Transform -- uid: 82 - type: CableApcExtension - components: - - pos: -1.5,9.5 - parent: 0 - type: Transform -- uid: 83 - type: CableMV - components: - - pos: -4.5,-0.5 - parent: 0 - type: Transform -- uid: 84 - type: CableApcExtension - components: - - pos: 0.5,-4.5 - parent: 0 - type: Transform -- uid: 85 - type: WallShuttle - components: - - pos: -1.5,4.5 - parent: 0 - type: Transform -- uid: 86 - type: CableApcExtension - components: - - pos: -3.5,0.5 - parent: 0 - type: Transform -- uid: 87 - type: CableMV - components: - - pos: -3.5,0.5 - parent: 0 - type: Transform -- uid: 88 - type: PlasmaReinforcedWindowDirectional - components: - - rot: 3.141592653589793 rad - pos: -1.5,-1.5 - parent: 0 - type: Transform -- uid: 89 - type: Thruster - components: - - rot: 1.5707963267948966 rad - pos: -7.5,11.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 90 - type: CableMV - components: - - pos: -1.5,8.5 - parent: 0 - type: Transform -- uid: 91 - type: CableMV - components: - - pos: -3.5,-0.5 - parent: 0 - type: Transform -- uid: 92 - type: CableApcExtension - components: - - pos: 1.5,2.5 - parent: 0 - type: Transform -- uid: 93 - type: CableApcExtension - components: - - pos: -6.5,-0.5 - parent: 0 - type: Transform -- uid: 94 - type: CableApcExtension - components: - - pos: -1.5,1.5 - parent: 0 - type: Transform -- uid: 95 - type: CableApcExtension - components: - - pos: -0.5,1.5 - parent: 0 - type: Transform -- uid: 96 - type: CableApcExtension - components: - - pos: -6.5,-1.5 - parent: 0 - type: Transform -- uid: 97 - type: WallShuttle - components: - - pos: 0.5,-3.5 - parent: 0 - type: Transform -- uid: 98 - type: WallShuttle - components: - - pos: -4.5,-3.5 - parent: 0 - type: Transform -- uid: 99 - type: AirlockGlassShuttle - components: - - rot: 1.5707963267948966 rad - pos: 2.5,-0.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 100 - type: AirlockGlassShuttle - components: - - rot: 1.5707963267948966 rad - pos: 2.5,-2.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 101 - type: Grille - components: - - pos: 2.5,3.5 - parent: 0 - type: Transform -- uid: 102 - type: ReinforcedWindow - components: - - pos: 2.5,1.5 - parent: 0 - type: Transform -- uid: 103 - type: CableApcExtension - components: - - pos: -2.5,3.5 - parent: 0 - type: Transform -- uid: 104 - type: CableApcExtension - components: - - pos: -2.5,5.5 - parent: 0 - type: Transform -- uid: 105 - type: CableApcExtension - components: - - pos: -2.5,6.5 - parent: 0 - type: Transform -- uid: 106 - type: CableApcExtension - components: - - pos: -2.5,7.5 - parent: 0 - type: Transform -- uid: 107 - type: CableApcExtension - components: - - pos: -2.5,8.5 - parent: 0 - type: Transform -- uid: 108 - type: CableApcExtension - components: - - pos: 1.5,-2.5 - parent: 0 - type: Transform -- uid: 109 - type: CableApcExtension - components: - - pos: 1.5,-1.5 - parent: 0 - type: Transform -- uid: 110 - type: CableApcExtension - components: - - pos: 1.5,-0.5 - parent: 0 - type: Transform -- uid: 111 - type: CableApcExtension - components: - - pos: 1.5,0.5 - parent: 0 - type: Transform -- uid: 112 - type: CableApcExtension - components: - - pos: 1.5,1.5 - parent: 0 - type: Transform -- uid: 113 - type: CableApcExtension - components: - - pos: -4.5,1.5 - parent: 0 - type: Transform -- uid: 114 - type: CableApcExtension - components: - - pos: -3.5,1.5 - parent: 0 - type: Transform -- uid: 115 - type: CableApcExtension - components: - - pos: -2.5,1.5 - parent: 0 - type: Transform -- uid: 116 - type: CableApcExtension - components: - - pos: -6.5,-4.5 - parent: 0 - type: Transform -- uid: 117 - type: CableApcExtension - components: - - pos: -5.5,-4.5 - parent: 0 - type: Transform -- uid: 118 - type: CableHV - components: - - pos: -4.5,-0.5 - parent: 0 - type: Transform -- uid: 119 - type: CableHV - components: - - pos: -3.5,-0.5 - parent: 0 - type: Transform -- uid: 120 - type: CableHV - components: - - pos: -3.5,-1.5 - parent: 0 - type: Transform -- uid: 121 - type: CableHV - components: - - pos: -3.5,-2.5 - parent: 0 - type: Transform -- uid: 122 - type: GasPort - components: - - rot: 3.141592653589793 rad - pos: -1.5,-3.5 - parent: 0 - type: Transform -- uid: 123 - type: WindowReinforcedDirectional - components: - - rot: -1.5707963267948966 rad - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 124 - type: Grille - components: - - pos: -0.5,7.5 - parent: 0 - type: Transform -- uid: 125 - type: Grille - components: - - pos: -0.5,6.5 - parent: 0 - type: Transform -- uid: 126 - type: Grille - components: - - pos: -0.5,5.5 - parent: 0 - type: Transform -- uid: 127 - type: Grille - components: - - pos: -4.5,7.5 - parent: 0 - type: Transform -- uid: 128 - type: CableMV - components: - - pos: -2.5,4.5 - parent: 0 - type: Transform -- uid: 129 - type: CableMV - components: - - pos: -2.5,3.5 - parent: 0 - type: Transform -- uid: 130 - type: CableMV - components: - - pos: -2.5,2.5 - parent: 0 - type: Transform -- uid: 131 - type: CableMV - components: - - pos: -2.5,1.5 - parent: 0 - type: Transform -- uid: 132 - type: CableMV - components: - - pos: -3.5,1.5 - parent: 0 - type: Transform -- uid: 133 - type: CableApcExtension - components: - - pos: -6.5,0.5 - parent: 0 - type: Transform -- uid: 134 - type: APCHyperCapacity - components: - - pos: -1.5,8.5 - parent: 0 - type: Transform -- uid: 135 - type: Thruster - components: - - pos: -7.5,12.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 136 - type: CableApcExtension - components: - - pos: -2.5,-1.5 - parent: 0 - type: Transform -- uid: 137 - type: CableApcExtension - components: - - pos: 1.5,9.5 - parent: 0 - type: Transform -- uid: 138 - type: CableApcExtension - components: - - pos: 1.5,6.5 - parent: 0 - type: Transform -- uid: 139 - type: CableApcExtension - components: - - pos: 1.5,7.5 - parent: 0 - type: Transform -- uid: 140 - type: CableApcExtension - components: - - pos: -6.5,-2.5 - parent: 0 - type: Transform -- uid: 141 - type: WallShuttle - components: - - pos: -4.5,-0.5 - parent: 0 - type: Transform -- uid: 142 - type: CableApcExtension - components: - - pos: -6.5,3.5 - parent: 0 - type: Transform -- uid: 143 - type: WallShuttle - components: - - pos: 2.5,-3.5 - parent: 0 - type: Transform -- uid: 144 - type: WallShuttle - components: - - pos: 2.5,8.5 - parent: 0 - type: Transform -- uid: 145 - type: AirlockGlassShuttle - components: - - rot: 1.5707963267948966 rad - pos: 2.5,7.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 146 - type: ReinforcedWindow - components: - - pos: 2.5,3.5 - parent: 0 - type: Transform -- uid: 147 - type: ReinforcedWindow - components: - - pos: -0.5,7.5 - parent: 0 - type: Transform -- uid: 148 - type: WallShuttle - components: - - pos: -1.5,10.5 - parent: 0 - type: Transform -- uid: 149 - type: ReinforcedWindow - components: - - pos: 2.5,2.5 - parent: 0 - type: Transform -- uid: 150 - type: CableApcExtension - components: - - pos: 0.5,9.5 - parent: 0 - type: Transform -- uid: 151 - type: CableApcExtension - components: - - pos: 1.5,8.5 - parent: 0 - type: Transform -- uid: 152 - type: AirlockGlassShuttle - components: - - rot: 1.5707963267948966 rad - pos: 2.5,5.5 - parent: 0 - type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures -- uid: 153 - type: WallShuttle - components: - - pos: 1.5,-3.5 - parent: 0 - type: Transform -- uid: 154 - type: WallShuttle - components: - - pos: -4.5,-2.5 - parent: 0 - type: Transform -- uid: 155 - type: Grille - components: - - pos: 2.5,1.5 - parent: 0 - type: Transform -- uid: 156 - type: Grille - components: - - pos: -6.5,12.5 - parent: 0 - type: Transform -- uid: 157 - type: Grille - components: - - pos: -6.5,13.5 - parent: 0 - type: Transform -- uid: 158 - type: Grille - components: - - pos: -5.5,13.5 - parent: 0 - type: Transform -- uid: 159 - type: Grille - components: - - pos: -5.5,14.5 - parent: 0 - type: Transform -- uid: 160 - type: Grille - components: - - pos: -4.5,14.5 - parent: 0 - type: Transform -- uid: 161 - type: Grille - components: - - pos: -3.5,14.5 - parent: 0 - type: Transform -- uid: 162 - type: Grille - components: - - pos: -2.5,14.5 - parent: 0 - type: Transform -- uid: 163 - type: Grille - components: - - pos: -1.5,14.5 - parent: 0 - type: Transform -- uid: 164 - type: Grille - components: - - pos: -0.5,14.5 - parent: 0 - type: Transform -- uid: 165 - type: Grille - components: - - pos: 0.5,14.5 - parent: 0 - type: Transform -- uid: 166 - type: Grille - components: - - pos: 0.5,13.5 - parent: 0 - type: Transform -- uid: 167 - type: Grille - components: - - pos: 1.5,13.5 - parent: 0 - type: Transform -- uid: 168 - type: Grille - components: - - pos: 1.5,12.5 - parent: 0 - type: Transform -- uid: 169 - type: Grille - components: - - pos: 2.5,2.5 - parent: 0 - type: Transform -- uid: 170 - type: WallShuttle - components: - - pos: -6.5,-3.5 - parent: 0 - type: Transform -- uid: 171 - type: Grille - components: - - pos: -7.5,1.5 - parent: 0 - type: Transform -- uid: 172 - type: Grille - components: - - pos: -7.5,2.5 - parent: 0 - type: Transform -- uid: 173 - type: Grille - components: - - pos: -7.5,3.5 - parent: 0 - type: Transform -- uid: 174 - type: CableMV - components: - - pos: -2.5,6.5 - parent: 0 - type: Transform -- uid: 175 - type: Thruster - components: - - rot: -1.5707963267948966 rad - pos: 2.5,11.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 176 - type: APCHyperCapacity - components: - - pos: -3.5,0.5 - parent: 0 - type: Transform -- uid: 177 - type: CableApcExtension - components: - - pos: -3.5,-4.5 - parent: 0 - type: Transform -- uid: 178 - type: CableApcExtension - components: - - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 179 - type: CableApcExtension - components: - - pos: 1.5,-4.5 - parent: 0 - type: Transform -- uid: 180 - type: CableApcExtension - components: - - pos: -1.5,-4.5 - parent: 0 - type: Transform -- uid: 181 - type: Thruster - components: - - pos: 2.5,12.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 182 - type: WindowReinforcedDirectional - components: - - rot: 1.5707963267948966 rad - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 183 - type: CableMV - components: - - pos: -2.5,5.5 - parent: 0 - type: Transform -- uid: 184 - type: CableApcExtension - components: - - pos: -0.5,9.5 - parent: 0 - type: Transform -- uid: 185 - type: CableApcExtension - components: - - pos: -6.5,1.5 - parent: 0 - type: Transform -- uid: 186 - type: WallShuttle - components: - - pos: -1.5,0.5 - parent: 0 - type: Transform -- uid: 187 - type: CableApcExtension - components: - - pos: -2.5,4.5 - parent: 0 - type: Transform -- uid: 188 - type: CableApcExtension - components: - - pos: -1.5,8.5 - parent: 0 - type: Transform -- uid: 189 - type: Grille - components: - - pos: -4.5,6.5 - parent: 0 - type: Transform -- uid: 190 - type: Grille - components: - - pos: -4.5,5.5 - parent: 0 - type: Transform -- uid: 191 - type: CableMV - components: - - pos: -2.5,8.5 - parent: 0 - type: Transform -- uid: 192 - type: CableApcExtension - components: - - pos: -2.5,0.5 - parent: 0 - type: Transform -- uid: 193 - type: WallShuttle - components: - - pos: -3.5,4.5 - parent: 0 - type: Transform -- uid: 194 - type: CableApcExtension - components: - - pos: 1.5,3.5 - parent: 0 - type: Transform -- uid: 195 - type: CableMV - components: - - pos: -2.5,7.5 - parent: 0 - type: Transform -- uid: 196 - type: WallShuttle - components: - - pos: -3.5,10.5 - parent: 0 - type: Transform -- uid: 197 - type: ReinforcedWindow - components: - - pos: -0.5,6.5 - parent: 0 - type: Transform -- uid: 198 - type: ReinforcedWindow - components: - - pos: -0.5,5.5 - parent: 0 - type: Transform -- uid: 199 - type: WallShuttle - components: - - pos: -4.5,8.5 - parent: 0 - type: Transform -- uid: 200 - type: WallShuttle - components: - - pos: -3.5,8.5 - parent: 0 - type: Transform -- uid: 201 - type: CableApcExtension - components: - - pos: -2.5,9.5 - parent: 0 - type: Transform -- uid: 202 - type: CableApcExtension - components: - - pos: -3.5,9.5 - parent: 0 - type: Transform -- uid: 203 - type: CableApcExtension - components: - - pos: -4.5,9.5 - parent: 0 - type: Transform -- uid: 204 - type: CableApcExtension - components: - - pos: -5.5,9.5 - parent: 0 - type: Transform -- uid: 205 - type: CableApcExtension - components: - - pos: -6.5,9.5 - parent: 0 - type: Transform -- uid: 206 - type: CableApcExtension - components: - - pos: -6.5,8.5 - parent: 0 - type: Transform -- uid: 207 - type: CableApcExtension - components: - - pos: -6.5,7.5 - parent: 0 - type: Transform -- uid: 208 - type: CableApcExtension - components: - - pos: -6.5,6.5 - parent: 0 - type: Transform -- uid: 209 - type: CableApcExtension - components: - - pos: -2.5,10.5 - parent: 0 - type: Transform -- uid: 210 - type: CableApcExtension - components: - - pos: -2.5,11.5 - parent: 0 - type: Transform -- uid: 211 - type: CableApcExtension - components: - - pos: -2.5,12.5 - parent: 0 - type: Transform -- uid: 212 - type: CableApcExtension - components: - - pos: -2.5,13.5 - parent: 0 - type: Transform -- uid: 213 - type: CableApcExtension - components: - - pos: -3.5,11.5 - parent: 0 - type: Transform -- uid: 214 - type: CableApcExtension - components: - - pos: -4.5,11.5 - parent: 0 - type: Transform -- uid: 215 - type: CableApcExtension - components: - - pos: -5.5,11.5 - parent: 0 - type: Transform -- uid: 216 - type: CableApcExtension - components: - - pos: -1.5,11.5 - parent: 0 - type: Transform -- uid: 217 - type: CableApcExtension - components: - - pos: -0.5,11.5 - parent: 0 - type: Transform -- uid: 218 - type: CableApcExtension - components: - - pos: 0.5,11.5 - parent: 0 - type: Transform -- uid: 219 - type: CableApcExtension - components: - - pos: -2.5,14.5 - parent: 0 - type: Transform -- uid: 220 - type: CableApcExtension - components: - - pos: -1.5,14.5 - parent: 0 - type: Transform -- uid: 221 - type: CableApcExtension - components: - - pos: -0.5,14.5 - parent: 0 - type: Transform -- uid: 222 - type: CableApcExtension - components: - - pos: 0.5,14.5 - parent: 0 - type: Transform -- uid: 223 - type: CableApcExtension - components: - - pos: 0.5,13.5 - parent: 0 - type: Transform -- uid: 224 - type: CableApcExtension - components: - - pos: 1.5,13.5 - parent: 0 - type: Transform -- uid: 225 - type: CableApcExtension - components: - - pos: 1.5,12.5 - parent: 0 - type: Transform -- uid: 226 - type: CableApcExtension - components: - - pos: -3.5,14.5 - parent: 0 - type: Transform -- uid: 227 - type: CableApcExtension - components: - - pos: -4.5,14.5 - parent: 0 - type: Transform -- uid: 228 - type: CableApcExtension - components: - - pos: -5.5,14.5 - parent: 0 - type: Transform -- uid: 229 - type: CableApcExtension - components: - - pos: -5.5,13.5 - parent: 0 - type: Transform -- uid: 230 - type: CableApcExtension - components: - - pos: -6.5,13.5 - parent: 0 - type: Transform -- uid: 231 - type: CableApcExtension - components: - - pos: -6.5,12.5 - parent: 0 - type: Transform -- uid: 232 - type: AirlockEngineeringLocked - components: - - pos: -2.5,0.5 - parent: 0 - type: Transform -- uid: 233 - type: CableTerminal - components: - - rot: 3.141592653589793 rad - pos: -3.5,-3.5 - parent: 0 - type: Transform -- uid: 234 - type: CableHV - components: - - pos: -3.5,-4.5 - parent: 0 - type: Transform -- uid: 235 - type: CableHV - components: - - pos: -2.5,-4.5 - parent: 0 - type: Transform -- uid: 236 - type: CableHV - components: - - pos: -3.5,-3.5 - parent: 0 - type: Transform -- uid: 237 - type: CableHV - components: - - pos: -1.5,-4.5 - parent: 0 - type: Transform -- uid: 238 - type: GeneratorWallmountAPU - components: - - pos: -4.5,-3.5 - parent: 0 - type: Transform -- uid: 239 - type: GeneratorUranium - components: - - pos: -3.5,-4.5 - parent: 0 - type: Transform - - containers: - - machine_parts - - machine_board - type: Construction -- uid: 240 - type: GeneratorUranium - components: - - pos: -1.5,-4.5 - parent: 0 - type: Transform - - containers: - - machine_parts - - machine_board - type: Construction -- uid: 241 - type: CableHV - components: - - pos: -4.5,-3.5 - parent: 0 - type: Transform -- uid: 242 - type: GasVentPump - components: - - rot: 3.141592653589793 rad - pos: -5.5,-1.5 - parent: 0 - type: Transform -- uid: 243 - type: GasVentPump - components: - - rot: 3.141592653589793 rad - pos: 0.5,-1.5 - parent: 0 - type: Transform -- uid: 244 - type: GasVentPump - components: - - pos: 0.5,6.5 - parent: 0 - type: Transform -- uid: 245 - type: GasVentPump - components: - - pos: -5.5,6.5 - parent: 0 - type: Transform -- uid: 246 - type: GasVentPump - components: - - pos: -2.5,12.5 - parent: 0 - type: Transform -- uid: 247 - type: GasVentPump - components: - - rot: 1.5707963267948966 rad - pos: -3.5,6.5 - parent: 0 - type: Transform -- uid: 248 - type: GasPipeTJunction - components: - - rot: 1.5707963267948966 rad - pos: -5.5,2.5 - parent: 0 - type: Transform -- uid: 249 - type: GasPipeTJunction - components: - - rot: -1.5707963267948966 rad - pos: 0.5,2.5 - parent: 0 - type: Transform -- uid: 250 - type: GasPipeFourway - components: - - pos: -2.5,2.5 - parent: 0 - type: Transform -- uid: 251 - type: GasPipeTJunction - components: - - rot: -1.5707963267948966 rad - pos: -2.5,6.5 - parent: 0 - type: Transform -- uid: 252 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,3.5 - parent: 0 - type: Transform -- uid: 253 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,4.5 - parent: 0 - type: Transform -- uid: 254 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,5.5 - parent: 0 - type: Transform -- uid: 255 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,3.5 - parent: 0 - type: Transform -- uid: 256 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,4.5 - parent: 0 - type: Transform -- uid: 257 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,5.5 - parent: 0 - type: Transform -- uid: 258 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,-0.5 - parent: 0 - type: Transform -- uid: 259 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,0.5 - parent: 0 - type: Transform -- uid: 260 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: 0.5,1.5 - parent: 0 - type: Transform -- uid: 261 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,-0.5 - parent: 0 - type: Transform -- uid: 262 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,0.5 - parent: 0 - type: Transform -- uid: 263 - type: GasPipeStraight - components: - - rot: 3.141592653589793 rad - pos: -5.5,1.5 - parent: 0 - type: Transform -- uid: 264 - type: GasPipeStraight - components: - - rot: 1.5707963267948966 rad - pos: -4.5,2.5 - parent: 0 - type: Transform -- uid: 265 - type: GasPipeStraight - components: - - rot: 1.5707963267948966 rad - pos: -3.5,2.5 - parent: 0 - type: Transform -- uid: 266 - type: GasPipeStraight - components: - - rot: 1.5707963267948966 rad - pos: -1.5,2.5 - parent: 0 - type: Transform -- uid: 267 - type: GasPipeStraight - components: - - rot: 1.5707963267948966 rad - pos: -0.5,2.5 - parent: 0 - type: Transform -- uid: 268 - type: GasPipeStraight - components: - - pos: -2.5,1.5 - parent: 0 - type: Transform -- uid: 269 - type: GasPipeStraight - components: - - pos: -2.5,0.5 - parent: 0 - type: Transform -- uid: 270 - type: GasPassiveVent - components: - - rot: 3.141592653589793 rad - pos: -1.5,-1.5 - parent: 0 - type: Transform -- uid: 271 - type: GasPipeStraight - components: - - pos: -2.5,3.5 - parent: 0 - type: Transform -- uid: 272 - type: GasPipeStraight - components: - - pos: -2.5,4.5 - parent: 0 - type: Transform -- uid: 273 - type: GasPipeStraight - components: - - pos: -2.5,5.5 - parent: 0 - type: Transform -- uid: 274 - type: GasPipeStraight - components: - - pos: -2.5,7.5 - parent: 0 - type: Transform -- uid: 275 - type: GasPipeStraight - components: - - pos: -2.5,8.5 - parent: 0 - type: Transform -- uid: 276 - type: GasPipeStraight - components: - - pos: -2.5,9.5 - parent: 0 - type: Transform -- uid: 277 - type: GasPipeStraight - components: - - pos: -2.5,10.5 - parent: 0 - type: Transform -- uid: 278 - type: GasPipeStraight - components: - - pos: -2.5,11.5 - parent: 0 - type: Transform -- uid: 279 - type: FirelockGlass - components: - - pos: -5.5,0.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 280 - type: FirelockGlass - components: - - pos: -6.5,0.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 281 - type: FirelockGlass - components: - - pos: 1.5,0.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 282 - type: FirelockGlass - components: - - pos: 0.5,0.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 283 - type: FirelockGlass - components: - - pos: 1.5,4.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 284 - type: FirelockGlass - components: - - pos: 0.5,4.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 285 - type: FirelockGlass - components: - - pos: -5.5,4.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 286 - type: FirelockGlass - components: - - pos: -6.5,4.5 - parent: 0 - type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics -- uid: 287 - type: ChairPilotSeat - components: - - pos: -1.5,3.5 - parent: 0 - type: Transform -- uid: 288 - type: ChairPilotSeat - components: - - pos: -0.5,3.5 - parent: 0 - type: Transform -- uid: 289 - type: ChairPilotSeat - components: - - pos: -4.5,3.5 - parent: 0 - type: Transform -- uid: 290 - type: ChairPilotSeat - components: - - pos: -3.5,3.5 - parent: 0 - type: Transform -- uid: 291 - type: GasPipeBend - components: - - rot: 3.141592653589793 rad - pos: -2.5,-0.5 - parent: 0 - type: Transform -- uid: 292 - type: Thruster - components: - - rot: 3.141592653589793 rad - pos: -6.5,-5.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 293 - type: WallShuttle - components: - - pos: -6.5,-4.5 - parent: 0 - type: Transform -- uid: 294 - type: WallShuttle - components: - - pos: 1.5,-4.5 - parent: 0 - type: Transform -- uid: 295 - type: PlasmaReinforcedWindowDirectional - components: - - rot: -1.5707963267948966 rad - pos: -1.5,-1.5 - parent: 0 - type: Transform -- uid: 296 - type: PlasmaReinforcedWindowDirectional - components: - - pos: -1.5,-2.5 - parent: 0 - type: Transform -- uid: 297 - type: PlasmaReinforcedWindowDirectional - components: - - rot: -1.5707963267948966 rad - pos: -1.5,-2.5 - parent: 0 - type: Transform -- uid: 298 - type: GasPipeBend - components: - - pos: -1.5,-0.5 - parent: 0 - type: Transform -- uid: 299 - type: GravityGeneratorMini - components: - - pos: -2.5,-4.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound - - powerLoad: 500 - type: ApcPowerReceiver - - radius: 2.5 - type: PointLight -- uid: 300 - type: AirCanister - components: - - pos: -1.5,-3.5 - parent: 0 - type: Transform -- uid: 301 - type: Table - components: - - pos: -1.5,-0.5 - parent: 0 - type: Transform -- uid: 302 - type: Table - components: - - pos: -3.5,-1.5 - parent: 0 - type: Transform -- uid: 303 - type: HolofanProjector - components: - - pos: -1.5318584,-0.42628574 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - cell_slot: !type:ContainerSlot {} - type: ContainerContainer -- uid: 304 - type: InflatableWallStack - components: - - pos: -1.3756084,-0.34816074 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 305 - type: Welder - components: - - pos: -3.4381084,-1.3950357 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 306 - type: ClothingHeadHatWelding - components: - - pos: -3.5006084,-1.3794107 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 307 - type: OxygenCanister - components: - - pos: -3.5,-3.5 - parent: 0 - type: Transform -- uid: 308 - type: Gyroscope - components: - - pos: -5.5,-4.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 309 - type: Gyroscope - components: - - pos: 0.5,-4.5 - parent: 0 - type: Transform - - enabled: False - type: AmbientSound -- uid: 310 - type: ReinforcedWindow - components: - - pos: -5.5,-5.5 - parent: 0 - type: Transform -- uid: 311 - type: ReinforcedWindow - components: - - pos: 0.5,-5.5 - parent: 0 - type: Transform -- uid: 312 - type: Grille - components: - - pos: -5.5,-5.5 - parent: 0 - type: Transform -- uid: 313 - type: AirlockMedicalGlassLocked - components: - - pos: -2.5,4.5 - parent: 0 - type: Transform -- uid: 314 - type: Grille - components: - - pos: 0.5,-5.5 - parent: 0 - type: Transform -- uid: 315 - type: WallShuttle - components: - - pos: -5.5,-3.5 - parent: 0 - type: Transform -- uid: 316 - type: StasisBed - components: - - pos: -1.5,7.5 - parent: 0 - type: Transform -- uid: 317 - type: MedicalBed - components: - - pos: -1.5,6.5 - parent: 0 - type: Transform -- uid: 318 - type: MedicalBed - components: - - pos: -1.5,5.5 - parent: 0 - type: Transform -- uid: 319 - type: BedsheetMedical - components: - - pos: -1.5,5.5 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 320 - type: BedsheetMedical - components: - - pos: -1.5,6.5 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 321 - type: ClosetEmergencyFilledRandom - components: - - pos: 0.5,-2.5 - parent: 0 - type: Transform -- uid: 322 - type: ClosetEmergencyFilledRandom - components: - - pos: -5.5,-2.5 - parent: 0 - type: Transform -- uid: 323 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -5.5,-1.5 - parent: 0 - type: Transform -- uid: 324 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -5.5,-0.5 - parent: 0 - type: Transform -- uid: 325 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: 0.5,-1.5 - parent: 0 - type: Transform -- uid: 326 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: 0.5,-0.5 - parent: 0 - type: Transform -- uid: 327 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: 0.5,5.5 - parent: 0 - type: Transform -- uid: 328 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: 0.5,6.5 - parent: 0 - type: Transform -- uid: 329 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: 0.5,7.5 - parent: 0 - type: Transform -- uid: 330 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -5.5,5.5 - parent: 0 - type: Transform -- uid: 331 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -5.5,6.5 - parent: 0 - type: Transform -- uid: 332 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -5.5,7.5 - parent: 0 - type: Transform -- uid: 333 - type: ChairPilotSeat - components: - - rot: 3.141592653589793 rad - pos: -4.5,1.5 - parent: 0 - type: Transform -- uid: 334 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: -6.5,1.5 - parent: 0 - type: Transform -- uid: 335 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: -6.5,2.5 - parent: 0 - type: Transform -- uid: 336 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: -6.5,3.5 - parent: 0 - type: Transform -- uid: 337 - type: ChairPilotSeat - components: - - rot: 3.141592653589793 rad - pos: -0.5,1.5 - parent: 0 - type: Transform -- uid: 338 - type: ChairPilotSeat - components: - - rot: 3.141592653589793 rad - pos: -1.5,1.5 - parent: 0 - type: Transform -- uid: 339 - type: ChairPilotSeat - components: - - rot: 3.141592653589793 rad - pos: -3.5,1.5 - parent: 0 - type: Transform -- uid: 340 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: 1.5,1.5 - parent: 0 - type: Transform -- uid: 341 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: 1.5,2.5 - parent: 0 - type: Transform -- uid: 342 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: 1.5,3.5 - parent: 0 - type: Transform -- uid: 343 - type: Wrench - components: - - pos: -2.4213462,-2.5333743 - parent: 0 - type: Transform - - canCollide: False - type: Physics -- uid: 344 - type: ToolboxElectricalFilled - components: - - pos: -3.4993823,-1.5213687 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer -- uid: 345 - type: ClosetEmergencyFilledRandom - components: - - pos: -5.5,8.5 - parent: 0 - type: Transform -- uid: 346 - type: ClosetEmergencyFilledRandom - components: - - pos: 0.5,8.5 - parent: 0 - type: Transform -- uid: 347 - type: ClosetFireFilled - components: - - pos: -3.5,-0.5 - parent: 0 - type: Transform -- uid: 348 - type: LockerMedicineFilled - components: - - pos: -3.5,7.5 - parent: 0 - type: Transform -- uid: 349 - type: TableGlass - components: - - pos: -3.5,5.5 - parent: 0 - type: Transform -- uid: 350 - type: ChairOfficeLight - components: - - pos: -3.5,6.5 - parent: 0 - type: Transform -- uid: 351 - type: MedkitFilled - components: - - pos: -3.5306323,5.678626 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer -- uid: 352 - type: MedkitOxygenFilled - components: - - pos: -3.4212573,5.444251 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer -- uid: 353 - type: AirlockCommandGlassLocked - components: - - pos: -2.5,10.5 - parent: 0 - type: Transform -- uid: 354 - type: ComputerEmergencyShuttle - components: - - pos: -2.5,13.5 - parent: 0 - type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer -- uid: 355 - type: WindowReinforcedDirectional - components: - - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 356 - type: WindowReinforcedDirectional - components: - - rot: 3.141592653589793 rad - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 357 - type: WindowReinforcedDirectional - components: - - rot: 3.141592653589793 rad - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 358 - type: WindowReinforcedDirectional - components: - - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 359 - type: Grille - components: - - pos: -4.5,-4.5 - parent: 0 - type: Transform -- uid: 360 - type: Grille - components: - - pos: -0.5,-4.5 - parent: 0 - type: Transform -- uid: 361 - type: VendingMachineWallMedical - components: - - pos: -3.5,4.5 - parent: 0 - type: Transform -- uid: 362 - type: ExtinguisherCabinetFilled - components: - - pos: -4.5,-1.5 - parent: 0 - type: Transform - - containers: - ItemCabinet: !type:ContainerSlot {} - type: ContainerContainer -- uid: 363 - type: ExtinguisherCabinetFilled - components: - - pos: -0.5,-1.5 - parent: 0 - type: Transform - - containers: - ItemCabinet: !type:ContainerSlot {} - type: ContainerContainer -- uid: 364 - type: ExtinguisherCabinetFilled - components: - - pos: -0.5,8.5 - parent: 0 - type: Transform - - containers: - ItemCabinet: !type:ContainerSlot {} - type: ContainerContainer -- uid: 365 - type: ExtinguisherCabinetFilled - components: - - pos: -4.5,8.5 - parent: 0 - type: Transform - - containers: - ItemCabinet: !type:ContainerSlot {} - type: ContainerContainer -- uid: 366 - type: ChairPilotSeat - components: - - rot: 3.141592653589793 rad - pos: -2.5,12.5 - parent: 0 - type: Transform -- uid: 367 - type: ComputerRadar - components: - - pos: -1.5,13.5 - parent: 0 - type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer -- uid: 368 - type: ComputerComms - components: - - pos: -3.5,13.5 - parent: 0 - type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer -- uid: 369 - type: TableReinforced - components: - - pos: -4.5,13.5 - parent: 0 - type: Transform -- uid: 370 - type: TableReinforced - components: - - pos: -0.5,13.5 - parent: 0 - type: Transform -- uid: 371 - type: TableReinforced - components: - - pos: 0.5,12.5 - parent: 0 - type: Transform -- uid: 372 - type: TableReinforced - components: - - pos: 0.5,11.5 - parent: 0 - type: Transform -- uid: 373 - type: TableReinforced - components: - - pos: -5.5,11.5 - parent: 0 - type: Transform -- uid: 374 - type: TableReinforced - components: - - pos: -5.5,12.5 - parent: 0 - type: Transform -- uid: 375 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -4.5,11.5 - parent: 0 - type: Transform -- uid: 376 - type: ChairPilotSeat - components: - - rot: -1.5707963267948966 rad - pos: -4.5,12.5 - parent: 0 - type: Transform -- uid: 377 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: -0.5,11.5 - parent: 0 - type: Transform -- uid: 378 - type: ChairPilotSeat - components: - - rot: 1.5707963267948966 rad - pos: -0.5,12.5 - parent: 0 - type: Transform -- uid: 379 - type: ToolboxEmergencyFilled - components: - - pos: -6.515904,9.4287615 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer -- uid: 380 - type: PosterLegitNanotrasenLogo - components: - - pos: -7.5,9.5 - parent: 0 - type: Transform -- uid: 381 - type: PosterLegitNanotrasenLogo - components: - - pos: 2.5,9.5 - parent: 0 - type: Transform -- uid: 382 - type: Poweredlight - components: - - rot: 3.141592653589793 rad - pos: -3.5,11.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 383 - type: Poweredlight - components: - - pos: -1.5,-0.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 384 - type: Poweredlight - components: - - rot: 1.5707963267948966 rad - pos: -6.5,-1.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 385 - type: Poweredlight - components: - - rot: -1.5707963267948966 rad - pos: 1.5,-1.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 386 - type: Poweredlight - components: - - rot: -1.5707963267948966 rad - pos: 1.5,6.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 387 - type: Poweredlight - components: - - rot: 1.5707963267948966 rad - pos: -6.5,6.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 388 - type: Poweredlight - components: - - pos: -1.5,7.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 389 - type: Poweredlight - components: - - rot: 3.141592653589793 rad - pos: -3.5,1.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 390 - type: Poweredlight - components: - - pos: -1.5,9.5 - parent: 0 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver -- uid: 391 - type: EmergencyLight - components: - - pos: -1.5,3.5 - parent: 0 - type: Transform -- uid: 392 - type: EmergencyLight - components: - - rot: 3.141592653589793 rad - pos: -3.5,9.5 - parent: 0 - type: Transform -- uid: 393 - type: ToolboxEmergencyFilled - components: - - pos: 1.494039,-2.6272569 - parent: 0 - type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer -... +meta: + format: 2 + name: DemoStation + author: Space-Wizards + postmapinit: false +tilemap: + 0: space + 1: FloorArcadeBlue + 2: FloorArcadeBlue2 + 3: FloorArcadeRed + 4: FloorAsteroidIronsand1 + 5: FloorAsteroidIronsand2 + 6: FloorAsteroidIronsand3 + 7: FloorAsteroidIronsand4 + 8: FloorBoxing + 9: FloorCarpetClown + 10: FloorCarpetOffice + 11: FloorEighties + 12: FloorGrassJungle + 13: FloorGym + 14: FloorMetalDiamond + 15: FloorShuttleBlue + 16: FloorShuttleOrange + 17: FloorShuttlePurple + 18: FloorShuttleRed + 19: FloorShuttleWhite + 20: floor_asteroid_coarse_sand0 + 21: floor_asteroid_coarse_sand1 + 22: floor_asteroid_coarse_sand2 + 23: floor_asteroid_coarse_sand_dug + 24: floor_asteroid_sand + 25: floor_asteroid_tile + 26: floor_bar + 27: floor_blue + 28: floor_blue_circuit + 29: floor_clown + 30: floor_dark + 31: floor_elevator_shaft + 32: floor_freezer + 33: floor_glass + 34: floor_gold + 35: floor_grass + 36: floor_green_circuit + 37: floor_hydro + 38: floor_kitchen + 39: floor_laundry + 40: floor_lino + 41: floor_mime + 42: floor_mono + 43: floor_reinforced + 44: floor_rglass + 45: floor_rock_vault + 46: floor_showroom + 47: floor_silver + 48: floor_snow + 49: floor_steel + 50: floor_steel_dirty + 51: floor_techmaint + 52: floor_white + 53: floor_wood + 54: lattice + 55: plating +grids: +- settings: + chunksize: 16 + tilesize: 1 + chunks: + - ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAA3AAAANwAAADMAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADEAAAAeAAAAMQAAADEAAAAeAAAAMQAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAxAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAMQAAAB4AAAAxAAAAMQAAAB4AAAAxAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAB4AAAAeAAAANwAAADcAAAA0AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAADcAAAA0AAAANAAAADQAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAADEAAAA3AAAANAAAADQAAAA0AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAANwAAADQAAAA0AAAANAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAeAAAAMQAAADcAAAA3AAAANAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA3AAAAMQAAADEAAAAeAAAAHgAAAB4AAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAADEAAAAxAAAAHgAAAB4AAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAANwAAADMAAAAzAAAAKwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAeAAAAMQAAADcAAAAzAAAAMwAAACsAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADEAAAA3AAAAMwAAADMAAAA3AAAANwAAAA== + - ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + - ind: 0,0 + tiles: HgAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAxAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAMQAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAADEAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAeAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAHgAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAB4AAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAANwAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +entities: +- uid: 0 + components: + - pos: 2.2710133,-2.4148211 + parent: null + type: Transform + - index: 0 + type: MapGrid + - angularDamping: 100 + linearDamping: 50 + fixedRotation: False + bodyType: Dynamic + type: Physics + - fixtures: [] + type: Fixtures + - gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + type: Gravity + - chunkCollection: + -1,0: + 0: + color: '#52B4E996' + id: FullTileOverlayGreyscale + coordinates: -3,5 + 1: + color: '#52B4E996' + id: FullTileOverlayGreyscale + coordinates: -3,6 + 2: + color: '#52B4E996' + id: FullTileOverlayGreyscale + coordinates: -3,7 + 3: + color: '#52B4E996' + id: FullTileOverlayGreyscale + coordinates: -2,6 + 4: + color: '#52B4E996' + id: FullTileOverlayGreyscale + coordinates: -4,6 + 5: + color: '#334E6DC8' + id: FullTileOverlayGreyscale + coordinates: -3,10 + 11: + color: '#FFFFFFFF' + id: Bot + coordinates: -1,1 + 12: + color: '#FFFFFFFF' + id: Bot + coordinates: -2,1 + 13: + color: '#FFFFFFFF' + id: Bot + coordinates: -1,3 + 14: + color: '#FFFFFFFF' + id: Bot + coordinates: -2,3 + 15: + color: '#FFFFFFFF' + id: Bot + coordinates: -4,3 + 16: + color: '#FFFFFFFF' + id: Bot + coordinates: -5,3 + 17: + color: '#FFFFFFFF' + id: Bot + coordinates: -5,1 + 18: + color: '#FFFFFFFF' + id: Bot + coordinates: -4,1 + 21: + color: '#FFFFFFFF' + id: Bot + coordinates: -7,1 + 22: + color: '#FFFFFFFF' + id: Bot + coordinates: -7,2 + 23: + color: '#FFFFFFFF' + id: Bot + coordinates: -7,3 + 24: + color: '#FFFFFFFF' + id: Bot + coordinates: -6,5 + 25: + color: '#FFFFFFFF' + id: Bot + coordinates: -6,6 + 26: + color: '#FFFFFFFF' + id: Bot + coordinates: -6,7 + 30: + color: '#FFFFFFFF' + id: Bot + coordinates: -1,11 + 31: + color: '#FFFFFFFF' + id: Bot + coordinates: -1,12 + 32: + color: '#FFFFFFFF' + id: Bot + coordinates: -5,12 + 33: + color: '#FFFFFFFF' + id: Bot + coordinates: -5,11 + 34: + color: '#FFFFFFFF' + id: Bot + coordinates: -3,12 + 35: + color: '#FFFFFFFF' + id: Arrows + coordinates: -3,11 + 36: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale180 + coordinates: -4,11 + 37: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale180 + coordinates: -2,11 + 38: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale90 + coordinates: -4,9 + 39: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale90 + coordinates: -5,9 + 40: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale90 + coordinates: -6,9 + 41: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale + coordinates: -2,9 + 42: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale + coordinates: -1,9 + 0,-1: + 6: + color: '#FFFFFFFF' + id: Bot + coordinates: 0,-2 + 7: + color: '#FFFFFFFF' + id: Bot + coordinates: 0,-1 + 0,0: + 8: + color: '#FFFFFFFF' + id: Bot + coordinates: 1,1 + 9: + color: '#FFFFFFFF' + id: Bot + coordinates: 1,2 + 10: + color: '#FFFFFFFF' + id: Bot + coordinates: 1,3 + 27: + color: '#FFFFFFFF' + id: Bot + coordinates: 0,5 + 28: + color: '#FFFFFFFF' + id: Bot + coordinates: 0,6 + 29: + color: '#FFFFFFFF' + id: Bot + coordinates: 0,7 + 43: + color: '#334E6DC8' + id: QuarterTileOverlayGreyscale + coordinates: 0,9 + -1,-1: + 19: + color: '#FFFFFFFF' + id: Bot + coordinates: -6,-2 + 20: + color: '#FFFFFFFF' + id: Bot + coordinates: -6,-1 + type: DecalGrid + - tiles: + -5,-2: 0 + -5,-1: 1 + -4,-10: 1 + -4,-4: 0 + -4,-3: 0 + -3,-11: 1 + -3,-8: 0 + -3,-7: 0 + -3,-6: 0 + -2,-11: 1 + -2,-9: 0 + -2,-8: 0 + -2,-7: 0 + -2,-6: 0 + -2,-5: 0 + -2,-4: 0 + -2,-3: 0 + -2,-1: 0 + -1,-11: 1 + -1,-9: 0 + -1,-8: 0 + -1,-7: 0 + -1,-6: 0 + -1,-5: 0 + -1,-4: 0 + -1,-3: 0 + -1,-1: 0 + -5,5: 0 + -5,6: 0 + -5,7: 0 + -4,1: 0 + -4,2: 0 + -4,3: 0 + -4,7: 0 + -4,8: 0 + -4,9: 0 + -3,12: 1 + -3,13: 1 + -3,14: 2 + -2,0: 0 + -2,1: 0 + -2,2: 0 + -2,3: 0 + -2,4: 0 + -2,5: 0 + -2,7: 0 + -2,8: 0 + -2,9: 0 + -2,10: 0 + -1,0: 0 + -1,1: 0 + -1,2: 0 + -1,3: 0 + -1,4: 0 + -1,5: 0 + -1,7: 0 + -1,8: 0 + -1,9: 0 + -1,10: 0 + -1,12: 0 + -1,13: 0 + -1,14: 3 + 0,-11: 1 + 0,-9: 0 + 0,-8: 0 + 0,-7: 0 + 0,-6: 0 + 0,-5: 0 + 0,-4: 0 + 0,-3: 0 + 1,-11: 1 + 1,-9: 0 + 1,-8: 0 + 1,-7: 0 + 1,-6: 0 + 1,-5: 0 + 1,-4: 0 + 1,-3: 0 + 1,-1: 0 + 2,-11: 1 + 2,-9: 0 + 2,-8: 0 + 2,-7: 0 + 2,-6: 0 + 2,-5: 0 + 2,-4: 0 + 2,-3: 0 + 2,-1: 0 + 3,-11: 1 + 3,-9: 0 + 3,-8: 0 + 3,-7: 0 + 3,-6: 0 + 3,-5: 0 + 3,-4: 0 + 3,-3: 0 + 3,-1: 0 + 4,-11: 1 + 4,-8: 0 + 4,-7: 0 + 4,-6: 0 + 5,-10: 1 + 5,-4: 1 + 5,-3: 1 + 6,-2: 1 + 6,-1: 1 + 0,7: 0 + 0,8: 0 + 0,9: 0 + 0,10: 0 + 0,12: 0 + 0,13: 4 + 0,14: 5 + 0,15: 0 + 1,0: 0 + 1,1: 0 + 1,2: 0 + 1,3: 0 + 1,4: 0 + 1,5: 0 + 1,7: 0 + 1,8: 0 + 1,9: 0 + 1,10: 0 + 1,12: 6 + 1,13: 7 + 1,14: 0 + 1,15: 0 + 2,0: 0 + 2,1: 0 + 2,2: 0 + 2,3: 0 + 2,4: 0 + 2,5: 0 + 2,7: 0 + 2,8: 0 + 2,9: 0 + 2,10: 0 + 2,12: 0 + 2,13: 0 + 2,14: 0 + 3,0: 0 + 3,1: 0 + 3,2: 0 + 3,3: 0 + 3,4: 0 + 3,5: 0 + 3,7: 0 + 3,8: 0 + 3,9: 0 + 3,10: 0 + 4,12: 1 + 4,13: 1 + 4,14: 1 + 5,1: 0 + 5,2: 0 + 5,3: 0 + 5,7: 1 + 5,8: 1 + 5,9: 1 + 6,1: 0 + 6,2: 0 + 6,3: 0 + 6,5: 1 + 6,6: 1 + 6,7: 1 + 0,17: 1 + 1,17: 1 + 2,17: 1 + 3,16: 1 + -2,16: 1 + -1,17: 1 + -4,-9: 0 + -4,-8: 0 + -4,-7: 0 + -4,-6: 0 + -4,-5: 0 + -3,-10: 0 + -3,-9: 0 + -3,-5: 0 + -3,-4: 0 + -3,-3: 0 + -3,-2: 0 + -3,-1: 0 + -2,-10: 0 + -2,-2: 0 + -1,-10: 0 + -1,-2: 0 + -5,0: 0 + -5,1: 0 + -5,2: 0 + -5,3: 0 + -5,4: 0 + -4,0: 0 + -4,4: 0 + -3,0: 0 + -3,1: 0 + -3,2: 0 + -3,3: 0 + -3,4: 0 + -3,5: 0 + -3,6: 0 + -3,7: 0 + -3,8: 0 + -3,9: 0 + -3,10: 0 + -3,11: 0 + -2,6: 0 + -2,11: 0 + -2,12: 0 + -2,13: 0 + -2,14: 8 + -2,15: 0 + -1,6: 0 + -1,11: 0 + -1,15: 0 + 0,-10: 0 + 0,-2: 0 + 0,-1: 0 + 1,-10: 0 + 1,-2: 0 + 2,-10: 0 + 2,-2: 0 + 3,-10: 0 + 3,-2: 0 + 4,-10: 0 + 4,-9: 0 + 4,-5: 0 + 4,-4: 0 + 4,-3: 0 + 4,-2: 0 + 4,-1: 0 + 5,-9: 0 + 5,-8: 0 + 5,-7: 0 + 5,-6: 0 + 5,-5: 0 + 0,0: 0 + 0,1: 0 + 0,2: 0 + 0,3: 0 + 0,4: 0 + 0,5: 0 + 0,6: 0 + 0,11: 0 + 1,6: 0 + 1,11: 0 + 2,6: 0 + 2,11: 0 + 2,15: 0 + 3,6: 0 + 3,11: 0 + 3,12: 0 + 3,13: 0 + 3,14: 0 + 3,15: 0 + 4,0: 0 + 4,1: 0 + 4,2: 0 + 4,3: 0 + 4,4: 0 + 4,5: 0 + 4,6: 0 + 4,7: 0 + 4,8: 0 + 4,9: 0 + 4,10: 0 + 4,11: 0 + 5,0: 0 + 5,4: 0 + 6,0: 0 + 6,4: 0 + 0,16: 0 + 1,16: 0 + 2,16: 0 + -1,16: 0 + -8,0: 0 + -8,1: 9 + -8,2: 10 + -8,3: 11 + -8,4: 0 + -8,5: 0 + -8,6: 0 + -8,7: 0 + -8,8: 0 + -8,9: 0 + -8,10: 0 + -7,0: 0 + -7,1: 0 + -7,2: 0 + -7,3: 0 + -7,4: 0 + -7,5: 0 + -7,6: 0 + -7,7: 0 + -7,8: 0 + -7,9: 0 + -7,10: 0 + -7,11: 0 + -7,12: 0 + -7,13: 12 + -6,0: 0 + -6,1: 0 + -6,2: 0 + -6,3: 0 + -6,4: 0 + -6,5: 0 + -6,6: 0 + -6,7: 0 + -6,8: 0 + -6,9: 0 + -6,10: 0 + -6,11: 0 + -6,12: 0 + -6,13: 13 + -6,14: 14 + -5,8: 0 + -5,9: 0 + -5,10: 0 + -5,11: 0 + -5,12: 0 + -5,13: 0 + -5,14: 15 + -4,5: 0 + -4,6: 0 + -4,10: 0 + -4,11: 0 + -4,12: 0 + -4,13: 0 + -4,14: 16 + -8,-6: 0 + -8,-5: 0 + -8,-4: 0 + -8,-3: 0 + -8,-2: 0 + -8,-1: 0 + -7,-6: 0 + -7,-5: 0 + -7,-4: 0 + -7,-3: 0 + -7,-2: 0 + -7,-1: 0 + -6,-6: 17 + -6,-5: 0 + -6,-4: 0 + -6,-3: 0 + -6,-2: 0 + -6,-1: 0 + -5,-6: 0 + -5,-5: 0 + -5,-4: 0 + -5,-3: 0 + -4,-2: 0 + -4,-1: 0 + -8,11: 0 + -8,12: 0 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 122.82263 + moles: + - 9.026207 + - 33.955734 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 282.50452 + moles: + - 21.024963 + - 79.0939 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 292.48465 + moles: + - 21.774883 + - 81.91504 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 290.48862 + moles: + - 21.6249 + - 81.350815 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.10843 + moles: + - 21.821754 + - 82.09136 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 292.98364 + moles: + - 21.812382 + - 82.0561 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 250.56815 + moles: + - 18.625212 + - 70.06627 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 220.53749 + moles: + - 16.36866 + - 61.57734 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 202.38438 + moles: + - 15.004604 + - 56.445892 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 197.84608 + moles: + - 14.66359 + - 55.163033 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 147.925 + moles: + - 10.912439 + - 41.05156 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 256.84375 + moles: + - 19.09677 + - 71.840225 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 138.84843 + moles: + - 10.230412 + - 38.485836 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 181.96211 + moles: + - 13.470042 + - 50.67302 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 192.74052 + moles: + - 14.27995 + - 53.719814 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 220.5375 + moles: + - 16.36866 + - 61.57734 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + type: GridAtmosphere +- uid: 1 + type: SubstationWallBasic + components: + - pos: -4.5,-0.5 + parent: 0 + type: Transform +- uid: 2 + type: Thruster + components: + - rot: 1.5707963267948966 rad + pos: -7.5,-4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 3 + type: WallShuttle + components: + - pos: -7.5,-3.5 + parent: 0 + type: Transform +- uid: 4 + type: AirlockGlassShuttle + components: + - rot: -1.5707963267948966 rad + pos: -7.5,7.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 5 + type: WallShuttle + components: + - pos: -7.5,-1.5 + parent: 0 + type: Transform +- uid: 6 + type: AirlockGlassShuttle + components: + - rot: -1.5707963267948966 rad + pos: -7.5,5.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 7 + type: WallShuttle + components: + - pos: -7.5,0.5 + parent: 0 + type: Transform +- uid: 8 + type: WallShuttle + components: + - pos: -4.5,0.5 + parent: 0 + type: Transform +- uid: 9 + type: WallShuttle + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform +- uid: 10 + type: WallShuttle + components: + - pos: 2.5,4.5 + parent: 0 + type: Transform +- uid: 11 + type: WallShuttle + components: + - pos: -7.5,4.5 + parent: 0 + type: Transform +- uid: 12 + type: AirlockGlassShuttle + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 13 + type: WallShuttle + components: + - pos: -7.5,6.5 + parent: 0 + type: Transform +- uid: 14 + type: AirlockGlassShuttle + components: + - rot: -1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 15 + type: WallShuttle + components: + - pos: -7.5,8.5 + parent: 0 + type: Transform +- uid: 16 + type: WallShuttle + components: + - pos: -7.5,9.5 + parent: 0 + type: Transform +- uid: 17 + type: WallShuttle + components: + - pos: -7.5,10.5 + parent: 0 + type: Transform +- uid: 18 + type: WallShuttle + components: + - pos: -6.5,10.5 + parent: 0 + type: Transform +- uid: 19 + type: WallShuttle + components: + - pos: -6.5,11.5 + parent: 0 + type: Transform +- uid: 20 + type: WallShuttle + components: + - pos: 1.5,11.5 + parent: 0 + type: Transform +- uid: 21 + type: ShuttleWindow + components: + - pos: 2.5,3.5 + parent: 0 + type: Transform +- uid: 22 + type: ShuttleWindow + components: + - pos: 1.5,13.5 + parent: 0 + type: Transform +- uid: 23 + type: ShuttleWindow + components: + - pos: 0.5,13.5 + parent: 0 + type: Transform +- uid: 24 + type: ShuttleWindow + components: + - pos: 0.5,14.5 + parent: 0 + type: Transform +- uid: 25 + type: ShuttleWindow + components: + - pos: -0.5,14.5 + parent: 0 + type: Transform +- uid: 26 + type: ShuttleWindow + components: + - pos: -1.5,14.5 + parent: 0 + type: Transform +- uid: 27 + type: ShuttleWindow + components: + - pos: -4.5,14.5 + parent: 0 + type: Transform +- uid: 28 + type: ShuttleWindow + components: + - pos: -5.5,14.5 + parent: 0 + type: Transform +- uid: 29 + type: ShuttleWindow + components: + - pos: -5.5,13.5 + parent: 0 + type: Transform +- uid: 30 + type: ShuttleWindow + components: + - pos: -6.5,13.5 + parent: 0 + type: Transform +- uid: 31 + type: ShuttleWindow + components: + - pos: -6.5,12.5 + parent: 0 + type: Transform +- uid: 32 + type: ShuttleWindow + components: + - pos: -3.5,14.5 + parent: 0 + type: Transform +- uid: 33 + type: ShuttleWindow + components: + - pos: -2.5,14.5 + parent: 0 + type: Transform +- uid: 34 + type: WallShuttle + components: + - pos: 1.5,10.5 + parent: 0 + type: Transform +- uid: 35 + type: WallShuttle + components: + - pos: 0.5,10.5 + parent: 0 + type: Transform +- uid: 36 + type: WallShuttle + components: + - pos: -0.5,10.5 + parent: 0 + type: Transform +- uid: 37 + type: WallShuttle + components: + - pos: -4.5,4.5 + parent: 0 + type: Transform +- uid: 38 + type: WallShuttle + components: + - pos: -4.5,-1.5 + parent: 0 + type: Transform +- uid: 39 + type: WallShuttle + components: + - pos: -4.5,10.5 + parent: 0 + type: Transform +- uid: 40 + type: WallShuttle + components: + - pos: -5.5,10.5 + parent: 0 + type: Transform +- uid: 41 + type: WallShuttle + components: + - pos: 2.5,0.5 + parent: 0 + type: Transform +- uid: 42 + type: WallShuttle + components: + - pos: -0.5,-0.5 + parent: 0 + type: Transform +- uid: 43 + type: CableApcExtension + components: + - pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 44 + type: CableApcExtension + components: + - pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 45 + type: CableApcExtension + components: + - pos: -6.5,2.5 + parent: 0 + type: Transform +- uid: 46 + type: CableApcExtension + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform +- uid: 47 + type: WallShuttle + components: + - pos: 2.5,10.5 + parent: 0 + type: Transform +- uid: 48 + type: WallShuttle + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 49 + type: WallShuttle + components: + - pos: -0.5,8.5 + parent: 0 + type: Transform +- uid: 50 + type: ShuttleWindow + components: + - pos: 1.5,12.5 + parent: 0 + type: Transform +- uid: 51 + type: WallShuttle + components: + - pos: -4.5,-5.5 + parent: 0 + type: Transform +- uid: 52 + type: WallShuttle + components: + - pos: -0.5,-3.5 + parent: 0 + type: Transform +- uid: 53 + type: WallShuttle + components: + - pos: 2.5,-1.5 + parent: 0 + type: Transform +- uid: 54 + type: ShuttleWindow + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 55 + type: WallShuttle + components: + - pos: -0.5,4.5 + parent: 0 + type: Transform +- uid: 56 + type: ShuttleWindow + components: + - pos: 2.5,2.5 + parent: 0 + type: Transform +- uid: 57 + type: AirlockMedicalGlassLocked + components: + - pos: -2.5,8.5 + parent: 0 + type: Transform +- uid: 58 + type: WallShuttle + components: + - pos: -1.5,8.5 + parent: 0 + type: Transform +- uid: 59 + type: WallShuttle + components: + - pos: -0.5,-2.5 + parent: 0 + type: Transform +- uid: 60 + type: ShuttleWindow + components: + - pos: -0.5,7.5 + parent: 0 + type: Transform +- uid: 61 + type: WallShuttle + components: + - pos: -0.5,0.5 + parent: 0 + type: Transform +- uid: 62 + type: ShuttleWindow + components: + - pos: -0.5,6.5 + parent: 0 + type: Transform +- uid: 63 + type: SMESBasic + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform + - containers: + - machine_parts + - machine_board + type: Construction +- uid: 64 + type: WallShuttle + components: + - pos: -0.5,-5.5 + parent: 0 + type: Transform +- uid: 65 + type: WindowReinforcedDirectional + components: + - rot: -1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 66 + type: WindowReinforcedDirectional + components: + - rot: 1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 67 + type: WallShuttle + components: + - pos: -1.5,-5.5 + parent: 0 + type: Transform +- uid: 68 + type: WallShuttle + components: + - pos: -2.5,-5.5 + parent: 0 + type: Transform +- uid: 69 + type: WallShuttle + components: + - pos: -3.5,-5.5 + parent: 0 + type: Transform +- uid: 70 + type: GasOutletInjector + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 71 + type: Thruster + components: + - rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 72 + type: Thruster + components: + - rot: -1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 73 + type: CableApcExtension + components: + - pos: -2.5,-4.5 + parent: 0 + type: Transform +- uid: 74 + type: CableApcExtension + components: + - pos: -2.5,-3.5 + parent: 0 + type: Transform +- uid: 75 + type: CableApcExtension + components: + - pos: -2.5,-2.5 + parent: 0 + type: Transform +- uid: 76 + type: CableApcExtension + components: + - pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 77 + type: CableApcExtension + components: + - pos: -5.5,1.5 + parent: 0 + type: Transform +- uid: 78 + type: ShuttleWindow + components: + - pos: -0.5,5.5 + parent: 0 + type: Transform +- uid: 79 + type: WallShuttle + components: + - pos: 2.5,9.5 + parent: 0 + type: Transform +- uid: 80 + type: WallShuttle + components: + - pos: 2.5,6.5 + parent: 0 + type: Transform +- uid: 81 + type: CableApcExtension + components: + - pos: -6.5,4.5 + parent: 0 + type: Transform +- uid: 82 + type: CableApcExtension + components: + - pos: -1.5,9.5 + parent: 0 + type: Transform +- uid: 83 + type: CableMV + components: + - pos: -4.5,-0.5 + parent: 0 + type: Transform +- uid: 84 + type: CableApcExtension + components: + - pos: 0.5,-4.5 + parent: 0 + type: Transform +- uid: 85 + type: WallShuttle + components: + - pos: -1.5,4.5 + parent: 0 + type: Transform +- uid: 86 + type: CableApcExtension + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 87 + type: CableMV + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 88 + type: PlasmaReinforcedWindowDirectional + components: + - rot: 3.141592653589793 rad + pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 89 + type: Thruster + components: + - rot: 1.5707963267948966 rad + pos: -7.5,11.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 90 + type: CableMV + components: + - pos: -1.5,8.5 + parent: 0 + type: Transform +- uid: 91 + type: CableMV + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 92 + type: CableApcExtension + components: + - pos: 1.5,2.5 + parent: 0 + type: Transform +- uid: 93 + type: CableApcExtension + components: + - pos: -6.5,-0.5 + parent: 0 + type: Transform +- uid: 94 + type: CableApcExtension + components: + - pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 95 + type: CableApcExtension + components: + - pos: -0.5,1.5 + parent: 0 + type: Transform +- uid: 96 + type: CableApcExtension + components: + - pos: -6.5,-1.5 + parent: 0 + type: Transform +- uid: 97 + type: WallShuttle + components: + - pos: 0.5,-3.5 + parent: 0 + type: Transform +- uid: 98 + type: WallShuttle + components: + - pos: -4.5,-3.5 + parent: 0 + type: Transform +- uid: 99 + type: AirlockGlassShuttle + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 100 + type: AirlockGlassShuttle + components: + - rot: 1.5707963267948966 rad + pos: 2.5,-2.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 101 + type: Grille + components: + - pos: 2.5,3.5 + parent: 0 + type: Transform +- uid: 102 + type: ShuttleWindow + components: + - pos: -4.5,7.5 + parent: 0 + type: Transform +- uid: 103 + type: CableApcExtension + components: + - pos: -2.5,3.5 + parent: 0 + type: Transform +- uid: 104 + type: CableApcExtension + components: + - pos: -2.5,5.5 + parent: 0 + type: Transform +- uid: 105 + type: CableApcExtension + components: + - pos: -2.5,6.5 + parent: 0 + type: Transform +- uid: 106 + type: CableApcExtension + components: + - pos: -2.5,7.5 + parent: 0 + type: Transform +- uid: 107 + type: CableApcExtension + components: + - pos: -2.5,8.5 + parent: 0 + type: Transform +- uid: 108 + type: CableApcExtension + components: + - pos: 1.5,-2.5 + parent: 0 + type: Transform +- uid: 109 + type: CableApcExtension + components: + - pos: 1.5,-1.5 + parent: 0 + type: Transform +- uid: 110 + type: CableApcExtension + components: + - pos: 1.5,-0.5 + parent: 0 + type: Transform +- uid: 111 + type: CableApcExtension + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform +- uid: 112 + type: CableApcExtension + components: + - pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 113 + type: CableApcExtension + components: + - pos: -4.5,1.5 + parent: 0 + type: Transform +- uid: 114 + type: CableApcExtension + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 115 + type: CableApcExtension + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 116 + type: CableApcExtension + components: + - pos: -6.5,-4.5 + parent: 0 + type: Transform +- uid: 117 + type: CableApcExtension + components: + - pos: -5.5,-4.5 + parent: 0 + type: Transform +- uid: 118 + type: CableHV + components: + - pos: -4.5,-0.5 + parent: 0 + type: Transform +- uid: 119 + type: CableHV + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 120 + type: CableHV + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 121 + type: CableHV + components: + - pos: -3.5,-2.5 + parent: 0 + type: Transform +- uid: 122 + type: GasPort + components: + - rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 0 + type: Transform +- uid: 123 + type: WindowReinforcedDirectional + components: + - rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 124 + type: Grille + components: + - pos: -0.5,7.5 + parent: 0 + type: Transform +- uid: 125 + type: Grille + components: + - pos: -0.5,6.5 + parent: 0 + type: Transform +- uid: 126 + type: Grille + components: + - pos: -0.5,5.5 + parent: 0 + type: Transform +- uid: 127 + type: Grille + components: + - pos: -4.5,7.5 + parent: 0 + type: Transform +- uid: 128 + type: CableMV + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 129 + type: CableMV + components: + - pos: -2.5,3.5 + parent: 0 + type: Transform +- uid: 130 + type: CableMV + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 131 + type: CableMV + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 132 + type: CableMV + components: + - pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 133 + type: CableApcExtension + components: + - pos: -6.5,0.5 + parent: 0 + type: Transform +- uid: 134 + type: APCHyperCapacity + components: + - pos: -1.5,8.5 + parent: 0 + type: Transform +- uid: 135 + type: Thruster + components: + - pos: -7.5,12.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 136 + type: CableApcExtension + components: + - pos: -2.5,-1.5 + parent: 0 + type: Transform +- uid: 137 + type: CableApcExtension + components: + - pos: 1.5,9.5 + parent: 0 + type: Transform +- uid: 138 + type: CableApcExtension + components: + - pos: 1.5,6.5 + parent: 0 + type: Transform +- uid: 139 + type: CableApcExtension + components: + - pos: 1.5,7.5 + parent: 0 + type: Transform +- uid: 140 + type: CableApcExtension + components: + - pos: -6.5,-2.5 + parent: 0 + type: Transform +- uid: 141 + type: WallShuttle + components: + - pos: -4.5,-0.5 + parent: 0 + type: Transform +- uid: 142 + type: CableApcExtension + components: + - pos: -6.5,3.5 + parent: 0 + type: Transform +- uid: 143 + type: WallShuttle + components: + - pos: 2.5,-3.5 + parent: 0 + type: Transform +- uid: 144 + type: WallShuttle + components: + - pos: 2.5,8.5 + parent: 0 + type: Transform +- uid: 145 + type: AirlockGlassShuttle + components: + - rot: 1.5707963267948966 rad + pos: 2.5,7.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 146 + type: ShuttleWindow + components: + - pos: -4.5,5.5 + parent: 0 + type: Transform +- uid: 147 + type: ShuttleWindow + components: + - pos: -7.5,1.5 + parent: 0 + type: Transform +- uid: 148 + type: WallShuttle + components: + - pos: -1.5,10.5 + parent: 0 + type: Transform +- uid: 149 + type: ShuttleWindow + components: + - pos: -4.5,6.5 + parent: 0 + type: Transform +- uid: 150 + type: CableApcExtension + components: + - pos: 0.5,9.5 + parent: 0 + type: Transform +- uid: 151 + type: CableApcExtension + components: + - pos: 1.5,8.5 + parent: 0 + type: Transform +- uid: 152 + type: AirlockGlassShuttle + components: + - rot: 1.5707963267948966 rad + pos: 2.5,5.5 + parent: 0 + type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures +- uid: 153 + type: WallShuttle + components: + - pos: 1.5,-3.5 + parent: 0 + type: Transform +- uid: 154 + type: WallShuttle + components: + - pos: -4.5,-2.5 + parent: 0 + type: Transform +- uid: 155 + type: Grille + components: + - pos: 2.5,1.5 + parent: 0 + type: Transform +- uid: 156 + type: Grille + components: + - pos: -6.5,12.5 + parent: 0 + type: Transform +- uid: 157 + type: Grille + components: + - pos: -6.5,13.5 + parent: 0 + type: Transform +- uid: 158 + type: Grille + components: + - pos: -5.5,13.5 + parent: 0 + type: Transform +- uid: 159 + type: Grille + components: + - pos: -5.5,14.5 + parent: 0 + type: Transform +- uid: 160 + type: Grille + components: + - pos: -4.5,14.5 + parent: 0 + type: Transform +- uid: 161 + type: Grille + components: + - pos: -3.5,14.5 + parent: 0 + type: Transform +- uid: 162 + type: Grille + components: + - pos: -2.5,14.5 + parent: 0 + type: Transform +- uid: 163 + type: Grille + components: + - pos: -1.5,14.5 + parent: 0 + type: Transform +- uid: 164 + type: Grille + components: + - pos: -0.5,14.5 + parent: 0 + type: Transform +- uid: 165 + type: Grille + components: + - pos: 0.5,14.5 + parent: 0 + type: Transform +- uid: 166 + type: Grille + components: + - pos: 0.5,13.5 + parent: 0 + type: Transform +- uid: 167 + type: Grille + components: + - pos: 1.5,13.5 + parent: 0 + type: Transform +- uid: 168 + type: Grille + components: + - pos: 1.5,12.5 + parent: 0 + type: Transform +- uid: 169 + type: Grille + components: + - pos: 2.5,2.5 + parent: 0 + type: Transform +- uid: 170 + type: WallShuttle + components: + - pos: -6.5,-3.5 + parent: 0 + type: Transform +- uid: 171 + type: Grille + components: + - pos: -7.5,1.5 + parent: 0 + type: Transform +- uid: 172 + type: Grille + components: + - pos: -7.5,2.5 + parent: 0 + type: Transform +- uid: 173 + type: Grille + components: + - pos: -7.5,3.5 + parent: 0 + type: Transform +- uid: 174 + type: CableMV + components: + - pos: -2.5,6.5 + parent: 0 + type: Transform +- uid: 175 + type: Thruster + components: + - rot: -1.5707963267948966 rad + pos: 2.5,11.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 176 + type: APCHyperCapacity + components: + - pos: -3.5,0.5 + parent: 0 + type: Transform +- uid: 177 + type: CableApcExtension + components: + - pos: -3.5,-4.5 + parent: 0 + type: Transform +- uid: 178 + type: CableApcExtension + components: + - pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 179 + type: CableApcExtension + components: + - pos: 1.5,-4.5 + parent: 0 + type: Transform +- uid: 180 + type: CableApcExtension + components: + - pos: -1.5,-4.5 + parent: 0 + type: Transform +- uid: 181 + type: Thruster + components: + - pos: 2.5,12.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 182 + type: WindowReinforcedDirectional + components: + - rot: 1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 183 + type: CableMV + components: + - pos: -2.5,5.5 + parent: 0 + type: Transform +- uid: 184 + type: CableApcExtension + components: + - pos: -0.5,9.5 + parent: 0 + type: Transform +- uid: 185 + type: CableApcExtension + components: + - pos: -6.5,1.5 + parent: 0 + type: Transform +- uid: 186 + type: WallShuttle + components: + - pos: -1.5,0.5 + parent: 0 + type: Transform +- uid: 187 + type: CableApcExtension + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 188 + type: CableApcExtension + components: + - pos: -1.5,8.5 + parent: 0 + type: Transform +- uid: 189 + type: Grille + components: + - pos: -4.5,6.5 + parent: 0 + type: Transform +- uid: 190 + type: Grille + components: + - pos: -4.5,5.5 + parent: 0 + type: Transform +- uid: 191 + type: CableMV + components: + - pos: -2.5,8.5 + parent: 0 + type: Transform +- uid: 192 + type: CableApcExtension + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 193 + type: WallShuttle + components: + - pos: -3.5,4.5 + parent: 0 + type: Transform +- uid: 194 + type: CableApcExtension + components: + - pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 195 + type: CableMV + components: + - pos: -2.5,7.5 + parent: 0 + type: Transform +- uid: 196 + type: WallShuttle + components: + - pos: -3.5,10.5 + parent: 0 + type: Transform +- uid: 197 + type: ShuttleWindow + components: + - pos: -7.5,2.5 + parent: 0 + type: Transform +- uid: 198 + type: ShuttleWindow + components: + - pos: -7.5,3.5 + parent: 0 + type: Transform +- uid: 199 + type: WallShuttle + components: + - pos: -4.5,8.5 + parent: 0 + type: Transform +- uid: 200 + type: WallShuttle + components: + - pos: -3.5,8.5 + parent: 0 + type: Transform +- uid: 201 + type: CableApcExtension + components: + - pos: -2.5,9.5 + parent: 0 + type: Transform +- uid: 202 + type: CableApcExtension + components: + - pos: -3.5,9.5 + parent: 0 + type: Transform +- uid: 203 + type: CableApcExtension + components: + - pos: -4.5,9.5 + parent: 0 + type: Transform +- uid: 204 + type: CableApcExtension + components: + - pos: -5.5,9.5 + parent: 0 + type: Transform +- uid: 205 + type: CableApcExtension + components: + - pos: -6.5,9.5 + parent: 0 + type: Transform +- uid: 206 + type: CableApcExtension + components: + - pos: -6.5,8.5 + parent: 0 + type: Transform +- uid: 207 + type: CableApcExtension + components: + - pos: -6.5,7.5 + parent: 0 + type: Transform +- uid: 208 + type: CableApcExtension + components: + - pos: -6.5,6.5 + parent: 0 + type: Transform +- uid: 209 + type: CableApcExtension + components: + - pos: -2.5,10.5 + parent: 0 + type: Transform +- uid: 210 + type: CableApcExtension + components: + - pos: -2.5,11.5 + parent: 0 + type: Transform +- uid: 211 + type: CableApcExtension + components: + - pos: -2.5,12.5 + parent: 0 + type: Transform +- uid: 212 + type: CableApcExtension + components: + - pos: -2.5,13.5 + parent: 0 + type: Transform +- uid: 213 + type: CableApcExtension + components: + - pos: -3.5,11.5 + parent: 0 + type: Transform +- uid: 214 + type: CableApcExtension + components: + - pos: -4.5,11.5 + parent: 0 + type: Transform +- uid: 215 + type: CableApcExtension + components: + - pos: -5.5,11.5 + parent: 0 + type: Transform +- uid: 216 + type: CableApcExtension + components: + - pos: -1.5,11.5 + parent: 0 + type: Transform +- uid: 217 + type: CableApcExtension + components: + - pos: -0.5,11.5 + parent: 0 + type: Transform +- uid: 218 + type: CableApcExtension + components: + - pos: 0.5,11.5 + parent: 0 + type: Transform +- uid: 219 + type: CableApcExtension + components: + - pos: -2.5,14.5 + parent: 0 + type: Transform +- uid: 220 + type: CableApcExtension + components: + - pos: -1.5,14.5 + parent: 0 + type: Transform +- uid: 221 + type: CableApcExtension + components: + - pos: -0.5,14.5 + parent: 0 + type: Transform +- uid: 222 + type: CableApcExtension + components: + - pos: 0.5,14.5 + parent: 0 + type: Transform +- uid: 223 + type: CableApcExtension + components: + - pos: 0.5,13.5 + parent: 0 + type: Transform +- uid: 224 + type: CableApcExtension + components: + - pos: 1.5,13.5 + parent: 0 + type: Transform +- uid: 225 + type: CableApcExtension + components: + - pos: 1.5,12.5 + parent: 0 + type: Transform +- uid: 226 + type: CableApcExtension + components: + - pos: -3.5,14.5 + parent: 0 + type: Transform +- uid: 227 + type: CableApcExtension + components: + - pos: -4.5,14.5 + parent: 0 + type: Transform +- uid: 228 + type: CableApcExtension + components: + - pos: -5.5,14.5 + parent: 0 + type: Transform +- uid: 229 + type: CableApcExtension + components: + - pos: -5.5,13.5 + parent: 0 + type: Transform +- uid: 230 + type: CableApcExtension + components: + - pos: -6.5,13.5 + parent: 0 + type: Transform +- uid: 231 + type: CableApcExtension + components: + - pos: -6.5,12.5 + parent: 0 + type: Transform +- uid: 232 + type: AirlockEngineeringLocked + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 233 + type: CableTerminal + components: + - rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 0 + type: Transform +- uid: 234 + type: CableHV + components: + - pos: -3.5,-4.5 + parent: 0 + type: Transform +- uid: 235 + type: CableHV + components: + - pos: -2.5,-4.5 + parent: 0 + type: Transform +- uid: 236 + type: CableHV + components: + - pos: -3.5,-3.5 + parent: 0 + type: Transform +- uid: 237 + type: CableHV + components: + - pos: -1.5,-4.5 + parent: 0 + type: Transform +- uid: 238 + type: GeneratorWallmountAPU + components: + - pos: -4.5,-3.5 + parent: 0 + type: Transform +- uid: 239 + type: GeneratorUranium + components: + - pos: -3.5,-4.5 + parent: 0 + type: Transform + - containers: + - machine_parts + - machine_board + type: Construction +- uid: 240 + type: GeneratorUranium + components: + - pos: -1.5,-4.5 + parent: 0 + type: Transform + - containers: + - machine_parts + - machine_board + type: Construction +- uid: 241 + type: CableHV + components: + - pos: -4.5,-3.5 + parent: 0 + type: Transform +- uid: 242 + type: GasVentPump + components: + - rot: 3.141592653589793 rad + pos: -5.5,-1.5 + parent: 0 + type: Transform +- uid: 243 + type: GasVentPump + components: + - rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 244 + type: GasVentPump + components: + - pos: 0.5,6.5 + parent: 0 + type: Transform +- uid: 245 + type: GasVentPump + components: + - pos: -5.5,6.5 + parent: 0 + type: Transform +- uid: 246 + type: GasVentPump + components: + - pos: -2.5,12.5 + parent: 0 + type: Transform +- uid: 247 + type: GasVentPump + components: + - rot: 1.5707963267948966 rad + pos: -3.5,6.5 + parent: 0 + type: Transform +- uid: 248 + type: GasPipeTJunction + components: + - rot: 1.5707963267948966 rad + pos: -5.5,2.5 + parent: 0 + type: Transform +- uid: 249 + type: GasPipeTJunction + components: + - rot: -1.5707963267948966 rad + pos: 0.5,2.5 + parent: 0 + type: Transform +- uid: 250 + type: GasPipeFourway + components: + - pos: -2.5,2.5 + parent: 0 + type: Transform +- uid: 251 + type: GasPipeTJunction + components: + - rot: -1.5707963267948966 rad + pos: -2.5,6.5 + parent: 0 + type: Transform +- uid: 252 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,3.5 + parent: 0 + type: Transform +- uid: 253 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,4.5 + parent: 0 + type: Transform +- uid: 254 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,5.5 + parent: 0 + type: Transform +- uid: 255 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,3.5 + parent: 0 + type: Transform +- uid: 256 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,4.5 + parent: 0 + type: Transform +- uid: 257 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,5.5 + parent: 0 + type: Transform +- uid: 258 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 259 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 0 + type: Transform +- uid: 260 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 0 + type: Transform +- uid: 261 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,-0.5 + parent: 0 + type: Transform +- uid: 262 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,0.5 + parent: 0 + type: Transform +- uid: 263 + type: GasPipeStraight + components: + - rot: 3.141592653589793 rad + pos: -5.5,1.5 + parent: 0 + type: Transform +- uid: 264 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: -4.5,2.5 + parent: 0 + type: Transform +- uid: 265 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: -3.5,2.5 + parent: 0 + type: Transform +- uid: 266 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: -1.5,2.5 + parent: 0 + type: Transform +- uid: 267 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: -0.5,2.5 + parent: 0 + type: Transform +- uid: 268 + type: GasPipeStraight + components: + - pos: -2.5,1.5 + parent: 0 + type: Transform +- uid: 269 + type: GasPipeStraight + components: + - pos: -2.5,0.5 + parent: 0 + type: Transform +- uid: 270 + type: GasPassiveVent + components: + - rot: 3.141592653589793 rad + pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 271 + type: GasPipeStraight + components: + - pos: -2.5,3.5 + parent: 0 + type: Transform +- uid: 272 + type: GasPipeStraight + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 273 + type: GasPipeStraight + components: + - pos: -2.5,5.5 + parent: 0 + type: Transform +- uid: 274 + type: GasPipeStraight + components: + - pos: -2.5,7.5 + parent: 0 + type: Transform +- uid: 275 + type: GasPipeStraight + components: + - pos: -2.5,8.5 + parent: 0 + type: Transform +- uid: 276 + type: GasPipeStraight + components: + - pos: -2.5,9.5 + parent: 0 + type: Transform +- uid: 277 + type: GasPipeStraight + components: + - pos: -2.5,10.5 + parent: 0 + type: Transform +- uid: 278 + type: GasPipeStraight + components: + - pos: -2.5,11.5 + parent: 0 + type: Transform +- uid: 279 + type: FirelockGlass + components: + - pos: -5.5,0.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 280 + type: FirelockGlass + components: + - pos: -6.5,0.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 281 + type: FirelockGlass + components: + - pos: 1.5,0.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 282 + type: FirelockGlass + components: + - pos: 0.5,0.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 283 + type: FirelockGlass + components: + - pos: 1.5,4.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 284 + type: FirelockGlass + components: + - pos: 0.5,4.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 285 + type: FirelockGlass + components: + - pos: -5.5,4.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 286 + type: FirelockGlass + components: + - pos: -6.5,4.5 + parent: 0 + type: Transform + - airBlocked: False + type: Airtight + - canCollide: False + type: Physics +- uid: 287 + type: ChairPilotSeat + components: + - pos: -1.5,3.5 + parent: 0 + type: Transform +- uid: 288 + type: ChairPilotSeat + components: + - pos: -0.5,3.5 + parent: 0 + type: Transform +- uid: 289 + type: ChairPilotSeat + components: + - pos: -4.5,3.5 + parent: 0 + type: Transform +- uid: 290 + type: ChairPilotSeat + components: + - pos: -3.5,3.5 + parent: 0 + type: Transform +- uid: 291 + type: GasPipeBend + components: + - rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 0 + type: Transform +- uid: 292 + type: Thruster + components: + - rot: 3.141592653589793 rad + pos: -6.5,-5.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 293 + type: WallShuttle + components: + - pos: -6.5,-4.5 + parent: 0 + type: Transform +- uid: 294 + type: WallShuttle + components: + - pos: 1.5,-4.5 + parent: 0 + type: Transform +- uid: 295 + type: PlasmaReinforcedWindowDirectional + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 0 + type: Transform +- uid: 296 + type: PlasmaReinforcedWindowDirectional + components: + - pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 297 + type: PlasmaReinforcedWindowDirectional + components: + - rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 0 + type: Transform +- uid: 298 + type: GasPipeBend + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 299 + type: GravityGeneratorMini + components: + - pos: -2.5,-4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 500 + type: ApcPowerReceiver + - radius: 2.5 + type: PointLight +- uid: 300 + type: AirCanister + components: + - pos: -1.5,-3.5 + parent: 0 + type: Transform +- uid: 301 + type: Table + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform +- uid: 302 + type: Table + components: + - pos: -3.5,-1.5 + parent: 0 + type: Transform +- uid: 303 + type: HolofanProjector + components: + - pos: -1.5318584,-0.42628574 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + cell_slot: !type:ContainerSlot {} + type: ContainerContainer +- uid: 304 + type: InflatableWallStack + components: + - pos: -1.3756084,-0.34816074 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 305 + type: Welder + components: + - pos: -3.4381084,-1.3950357 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 306 + type: ClothingHeadHatWelding + components: + - pos: -3.5006084,-1.3794107 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 307 + type: OxygenCanister + components: + - pos: -3.5,-3.5 + parent: 0 + type: Transform +- uid: 308 + type: Gyroscope + components: + - pos: -5.5,-4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 309 + type: Gyroscope + components: + - pos: 0.5,-4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 310 + type: ShuttleWindow + components: + - pos: 0.5,-5.5 + parent: 0 + type: Transform +- uid: 311 + type: ShuttleWindow + components: + - pos: -5.5,-5.5 + parent: 0 + type: Transform +- uid: 312 + type: Grille + components: + - pos: -5.5,-5.5 + parent: 0 + type: Transform +- uid: 313 + type: AirlockMedicalGlassLocked + components: + - pos: -2.5,4.5 + parent: 0 + type: Transform +- uid: 314 + type: Grille + components: + - pos: 0.5,-5.5 + parent: 0 + type: Transform +- uid: 315 + type: WallShuttle + components: + - pos: -5.5,-3.5 + parent: 0 + type: Transform +- uid: 316 + type: StasisBed + components: + - pos: -1.5,7.5 + parent: 0 + type: Transform +- uid: 317 + type: MedicalBed + components: + - pos: -1.5,6.5 + parent: 0 + type: Transform +- uid: 318 + type: MedicalBed + components: + - pos: -1.5,5.5 + parent: 0 + type: Transform +- uid: 319 + type: BedsheetMedical + components: + - pos: -1.5,5.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 320 + type: BedsheetMedical + components: + - pos: -1.5,6.5 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 321 + type: ClosetEmergencyFilledRandom + components: + - pos: 0.5,-2.5 + parent: 0 + type: Transform +- uid: 322 + type: ClosetEmergencyFilledRandom + components: + - pos: -5.5,-2.5 + parent: 0 + type: Transform +- uid: 323 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 0 + type: Transform +- uid: 324 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -5.5,-0.5 + parent: 0 + type: Transform +- uid: 325 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 0 + type: Transform +- uid: 326 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 0 + type: Transform +- uid: 327 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: 0.5,5.5 + parent: 0 + type: Transform +- uid: 328 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: 0.5,6.5 + parent: 0 + type: Transform +- uid: 329 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: 0.5,7.5 + parent: 0 + type: Transform +- uid: 330 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -5.5,5.5 + parent: 0 + type: Transform +- uid: 331 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -5.5,6.5 + parent: 0 + type: Transform +- uid: 332 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -5.5,7.5 + parent: 0 + type: Transform +- uid: 333 + type: ChairPilotSeat + components: + - rot: 3.141592653589793 rad + pos: -4.5,1.5 + parent: 0 + type: Transform +- uid: 334 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: -6.5,1.5 + parent: 0 + type: Transform +- uid: 335 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: -6.5,2.5 + parent: 0 + type: Transform +- uid: 336 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: -6.5,3.5 + parent: 0 + type: Transform +- uid: 337 + type: ChairPilotSeat + components: + - rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 0 + type: Transform +- uid: 338 + type: ChairPilotSeat + components: + - rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 0 + type: Transform +- uid: 339 + type: ChairPilotSeat + components: + - rot: 3.141592653589793 rad + pos: -3.5,1.5 + parent: 0 + type: Transform +- uid: 340 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 0 + type: Transform +- uid: 341 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: 1.5,2.5 + parent: 0 + type: Transform +- uid: 342 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 0 + type: Transform +- uid: 343 + type: Wrench + components: + - pos: -2.4213462,-2.5333743 + parent: 0 + type: Transform + - canCollide: False + type: Physics +- uid: 344 + type: ToolboxElectricalFilled + components: + - pos: -3.4993823,-1.5213687 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer +- uid: 345 + type: ClosetEmergencyFilledRandom + components: + - pos: -5.5,8.5 + parent: 0 + type: Transform +- uid: 346 + type: ClosetEmergencyFilledRandom + components: + - pos: 0.5,8.5 + parent: 0 + type: Transform +- uid: 347 + type: ClosetFireFilled + components: + - pos: -3.5,-0.5 + parent: 0 + type: Transform +- uid: 348 + type: LockerMedicineFilled + components: + - pos: -3.5,7.5 + parent: 0 + type: Transform +- uid: 349 + type: TableGlass + components: + - pos: -3.5,5.5 + parent: 0 + type: Transform +- uid: 350 + type: ChairOfficeLight + components: + - pos: -3.5,6.5 + parent: 0 + type: Transform +- uid: 351 + type: MedkitFilled + components: + - pos: -3.5306323,5.678626 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer +- uid: 352 + type: MedkitOxygenFilled + components: + - pos: -3.4212573,5.444251 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer +- uid: 353 + type: AirlockCommandGlassLocked + components: + - pos: -2.5,10.5 + parent: 0 + type: Transform +- uid: 354 + type: ComputerEmergencyShuttle + components: + - pos: -2.5,13.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 355 + type: WindowReinforcedDirectional + components: + - pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 356 + type: WindowReinforcedDirectional + components: + - rot: 3.141592653589793 rad + pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 357 + type: WindowReinforcedDirectional + components: + - rot: 3.141592653589793 rad + pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 358 + type: WindowReinforcedDirectional + components: + - pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 359 + type: Grille + components: + - pos: -4.5,-4.5 + parent: 0 + type: Transform +- uid: 360 + type: Grille + components: + - pos: -0.5,-4.5 + parent: 0 + type: Transform +- uid: 361 + type: VendingMachineWallMedical + components: + - pos: -3.5,4.5 + parent: 0 + type: Transform + - enabled: False + type: AmbientSound +- uid: 362 + type: ExtinguisherCabinetFilled + components: + - pos: -4.5,-1.5 + parent: 0 + type: Transform + - containers: + ItemCabinet: !type:ContainerSlot {} + type: ContainerContainer +- uid: 363 + type: ExtinguisherCabinetFilled + components: + - pos: -0.5,-1.5 + parent: 0 + type: Transform + - containers: + ItemCabinet: !type:ContainerSlot {} + type: ContainerContainer +- uid: 364 + type: ExtinguisherCabinetFilled + components: + - pos: -0.5,8.5 + parent: 0 + type: Transform + - containers: + ItemCabinet: !type:ContainerSlot {} + type: ContainerContainer +- uid: 365 + type: ExtinguisherCabinetFilled + components: + - pos: -4.5,8.5 + parent: 0 + type: Transform + - containers: + ItemCabinet: !type:ContainerSlot {} + type: ContainerContainer +- uid: 366 + type: ChairPilotSeat + components: + - rot: 3.141592653589793 rad + pos: -2.5,12.5 + parent: 0 + type: Transform +- uid: 367 + type: ComputerRadar + components: + - pos: -1.5,13.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 368 + type: ComputerComms + components: + - pos: -3.5,13.5 + parent: 0 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 369 + type: TableReinforced + components: + - pos: -4.5,13.5 + parent: 0 + type: Transform +- uid: 370 + type: TableReinforced + components: + - pos: -0.5,13.5 + parent: 0 + type: Transform +- uid: 371 + type: TableReinforced + components: + - pos: 0.5,12.5 + parent: 0 + type: Transform +- uid: 372 + type: TableReinforced + components: + - pos: 0.5,11.5 + parent: 0 + type: Transform +- uid: 373 + type: TableReinforced + components: + - pos: -5.5,11.5 + parent: 0 + type: Transform +- uid: 374 + type: TableReinforced + components: + - pos: -5.5,12.5 + parent: 0 + type: Transform +- uid: 375 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -4.5,11.5 + parent: 0 + type: Transform +- uid: 376 + type: ChairPilotSeat + components: + - rot: -1.5707963267948966 rad + pos: -4.5,12.5 + parent: 0 + type: Transform +- uid: 377 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: -0.5,11.5 + parent: 0 + type: Transform +- uid: 378 + type: ChairPilotSeat + components: + - rot: 1.5707963267948966 rad + pos: -0.5,12.5 + parent: 0 + type: Transform +- uid: 379 + type: ToolboxEmergencyFilled + components: + - pos: -6.515904,9.4287615 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer +- uid: 380 + type: PosterLegitNanotrasenLogo + components: + - pos: -7.5,9.5 + parent: 0 + type: Transform +- uid: 381 + type: PosterLegitNanotrasenLogo + components: + - pos: 2.5,9.5 + parent: 0 + type: Transform +- uid: 382 + type: Poweredlight + components: + - rot: 3.141592653589793 rad + pos: -3.5,11.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 383 + type: Poweredlight + components: + - pos: -1.5,-0.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 384 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 385 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 386 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: 1.5,6.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 387 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -6.5,6.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 388 + type: Poweredlight + components: + - pos: -1.5,7.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 389 + type: Poweredlight + components: + - rot: 3.141592653589793 rad + pos: -3.5,1.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 390 + type: Poweredlight + components: + - pos: -1.5,9.5 + parent: 0 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 391 + type: EmergencyLight + components: + - pos: -1.5,3.5 + parent: 0 + type: Transform +- uid: 392 + type: EmergencyLight + components: + - rot: 3.141592653589793 rad + pos: -3.5,9.5 + parent: 0 + type: Transform +- uid: 393 + type: ToolboxEmergencyFilled + components: + - pos: 1.494039,-2.6272569 + parent: 0 + type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer +- uid: 394 + type: WeaponCapacitorRecharger + components: + - pos: 0.5,12.5 + parent: 0 + type: Transform + - containers: + charger-slot: !type:ContainerSlot {} + type: ContainerContainer +... diff --git a/Resources/Maps/bagel.yml b/Resources/Maps/bagel.yml index 49f6ffdb4d4b..d247697ce827 100644 --- a/Resources/Maps/bagel.yml +++ b/Resources/Maps/bagel.yml @@ -106,7 +106,7 @@ grids: - ind: 2,-2 tiles: MQAAADEAAAAxAAAAJQAAADcAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAE0AAADNAAAAjQAAAA0AAAANAAAAjEAAAAxAAAAMQAAACUAAAA3AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAAzQAAAI0AAADNAAAAzQAAAIxAAAAMQAAADEAAAAlAAAAMQAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAAzQAAAI0AAAANAAAAzQAAAA0AAACMQAAADEAAAAxAAAAJQAAADcAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAM0AAADNAAAAzQAAAI0AAACNAAAADEAAAAxAAAAMQAAACUAAAA3AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAABNAAAAjQAAAM0AAAANAAAAjQAAAExAAAAMQAAADEAAAAlAAAANwAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAI0AAADNAAAADQAAAI0AAACJQAAACMAAAAjAAAAIwAAADcAAAA3AAAANAAAAjQAAAA0AAACNAAAAjcAAAA0AAAANAAAADQAAAA0AAABNAAAAjEAAAMxAAACMQAAAjEAAAI0AAAANAAAADQAAAM0AAAANAAAATQAAAE0AAAANAAAADQAAAI0AAADNwAAADcAAAAxAAABMQAAADEAAAExAAACNAAAADQAAAA0AAACNAAAAzQAAAA0AAADNAAAADQAAAM0AAABNAAAATcAAAA0AAACMQAAADEAAAExAAABMQAAAjQAAAI0AAADNAAAATQAAAE0AAABNAAAADQAAAA0AAABNAAAADQAAAE0AAACNAAAATQAAAM0AAADNAAAATcAAAA3AAAANwAAADQAAAA0AAAANAAAADcAAAA3AAAANAAAADQAAAI0AAAANAAAAjQAAAI0AAABNAAAATQAAAE0AAABNAAAATQAAAE0AAABNAAAATQAAAE0AAAANAAAADQAAAA0AAACNAAAAjQAAAA0AAAANAAAAzQAAAI0AAACNAAAAzQAAAM0AAADNAAAADQAAAM0AAAANAAAADQAAAA0AAAANAAAADQAAAE3AAAANAAAAzQAAAI0AAABNAAAADQAAAM3AAAANwAAADQAAAI0AAAANAAAAzcAAAA3AAAANAAAATQAAAE0AAACNAAAADQAAAA0AAADNAAAATQAAAM0AAACNAAAAzQAAAM0AAACNAAAADQAAAI0AAACNAAAAjQAAAM0AAAANAAAAzQAAAI0AAAANAAAADQAAAA0AAACNAAAADQAAAM0AAAANAAAADQAAAM0AAABNAAAADQAAAE0AAAANAAAATQAAAI0AAABNAAAAA== - ind: 3,-3 - tiles: NwAAADUAAAI1AAACNQAAATUAAAM1AAABNwAAADUAAAE3AAAAMgAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADUAAAM1AAABNwAAADUAAAE1AAACNQAAAygAAAA1AAACNQAAATUAAAAyAAAAMgAAADcAAAAAAAAANgAAAAAAAAA1AAADNQAAATcAAAA1AAAANQAAATUAAAEoAAAAKAAAACgAAAA1AAACMgAAADcAAAA3AAAAAAAAADYAAAA2AAAANQAAADUAAAA1AAABNQAAAzUAAAA1AAACKAAAACgAAAA3AAAANQAAADIAAAA3AAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAADYAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMwAAADMAAAAzAAAANwAAADIAAAAyAAAANwAAADIAAAAyAAAAMgAAADIAAAAyAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAAyAAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAAMgAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAAyAAAANwAAADcAAAAzAAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAA3AAAAMgAAADcAAAA3AAAAMwAAADcAAAAAAAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAADYAAAA2AAAANAAAATQAAAE0AAABNAAAAzQAAAA3AAAANgAAADYAAAA3AAAAMwAAADcAAAAzAAAANwAAAAAAAAA2AAAANgAAAA== + tiles: NwAAADUAAAI1AAACNQAAATUAAAM1AAABNwAAADUAAAE3AAAAMgAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADUAAAM1AAABNwAAADUAAAE1AAACNQAAAygAAAA1AAACNQAAATUAAAAyAAAAMgAAADcAAAAAAAAANgAAAAAAAAA1AAADNQAAATcAAAA1AAAANQAAATcAAAAoAAAAKAAAACgAAAA1AAACMgAAADcAAAA3AAAAAAAAADYAAAA2AAAANQAAADUAAAA1AAABNQAAAzUAAAA3AAAAKAAAACgAAAA3AAAANQAAADIAAAA3AAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAADYAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMwAAADMAAAAzAAAANwAAADIAAAAyAAAANwAAADIAAAAyAAAAMgAAADIAAAAyAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAAyAAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAAMgAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAAyAAAANwAAADcAAAAzAAAANwAAAAAAAAA2AAAANgAAADcAAAA3AAAAMgAAADIAAAAyAAAAMgAAADcAAAA3AAAAMgAAADcAAAA3AAAAMwAAADcAAAAAAAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAADYAAAA2AAAANAAAATQAAAE0AAABNAAAAzQAAAA3AAAANgAAADYAAAA3AAAAMwAAADcAAAAzAAAANwAAAAAAAAA2AAAANgAAAA== - ind: 3,-2 tiles: NAAAAzQAAAE0AAACNAAAATQAAAM3AAAAAAAAAAAAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADQAAAA0AAADNAAAAjQAAAM0AAACNwAAAAAAAAAAAAAANwAAADMAAAA3AAAANwAAADUAAAA3AAAANwAAADYAAAA0AAACNAAAAzQAAAI0AAADNAAAAzcAAAAAAAAAAAAAADcAAAAzAAAANwAAADcAAAA3AAAANQAAADcAAAA2AAAANAAAAzQAAAI0AAADNAAAATQAAAE3AAAANgAAAAAAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADQAAAE0AAAANAAAAjQAAAA0AAADNwAAAAAAAAAAAAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAA0AAACNAAAAzQAAAE0AAAANAAAAjcAAAAAAAAAAAAAADcAAAAzAAAANwAAADcAAAA1AAAANwAAADcAAAA2AAAANAAAAzQAAAE0AAACNAAAAjQAAAE3AAAANgAAADYAAAA3AAAAMwAAADcAAAA3AAAANQAAADUAAAA3AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAA0AAABNAAAATQAAAA0AAABNwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANwAAAAAAAAA2AAAANAAAADQAAAE0AAAANAAAAzcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADcAAAAAAAAANgAAADQAAAM0AAAANAAAAzQAAAE3AAAAMwAAADcAAAAzAAAAMwAAADMAAAAzAAAANwAAADYAAAA3AAAAAAAAADYAAAA0AAAANAAAAzQAAAE0AAABNwAAADMAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA2AAAANwAAAAAAAAA2AAAANAAAAjQAAAE3AAAANAAAATcAAAAzAAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANgAAADcAAAAAAAAANgAAADQAAAA0AAAANAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADYAAAA0AAAANAAAADQAAAAAAAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAAAAAAAAAAAAA2AAAANAAAADQAAAA0AAABAAAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAANgAAAA== - ind: 2,-1 @@ -307,9 +307,9 @@ entities: parent: 60 type: Transform - uid: 4 - type: WallSolid + type: WallSolidRust components: - - pos: -62.5,8.5 + - pos: -62.5,9.5 parent: 60 type: Transform - uid: 5 @@ -8268,6 +8268,16 @@ entities: color: '#A4610696' id: QuarterTileOverlayGreyscale180 coordinates: 41,16 + 1781: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + coordinates: 43,6 + 1782: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + coordinates: 41,6 -3,0: 1653: color: '#334E6DC8' @@ -10598,7 +10608,7 @@ entities: -20,-18: 0 -20,-17: 0 -19,-32: 0 - -19,-31: 0 + -19,-31: 5 -19,-30: 0 -19,-29: 0 -19,-28: 0 @@ -12363,7 +12373,7 @@ entities: 52,-35: 0 52,-34: 0 52,-33: 0 - 53,-42: 5 + 53,-42: 6 53,-41: 0 53,-40: 0 53,-39: 0 @@ -12373,7 +12383,7 @@ entities: 53,-35: 0 53,-34: 0 53,-33: 0 - 54,-42: 6 + 54,-42: 7 54,-41: 0 54,-40: 0 54,-39: 0 @@ -12383,7 +12393,7 @@ entities: 54,-35: 0 54,-34: 0 54,-33: 0 - 55,-42: 7 + 55,-42: 8 55,-41: 0 55,-40: 0 55,-39: 0 @@ -12393,7 +12403,7 @@ entities: 55,-35: 0 55,-34: 0 55,-33: 0 - 56,-42: 8 + 56,-42: 9 56,-41: 0 56,-40: 0 56,-39: 0 @@ -12403,7 +12413,7 @@ entities: 56,-35: 0 56,-34: 0 56,-33: 0 - 57,-42: 9 + 57,-42: 10 57,-41: 0 57,-40: 0 57,-39: 0 @@ -12413,7 +12423,7 @@ entities: 57,-35: 0 57,-34: 0 57,-33: 0 - 58,-42: 10 + 58,-42: 11 58,-41: 0 58,-40: 0 58,-39: 0 @@ -12423,7 +12433,7 @@ entities: 58,-35: 0 58,-34: 0 58,-33: 0 - 59,-42: 11 + 59,-42: 12 59,-41: 0 59,-40: 0 59,-39: 0 @@ -13547,8 +13557,8 @@ entities: -54,-10: 0 -54,-9: 0 -54,-8: 0 - -54,-7: 12 - -54,-6: 12 + -54,-7: 5 + -54,-6: 5 -54,-5: 0 -54,-3: 0 -54,-2: 0 @@ -16004,8 +16014,8 @@ entities: -32,42: 0 -32,43: 0 -32,44: 0 - -32,45: 12 - -32,46: 12 + -32,45: 5 + -32,46: 5 -32,47: 0 -31,34: 0 -31,35: 0 @@ -16018,8 +16028,8 @@ entities: -31,42: 0 -31,43: 0 -31,44: 0 - -31,45: 12 - -31,46: 12 + -31,45: 5 + -31,46: 5 -31,47: 0 -30,42: 0 -29,35: 0 @@ -16139,11 +16149,11 @@ entities: 18,19: 0 18,20: 0 -47,42: 0 - -46,42: 12 + -46,42: 5 -45,41: 0 - -45,42: 12 + -45,42: 5 -45,43: 0 - -44,42: 12 + -44,42: 5 -43,42: 0 -42,40: 0 -42,41: 0 @@ -16207,8 +16217,8 @@ entities: -33,42: 0 -33,43: 0 -33,44: 0 - -33,45: 12 - -33,46: 12 + -33,45: 5 + -33,46: 5 -33,47: 0 -32,48: 0 -32,49: 0 @@ -17727,9 +17737,9 @@ entities: -27,56: 0 -27,57: 0 -27,58: 0 - -27,59: 12 - -27,60: 12 - -27,61: 12 + -27,59: 5 + -27,60: 5 + -27,61: 5 -26,50: 0 -26,51: 0 -26,52: 0 @@ -17739,9 +17749,9 @@ entities: -26,56: 0 -26,57: 0 -26,58: 0 - -26,59: 12 - -26,60: 12 - -26,61: 12 + -26,59: 5 + -26,60: 5 + -26,61: 5 -25,50: 0 -25,51: 0 -25,52: 0 @@ -17751,9 +17761,9 @@ entities: -25,56: 0 -25,57: 0 -25,58: 0 - -25,59: 12 - -25,60: 12 - -25,61: 12 + -25,59: 5 + -25,60: 5 + -25,61: 5 -24,50: 0 -24,51: 0 -24,52: 0 @@ -20906,8 +20916,8 @@ entities: -56,-3: 0 -56,-1: 0 -55,-9: 0 - -55,-7: 12 - -55,-6: 12 + -55,-7: 5 + -55,-6: 5 -55,-5: 0 -55,-4: 0 -55,-3: 0 @@ -21005,8 +21015,8 @@ entities: -53,-11: 0 -53,-10: 0 -53,-9: 0 - -53,-7: 12 - -53,-6: 12 + -53,-7: 5 + -53,-6: 5 -53,-4: 0 -53,-3: 0 -53,-2: 0 @@ -21015,8 +21025,8 @@ entities: -52,-10: 0 -52,-9: 0 -52,-8: 0 - -52,-7: 12 - -52,-6: 12 + -52,-7: 5 + -52,-6: 5 -52,-4: 0 -52,-3: 0 -52,-2: 0 @@ -21760,38 +21770,38 @@ entities: -46,33: 0 -46,34: 13 -46,35: 0 - -46,36: 12 + -46,36: 5 -46,37: 0 - -46,38: 12 + -46,38: 5 -46,39: 0 -46,40: 18 -46,41: 0 -46,43: 0 - -46,44: 12 + -46,44: 5 -46,45: 0 -45,32: 20 -45,33: 0 -45,34: 13 -45,35: 0 - -45,36: 12 + -45,36: 5 -45,37: 0 - -45,38: 12 + -45,38: 5 -45,39: 0 -45,40: 18 - -45,44: 12 + -45,44: 5 -45,45: 0 -44,32: 20 -44,33: 0 -44,34: 13 -44,35: 0 - -44,36: 12 + -44,36: 5 -44,37: 0 - -44,38: 12 + -44,38: 5 -44,39: 0 -44,40: 18 -44,41: 0 -44,43: 0 - -44,44: 12 + -44,44: 5 -44,45: 0 -43,32: 0 -43,33: 0 @@ -22782,7 +22792,7 @@ entities: 51,31: 0 52,29: 0 52,30: 0 - 52,31: 11 + 52,31: 12 53,28: 0 53,29: 0 53,30: 0 @@ -22802,7 +22812,7 @@ entities: 54,28: 0 54,29: 0 54,30: 0 - 54,31: 11 + 54,31: 12 55,16: 0 55,17: 0 55,18: 0 @@ -23696,104 +23706,104 @@ entities: -34,80: 0 42,31: 0 56,31: 0 - -64,16: 12 - -64,17: 12 - -64,18: 12 - -80,17: 12 - -80,25: 12 - -79,17: 12 - -79,25: 12 - -78,16: 12 - -78,17: 12 - -78,25: 12 - -77,16: 12 - -77,17: 12 - -77,18: 12 - -77,20: 12 - -77,21: 12 - -77,22: 12 - -77,23: 12 - -77,24: 12 - -77,25: 12 - -76,16: 12 - -76,17: 12 - -76,18: 12 - -76,19: 12 - -76,20: 12 - -76,21: 12 - -76,22: 12 - -76,23: 12 - -76,25: 12 - -75,16: 12 - -75,17: 12 - -75,18: 12 - -75,19: 12 - -75,20: 12 - -75,21: 12 - -75,23: 12 - -75,25: 12 - -74,16: 12 - -74,17: 12 - -74,18: 12 - -74,19: 12 - -74,20: 12 - -74,21: 12 - -74,23: 12 - -74,25: 12 - -73,17: 12 - -73,18: 12 - -73,19: 12 - -73,20: 12 - -73,21: 12 - -73,23: 12 - -72,21: 12 - -72,23: 12 - -70,19: 12 - -69,16: 12 - -69,17: 12 - -69,18: 12 - -69,26: 12 - -68,16: 12 - -68,18: 12 - -68,26: 12 - -65,16: 12 - -65,17: 12 - -65,18: 12 - -80,12: 12 - -79,12: 12 - -78,12: 12 - -78,13: 12 - -78,14: 12 - -78,15: 12 - -77,12: 12 - -77,14: 12 - -76,12: 12 - -76,14: 12 - -76,15: 12 - -75,12: 12 - -75,14: 12 - -75,15: 12 - -74,12: 12 - -74,14: 12 - -74,15: 12 - -81,17: 12 - 59,-43: 12 - 60,-44: 12 + -64,16: 5 + -64,17: 5 + -64,18: 5 + -80,17: 5 + -80,25: 5 + -79,17: 5 + -79,25: 5 + -78,16: 5 + -78,17: 5 + -78,25: 5 + -77,16: 5 + -77,17: 5 + -77,18: 5 + -77,20: 5 + -77,21: 5 + -77,22: 5 + -77,23: 5 + -77,24: 5 + -77,25: 5 + -76,16: 5 + -76,17: 5 + -76,18: 5 + -76,19: 5 + -76,20: 5 + -76,21: 5 + -76,22: 5 + -76,23: 5 + -76,25: 5 + -75,16: 5 + -75,17: 5 + -75,18: 5 + -75,19: 5 + -75,20: 5 + -75,21: 5 + -75,23: 5 + -75,25: 5 + -74,16: 5 + -74,17: 5 + -74,18: 5 + -74,19: 5 + -74,20: 5 + -74,21: 5 + -74,23: 5 + -74,25: 5 + -73,17: 5 + -73,18: 5 + -73,19: 5 + -73,20: 5 + -73,21: 5 + -73,23: 5 + -72,21: 5 + -72,23: 5 + -70,19: 5 + -69,16: 5 + -69,17: 5 + -69,18: 5 + -69,26: 5 + -68,16: 5 + -68,18: 5 + -68,26: 5 + -65,16: 5 + -65,17: 5 + -65,18: 5 + -80,12: 5 + -79,12: 5 + -78,12: 5 + -78,13: 5 + -78,14: 5 + -78,15: 5 + -77,12: 5 + -77,14: 5 + -76,12: 5 + -76,14: 5 + -76,15: 5 + -75,12: 5 + -75,14: 5 + -75,15: 5 + -74,12: 5 + -74,14: 5 + -74,15: 5 + -81,17: 5 + 59,-43: 5 + 60,-44: 5 60,-43: 21 - -64,27: 12 - -64,28: 12 - -64,29: 12 - -63,29: 12 - -62,29: 12 - -56,29: 12 - -55,29: 12 - -54,29: 12 - -53,29: 12 - -52,29: 12 - -68,29: 12 - -67,29: 12 - -66,29: 12 - -65,29: 12 + -64,27: 5 + -64,28: 5 + -64,29: 5 + -63,29: 5 + -62,29: 5 + -56,29: 5 + -55,29: 5 + -54,29: 5 + -53,29: 5 + -52,29: 5 + -68,29: 5 + -67,29: 5 + -66,29: 5 + -65,29: 5 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -23809,8 +23819,8 @@ entities: - volume: 2500 temperature: 293.15 moles: - - 21.806602 - - 82.03437 + - 21.821884 + - 82.09186 - 0 - 0 - 0 @@ -23820,8 +23830,8 @@ entities: - volume: 2500 temperature: 293.15 moles: - - 21.8129 - - 82.05806 + - 21.822918 + - 82.09575 - 0 - 0 - 0 @@ -23831,8 +23841,8 @@ entities: - volume: 2500 temperature: 293.15 moles: - - 21.82003 - - 82.084885 + - 21.824085 + - 82.100136 - 0 - 0 - 0 @@ -23842,8 +23852,19 @@ entities: - volume: 2500 temperature: 293.15 moles: - - 21.823668 - - 82.09856 + - 21.82468 + - 82.10237 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 - 0 - 0 - 0 @@ -23927,17 +23948,6 @@ entities: - 0 - 0 - 0 - - volume: 2500 - temperature: 293.15 - moles: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - volume: 2500 temperature: 293.15 moles: @@ -29504,7 +29514,7 @@ entities: parent: 60 type: Transform - uid: 757 - type: WallSolid + type: WallSolidRust components: - pos: -14.5,-27.5 parent: 60 @@ -33176,17 +33186,19 @@ entities: parent: 60 type: Transform - uid: 1181 - type: WallSolid + type: WallSolidRust components: - pos: -18.5,-29.5 parent: 60 type: Transform - uid: 1182 - type: WallSolid + type: WeaponLaserCarbine components: - - pos: -18.5,-30.5 + - pos: -28.425081,0.9612086 parent: 60 type: Transform + - canCollide: False + type: Physics - uid: 1183 type: WallSolid components: @@ -34388,10 +34400,9 @@ entities: parent: 60 type: Transform - uid: 1333 - type: WindowReinforcedDirectional + type: ShuttleWindow components: - - rot: -1.5707963267948966 rad - pos: -25.5,-62.5 + - pos: -26.5,-63.5 parent: 60 type: Transform - uid: 1334 @@ -35624,13 +35635,13 @@ entities: parent: 60 type: Transform - uid: 1493 - type: WallSolid + type: WallSolidRust components: - pos: -14.5,-28.5 parent: 60 type: Transform - uid: 1494 - type: WallSolid + type: WallSolidRust components: - pos: -14.5,-30.5 parent: 60 @@ -35875,9 +35886,9 @@ entities: ents: [] type: ContainerContainer - uid: 1525 - type: WallSolid + type: WallSolidRust components: - - pos: -59.5,-15.5 + - pos: -60.5,-14.5 parent: 60 type: Transform - uid: 1526 @@ -40219,7 +40230,7 @@ entities: parent: 60 type: Transform - uid: 2073 - type: WallSolid + type: WallSolidRust components: - pos: 8.5,-38.5 parent: 60 @@ -45472,10 +45483,9 @@ entities: parent: 60 type: Transform - uid: 2690 - type: WallSolid + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: -13.5,-47.5 + - pos: -12.5,-47.5 parent: 60 type: Transform - uid: 2691 @@ -49322,10 +49332,9 @@ entities: parent: 60 type: Transform - uid: 3174 - type: WallSolid + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 43.5,-38.5 + - pos: 42.5,-39.5 parent: 60 type: Transform - uid: 3175 @@ -49336,10 +49345,9 @@ entities: parent: 60 type: Transform - uid: 3176 - type: WallSolid + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 42.5,-39.5 + - pos: 43.5,-38.5 parent: 60 type: Transform - uid: 3177 @@ -49742,10 +49750,9 @@ entities: Toggle: [] type: SignalReceiver - uid: 3226 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 14.5,-42.5 + - pos: 16.5,-42.5 parent: 60 type: Transform - uid: 3227 @@ -49770,17 +49777,15 @@ entities: parent: 60 type: Transform - uid: 3230 - type: WallSolid + type: Bed components: - - rot: -1.5707963267948966 rad - pos: 12.5,-44.5 + - pos: 48.5,-34.5 parent: 60 type: Transform - uid: 3231 - type: WallSolid + type: BedsheetSpawner components: - - rot: -1.5707963267948966 rad - pos: 12.5,-45.5 + - pos: 48.5,-34.5 parent: 60 type: Transform - uid: 3232 @@ -50191,16 +50196,15 @@ entities: parent: 60 type: Transform - uid: 3294 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 15.5,-47.5 + - pos: 15.5,-47.5 parent: 60 type: Transform - uid: 3295 - type: WallSolid + type: WallSolidRust components: - - pos: 16.5,-47.5 + - pos: 14.5,-47.5 parent: 60 type: Transform - uid: 3296 @@ -50303,7 +50307,7 @@ entities: parent: 60 type: Transform - uid: 3312 - type: WallSolid + type: WallSolidRust components: - pos: 43.5,-43.5 parent: 60 @@ -50570,9 +50574,9 @@ entities: parent: 60 type: Transform - uid: 3352 - type: WallSolid + type: WallSolidRust components: - - pos: -62.5,9.5 + - pos: -62.5,8.5 parent: 60 type: Transform - uid: 3353 @@ -50790,9 +50794,9 @@ entities: parent: 60 type: Transform - uid: 3386 - type: WallSolid + type: WallSolidRust components: - - pos: -58.5,-15.5 + - pos: -59.5,-15.5 parent: 60 type: Transform - uid: 3387 @@ -50848,9 +50852,9 @@ entities: parent: 60 type: Transform - uid: 3394 - type: WallSolid + type: WallSolidRust components: - - pos: -53.5,-19.5 + - pos: -53.5,-20.5 parent: 60 type: Transform - uid: 3395 @@ -51058,9 +51062,9 @@ entities: parent: 60 type: Transform - uid: 3425 - type: WallSolid + type: WallSolidRust components: - - pos: 59.5,-28.5 + - pos: 59.5,-25.5 parent: 60 type: Transform - uid: 3426 @@ -51112,9 +51116,9 @@ entities: parent: 60 type: Transform - uid: 3434 - type: WallSolid + type: WallSolidRust components: - - pos: 59.5,-25.5 + - pos: 59.5,-28.5 parent: 60 type: Transform - uid: 3435 @@ -51317,7 +51321,7 @@ entities: parent: 60 type: Transform - uid: 3463 - type: WallSolid + type: WallSolidRust components: - pos: 47.5,-36.5 parent: 60 @@ -51485,13 +51489,13 @@ entities: parent: 60 type: Transform - uid: 3489 - type: WallSolid + type: WallSolidRust components: - pos: 55.5,-18.5 parent: 60 type: Transform - uid: 3490 - type: WallSolid + type: WallSolidRust components: - pos: 55.5,-19.5 parent: 60 @@ -51537,7 +51541,7 @@ entities: parent: 60 type: Transform - uid: 3496 - type: WallSolid + type: WallSolidRust components: - pos: 56.5,-22.5 parent: 60 @@ -51634,10 +51638,9 @@ entities: parent: 60 type: Transform - uid: 3511 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 46.5,-39.5 + - pos: 46.5,-38.5 parent: 60 type: Transform - uid: 3512 @@ -51653,7 +51656,7 @@ entities: parent: 60 type: Transform - uid: 3514 - type: WallSolid + type: WallSolidRust components: - pos: 57.5,-35.5 parent: 60 @@ -51733,11 +51736,19 @@ entities: - enabled: False type: AmbientSound - uid: 3526 - type: MaintenanceWeaponSpawner + type: PoweredlightSodium components: - - pos: 47.5,-34.5 + - rot: 1.5707963267948966 rad + pos: 47.5,-37.5 parent: 60 type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 3527 type: PoweredSmallLight components: @@ -51781,19 +51792,11 @@ entities: ents: [] type: ContainerContainer - uid: 3531 - type: PoweredlightSodium + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 47.5,-35.5 + - pos: 20.5,-50.5 parent: 60 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 3532 type: PoweredlightSodium components: @@ -52334,10 +52337,9 @@ entities: - canCollide: False type: Physics - uid: 3599 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 15.5,-50.5 + - pos: 12.5,-44.5 parent: 60 type: Transform - uid: 3600 @@ -52427,31 +52429,27 @@ entities: - canCollide: False type: Physics - uid: 3611 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 19.5,-45.5 + - pos: 10.5,-42.5 parent: 60 type: Transform - uid: 3612 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 18.5,-45.5 + - pos: 14.5,-42.5 parent: 60 type: Transform - uid: 3613 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 17.5,-45.5 + - pos: 16.5,-45.5 parent: 60 type: Transform - uid: 3614 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 16.5,-45.5 + - pos: 15.5,-42.5 parent: 60 type: Transform - uid: 3615 @@ -52462,10 +52460,9 @@ entities: parent: 60 type: Transform - uid: 3616 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 17.5,-43.5 + - pos: 16.5,-47.5 parent: 60 type: Transform - uid: 3617 @@ -52535,16 +52532,15 @@ entities: parent: 60 type: Transform - uid: 3626 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 14.5,-47.5 + - pos: 15.5,-50.5 parent: 60 type: Transform - uid: 3627 - type: WallSolid + type: WallSolidRust components: - - pos: 20.5,-50.5 + - pos: 12.5,-45.5 parent: 60 type: Transform - uid: 3628 @@ -52554,9 +52550,9 @@ entities: parent: 60 type: Transform - uid: 3629 - type: WallSolid + type: WallSolidRust components: - - pos: 20.5,-47.5 + - pos: 10.5,-47.5 parent: 60 type: Transform - uid: 3630 @@ -52573,24 +52569,33 @@ entities: parent: 60 type: Transform - uid: 3632 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 10.5,-47.5 + - pos: 20.5,-47.5 parent: 60 type: Transform - uid: 3633 - type: WallSolid + type: PoweredSmallLight components: - - rot: -1.5707963267948966 rad - pos: 15.5,-42.5 + - pos: 48.5,-34.5 parent: 60 type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 3634 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 16.5,-42.5 + - pos: 57.5,-43.5 parent: 60 type: Transform - uid: 3635 @@ -52719,9 +52724,9 @@ entities: parent: 60 type: Transform - uid: 3655 - type: WallSolid + type: WallSolidRust components: - - pos: 50.5,-43.5 + - pos: 8.5,-42.5 parent: 60 type: Transform - uid: 3656 @@ -52848,10 +52853,9 @@ entities: parent: 60 type: Transform - uid: 3676 - type: WallSolid + type: LockerBoozeFilled components: - - rot: -1.5707963267948966 rad - pos: 8.5,-42.5 + - pos: 47.5,-34.5 parent: 60 type: Transform - uid: 3677 @@ -52875,10 +52879,9 @@ entities: parent: 60 type: Transform - uid: 3680 - type: WallSolid + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 10.5,-42.5 + - pos: -10.5,-49.5 parent: 60 type: Transform - uid: 3681 @@ -53209,7 +53212,7 @@ entities: - pos: 48.5,-39.5 parent: 60 type: Transform - - SecondsUntilStateChange: -1533.4883 + - SecondsUntilStateChange: -4389.4155 state: Opening type: Door - uid: 3729 @@ -54104,10 +54107,9 @@ entities: parent: 60 type: Transform - uid: 3850 - type: WallSolid + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: -12.5,-47.5 + - pos: -17.5,-36.5 parent: 60 type: Transform - uid: 3851 @@ -54251,9 +54253,9 @@ entities: parent: 60 type: Transform - uid: 3871 - type: WallSolid + type: WallSolidRust components: - - pos: -17.5,-36.5 + - pos: -38.5,-30.5 parent: 60 type: Transform - uid: 3872 @@ -55830,9 +55832,9 @@ entities: - canCollide: False type: Physics - uid: 4055 - type: WallSolid + type: WallSolidRust components: - - pos: -38.5,-30.5 + - pos: -62.5,0.5 parent: 60 type: Transform - uid: 4056 @@ -57031,9 +57033,9 @@ entities: parent: 60 type: Transform - uid: 4222 - type: WallSolid + type: WallSolidRust components: - - pos: -62.5,0.5 + - pos: -58.5,-7.5 parent: 60 type: Transform - uid: 4223 @@ -57681,9 +57683,9 @@ entities: parent: 60 type: Transform - uid: 4310 - type: WallSolid + type: WallSolidRust components: - - pos: -58.5,-7.5 + - pos: -44.5,-24.5 parent: 60 type: Transform - uid: 4311 @@ -57984,11 +57986,14 @@ entities: parent: 60 type: Transform - uid: 4345 - type: WallSolid + type: PottedPlant2 components: - - pos: -44.5,-24.5 + - pos: -22.5,-29.5 parent: 60 type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer - uid: 4346 type: WallReinforced components: @@ -58032,14 +58037,11 @@ entities: parent: 60 type: Transform - uid: 4351 - type: PottedPlantRandom + type: WallSolidRust components: - - pos: -22.5,-26.5 + - pos: -38.5,-35.5 parent: 60 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer - uid: 4352 type: WallReinforced components: @@ -58890,9 +58892,9 @@ entities: parent: 60 type: Transform - uid: 4482 - type: WallSolid + type: WallSolidRust components: - - pos: -27.5,-33.5 + - pos: -34.5,-33.5 parent: 60 type: Transform - uid: 4483 @@ -59156,9 +59158,9 @@ entities: - color: '#0335FCFF' type: AtmosPipeColor - uid: 4517 - type: WallSolid + type: WallSolidRust components: - - pos: -28.5,-33.5 + - pos: -35.5,-33.5 parent: 60 type: Transform - uid: 4518 @@ -59399,7 +59401,7 @@ entities: Toggle: [] type: SignalReceiver - uid: 4538 - type: WallSolid + type: WallSolidRust components: - pos: -29.5,-33.5 parent: 60 @@ -59742,9 +59744,9 @@ entities: parent: 60 type: Transform - uid: 4570 - type: WallSolid + type: WallSolidRust components: - - pos: -34.5,-33.5 + - pos: -28.5,-33.5 parent: 60 type: Transform - uid: 4571 @@ -60009,9 +60011,9 @@ entities: parent: 60 type: Transform - uid: 4604 - type: WallSolid + type: WallSolidRust components: - - pos: -35.5,-33.5 + - pos: -27.5,-33.5 parent: 60 type: Transform - uid: 4605 @@ -60021,9 +60023,9 @@ entities: parent: 60 type: Transform - uid: 4606 - type: WallSolid + type: WallSolidRust components: - - pos: -38.5,-35.5 + - pos: -13.5,-47.5 parent: 60 type: Transform - uid: 4607 @@ -61414,9 +61416,9 @@ entities: parent: 60 type: Transform - uid: 4833 - type: WallSolid + type: Grille components: - - pos: -10.5,-49.5 + - pos: -20.5,-65.5 parent: 60 type: Transform - uid: 4834 @@ -62722,10 +62724,9 @@ entities: Toggle: [] type: SignalReceiver - uid: 4971 - type: ReinforcedWindow + type: ShuttleWindow components: - - rot: -1.5707963267948966 rad - pos: -13.5,-59.5 + - pos: -15.5,-59.5 parent: 60 type: Transform - uid: 4972 @@ -62747,9 +62748,9 @@ entities: parent: 60 type: Transform - uid: 4975 - type: WallShuttle + type: ShuttleWindow components: - - pos: -15.5,-59.5 + - pos: -11.5,-59.5 parent: 60 type: Transform - uid: 4976 @@ -62777,9 +62778,9 @@ entities: parent: 60 type: Transform - uid: 4980 - type: WallShuttle + type: ShuttleWindow components: - - pos: -11.5,-59.5 + - pos: -11.5,-65.5 parent: 60 type: Transform - uid: 4981 @@ -62875,27 +62876,25 @@ entities: - uid: 4995 type: WallShuttle components: - - pos: -11.5,-65.5 + - pos: -13.5,-59.5 parent: 60 type: Transform - uid: 4996 - type: Grille + type: WallShuttle components: - - rot: -1.5707963267948966 rad - pos: -13.5,-59.5 + - pos: -13.5,-65.5 parent: 60 type: Transform - uid: 4997 - type: Grille + type: ShuttleWindow components: - - rot: -1.5707963267948966 rad - pos: -13.5,-65.5 + - pos: -15.5,-65.5 parent: 60 type: Transform - uid: 4998 type: WallShuttle components: - - pos: -15.5,-65.5 + - pos: -19.5,-59.5 parent: 60 type: Transform - uid: 4999 @@ -62925,25 +62924,25 @@ entities: - uid: 5003 type: WallShuttle components: - - pos: -20.5,-65.5 + - pos: -21.5,-59.5 parent: 60 type: Transform - uid: 5004 - type: WallShuttle + type: ShuttleWindow components: - - pos: -19.5,-65.5 + - pos: -20.5,-65.5 parent: 60 type: Transform - uid: 5005 type: WallShuttle components: - - pos: -20.5,-59.5 + - pos: -19.5,-65.5 parent: 60 type: Transform - uid: 5006 - type: WallShuttle + type: Grille components: - - pos: -19.5,-59.5 + - pos: -20.5,-59.5 parent: 60 type: Transform - uid: 5007 @@ -62980,10 +62979,9 @@ entities: - enabled: False type: AmbientSound - uid: 5012 - type: ReinforcedWindow + type: ShuttleWindow components: - - rot: -1.5707963267948966 rad - pos: -13.5,-65.5 + - pos: -20.5,-59.5 parent: 60 type: Transform - uid: 5013 @@ -63514,9 +63512,9 @@ entities: parent: 60 type: Transform - uid: 5067 - type: WallShuttle + type: Grille components: - - pos: -21.5,-59.5 + - pos: -15.5,-59.5 parent: 60 type: Transform - uid: 5068 @@ -63526,10 +63524,9 @@ entities: parent: 60 type: Transform - uid: 5069 - type: ReinforcedWindow + type: ShuttleWindow components: - - rot: 3.141592653589793 rad - pos: -25.5,-61.5 + - pos: -24.5,-60.5 parent: 60 type: Transform - uid: 5070 @@ -63547,17 +63544,15 @@ entities: parent: 60 type: Transform - uid: 5072 - type: ReinforcedWindow + type: ShuttleWindow components: - - rot: 3.141592653589793 rad - pos: -24.5,-64.5 + - pos: -25.5,-60.5 parent: 60 type: Transform - uid: 5073 - type: ReinforcedWindow + type: Grille components: - - rot: 3.141592653589793 rad - pos: -25.5,-64.5 + - pos: -15.5,-65.5 parent: 60 type: Transform - uid: 5074 @@ -63568,10 +63563,9 @@ entities: parent: 60 type: Transform - uid: 5075 - type: ReinforcedWindow + type: Grille components: - - rot: 3.141592653589793 rad - pos: -25.5,-63.5 + - pos: -11.5,-65.5 parent: 60 type: Transform - uid: 5076 @@ -63582,40 +63576,41 @@ entities: parent: 60 type: Transform - uid: 5077 - type: ReinforcedWindow + type: Grille components: - - rot: 3.141592653589793 rad - pos: -25.5,-60.5 + - pos: -11.5,-59.5 parent: 60 type: Transform - uid: 5078 - type: ReinforcedWindow + type: VendingMachineClothing components: - - rot: 3.141592653589793 rad - pos: -24.5,-60.5 + - pos: -18.5,-60.5 parent: 60 type: Transform + - enabled: False + type: AmbientSound - uid: 5079 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 3.141592653589793 rad - pos: -26.5,-63.5 + - pos: 54.5,-9.5 parent: 60 type: Transform - uid: 5080 - type: ReinforcedWindow + type: ShuttleWindow components: - - rot: 3.141592653589793 rad - pos: -26.5,-62.5 + - pos: -25.5,-64.5 parent: 60 type: Transform - uid: 5081 - type: ReinforcedWindow + type: WallmountTelescreen components: - - rot: 3.141592653589793 rad - pos: -26.5,-61.5 + - pos: -25.5,-28.5 parent: 60 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 5082 type: Grille components: @@ -63917,9 +63912,9 @@ entities: parent: 60 type: Transform - uid: 5127 - type: TableReinforced + type: WallSolidRust components: - - pos: -18.5,-60.5 + - pos: -58.5,-15.5 parent: 60 type: Transform - uid: 5128 @@ -70030,9 +70025,9 @@ entities: Toggle: [] type: SignalReceiver - uid: 5881 - type: WallSolid + type: WallSolidRust components: - - pos: 54.5,-9.5 + - pos: 53.5,-45.5 parent: 60 type: Transform - uid: 5882 @@ -72331,10 +72326,9 @@ entities: parent: 60 type: Transform - uid: 6147 - type: WindowReinforcedDirectional + type: ShuttleWindow components: - - rot: -1.5707963267948966 rad - pos: -24.5,-63.5 + - pos: -25.5,-63.5 parent: 60 type: Transform - uid: 6148 @@ -74733,15 +74727,11 @@ entities: parent: 60 type: Transform - uid: 6457 - type: ComputerTelevision + type: ShuttleWindow components: - - pos: -25.5,-28.5 + - pos: -26.5,-62.5 parent: 60 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - uid: 6458 type: WallSolid components: @@ -75721,9 +75711,9 @@ entities: parent: 60 type: Transform - uid: 6594 - type: WallSolid + type: ShuttleWindow components: - - pos: -60.5,-14.5 + - pos: -24.5,-64.5 parent: 60 type: Transform - uid: 6595 @@ -75753,9 +75743,9 @@ entities: parent: 60 type: Transform - uid: 6599 - type: WallSolid + type: ShuttleWindow components: - - pos: 57.5,-43.5 + - pos: -26.5,-61.5 parent: 60 type: Transform - uid: 6600 @@ -76238,16 +76228,15 @@ entities: parent: 60 type: Transform - uid: 6666 - type: WindowReinforcedDirectional + type: ShuttleWindow components: - - pos: -25.5,-62.5 + - pos: -25.5,-61.5 parent: 60 type: Transform - uid: 6667 - type: WindowReinforcedDirectional + type: WallSolidRust components: - - rot: 3.141592653589793 rad - pos: -25.5,-62.5 + - pos: 46.5,-39.5 parent: 60 type: Transform - uid: 6668 @@ -77021,23 +77010,21 @@ entities: - color: '#FF1212FF' type: AtmosPipeColor - uid: 6764 - type: WindowReinforcedDirectional + type: WallSolidRust components: - - pos: -24.5,-63.5 + - pos: 50.5,-43.5 parent: 60 type: Transform - uid: 6765 - type: WindowReinforcedDirectional + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: -24.5,-61.5 + - pos: 53.5,-44.5 parent: 60 type: Transform - uid: 6766 - type: WindowReinforcedDirectional + type: WallSolidRust components: - - rot: 3.141592653589793 rad - pos: -24.5,-61.5 + - pos: -64.5,5.5 parent: 60 type: Transform - uid: 6767 @@ -79295,9 +79282,9 @@ entities: parent: 60 type: Transform - uid: 7073 - type: WallSolid + type: WallSolidRust components: - - pos: 46.5,-38.5 + - pos: -63.5,5.5 parent: 60 type: Transform - uid: 7074 @@ -84800,19 +84787,29 @@ entities: parent: 60 type: Transform - uid: 7835 - type: WallSolid + type: Autolathe components: - - rot: 3.141592653589793 rad - pos: 53.5,-45.5 + - pos: -41.5,-7.5 parent: 60 type: Transform + - containers: + - machine_parts + - machine_board + type: Construction + - containers: + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] + type: ContainerContainer - uid: 7836 - type: WallSolid + type: PersonalAI components: - - rot: 3.141592653589793 rad - pos: 53.5,-44.5 + - pos: 21.509922,1.5610104 parent: 60 type: Transform + - canCollide: False + type: Physics - uid: 7837 type: WallSolid components: @@ -84834,9 +84831,9 @@ entities: parent: 60 type: Transform - uid: 7840 - type: WallSolid + type: WallSolidRust components: - - pos: -63.5,5.5 + - pos: 53.5,-5.5 parent: 60 type: Transform - uid: 7841 @@ -86000,9 +85997,9 @@ entities: parent: 60 type: Transform - uid: 7997 - type: WallSolid + type: WallSolidRust components: - - pos: -64.5,5.5 + - pos: -53.5,-19.5 parent: 60 type: Transform - uid: 7998 @@ -96616,21 +96613,11 @@ entities: ents: [] type: ContainerContainer - uid: 9475 - type: Protolathe + type: WallSolidRust components: - - pos: -41.5,-7.5 + - pos: -54.5,-22.5 parent: 60 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer - uid: 9476 type: Table components: @@ -97729,20 +97716,13 @@ entities: - canCollide: False type: Physics - uid: 9618 - type: Autolathe + type: PottedPlant28 components: - - pos: -38.5,14.5 + - pos: -1.5,21.5 parent: 60 type: Transform - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] + stash: !type:ContainerSlot {} type: ContainerContainer - uid: 9619 type: Table @@ -112056,11 +112036,15 @@ entities: parent: 60 type: Transform - uid: 11885 - type: WallSolid + type: WallmountTelevision components: - - pos: 53.5,-5.5 + - pos: 33.5,10.5 parent: 60 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 11886 type: Table components: @@ -118546,11 +118530,15 @@ entities: parent: 60 type: Transform - uid: 12905 - type: WallSolid + type: WallmountTelevision components: - - pos: -53.5,-20.5 + - pos: 26.5,-21.5 parent: 60 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 12906 type: WallSolid components: @@ -118564,9 +118552,9 @@ entities: parent: 60 type: Transform - uid: 12908 - type: WallSolid + type: WallSolidRust components: - - pos: -54.5,-22.5 + - pos: -53.5,22.5 parent: 60 type: Transform - uid: 12909 @@ -141537,46 +141525,23 @@ entities: - canCollide: False type: Physics - uid: 16079 - type: PottedPlantRandom + type: WallSolidRust components: - - pos: -1.5,21.5 + - pos: -56.5,25.5 parent: 60 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer - uid: 16080 - type: Autolathe + type: WallSolidRust components: - - pos: -4.5,18.5 + - pos: -56.5,23.5 parent: 60 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer - uid: 16081 - type: Protolathe + type: WallSolidRust components: - - pos: -4.5,19.5 + - pos: -56.5,18.5 parent: 60 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer - uid: 16082 type: ClothingHeadsetEngineering components: @@ -149833,11 +149798,14 @@ entities: parent: 60 type: Transform - uid: 17295 - type: WallSolid + type: PottedPlant22 components: - - pos: -53.5,22.5 + - pos: -0.5,-2.5 parent: 60 type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer - uid: 17296 type: WallReinforced components: @@ -150045,21 +150013,24 @@ entities: parent: 60 type: Transform - uid: 17330 - type: WallSolid + type: PottedPlant22 components: - - pos: -56.5,23.5 + - pos: -0.5,-7.5 parent: 60 type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer - uid: 17331 - type: WallSolid + type: WallSolidRust components: - - pos: -56.5,25.5 + - pos: 50.5,-4.5 parent: 60 type: Transform - uid: 17332 - type: WallSolid + type: Window components: - - pos: -56.5,18.5 + - pos: 32.5,16.5 parent: 60 type: Transform - uid: 17333 @@ -158476,23 +158447,17 @@ entities: parent: 60 type: Transform - uid: 18488 - type: PottedPlantRandom + type: WallSolidRust components: - - pos: -0.5,-2.5 + - pos: 31.5,19.5 parent: 60 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer - uid: 18489 - type: PottedPlantRandom + type: WallSolidRust components: - - pos: -0.5,-7.5 + - pos: 28.5,19.5 parent: 60 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer - uid: 18490 type: PoweredSmallLight components: @@ -163506,9 +163471,9 @@ entities: parent: 60 type: Transform - uid: 19104 - type: WallSolid + type: WallSolidRust components: - - pos: 50.5,-4.5 + - pos: 27.5,19.5 parent: 60 type: Transform - uid: 19105 @@ -167402,11 +167367,15 @@ entities: parent: 60 type: Transform - uid: 19668 - type: WallSolid + type: WallmountTelevision components: - - pos: 31.5,13.5 + - pos: 36.5,19.5 parent: 60 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 19669 type: WallSolid components: @@ -167420,9 +167389,9 @@ entities: parent: 60 type: Transform - uid: 19671 - type: WallSolid + type: WallSolidRust components: - - pos: 31.5,19.5 + - pos: 31.5,13.5 parent: 60 type: Transform - uid: 19672 @@ -167438,15 +167407,15 @@ entities: parent: 60 type: Transform - uid: 19674 - type: WallSolid + type: WallSolidRust components: - - pos: 28.5,19.5 + - pos: 31.5,16.5 parent: 60 type: Transform - uid: 19675 - type: WallSolid + type: WallSolidRust components: - - pos: 27.5,19.5 + - pos: 30.5,16.5 parent: 60 type: Transform - uid: 19676 @@ -167460,15 +167429,11 @@ entities: - canCollide: False type: Physics - uid: 19677 - type: FirelockGlass + type: WallSolidRust components: - - pos: 29.5,13.5 + - pos: 28.5,-8.5 parent: 60 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics - uid: 19678 type: filingCabinet components: @@ -167761,21 +167726,21 @@ entities: parent: 60 type: Transform - uid: 19716 - type: WallSolid + type: WallSolidRust components: - - pos: 30.5,16.5 + - pos: 30.5,-3.5 parent: 60 type: Transform - uid: 19717 - type: WallSolid + type: WallSolidRust components: - - pos: 31.5,16.5 + - pos: 33.5,5.5 parent: 60 type: Transform - uid: 19718 - type: Window + type: WallSolidRust components: - - pos: 32.5,16.5 + - pos: 33.5,0.5 parent: 60 type: Transform - uid: 19719 @@ -169395,9 +169360,9 @@ entities: parent: 60 type: Transform - uid: 19954 - type: WallSolid + type: WallSolidRust components: - - pos: 28.5,-8.5 + - pos: 32.5,-3.5 parent: 60 type: Transform - uid: 19955 @@ -169665,11 +169630,13 @@ entities: parent: 60 type: Transform - uid: 19996 - type: WallSolid + type: WeaponSubMachineGunVector components: - - pos: 32.5,-3.5 + - pos: -28.436613,2.4905505 parent: 60 type: Transform + - canCollide: False + type: Physics - uid: 19997 type: AirlockMaintLocked components: @@ -169683,11 +169650,13 @@ entities: parent: 60 type: Transform - uid: 19999 - type: WallSolid + type: WeaponSubMachineGunVector components: - - pos: 33.5,0.5 + - pos: -28.436613,2.6468005 parent: 60 type: Transform + - canCollide: False + type: Physics - uid: 20000 type: WallSolid components: @@ -169707,11 +169676,13 @@ entities: parent: 60 type: Transform - uid: 20003 - type: WallSolid + type: SheetSteel components: - - pos: 33.5,5.5 + - pos: -24.46965,0.7424586 parent: 60 type: Transform + - canCollide: False + type: Physics - uid: 20004 type: WallSolid components: @@ -169725,11 +169696,15 @@ entities: parent: 60 type: Transform - uid: 20006 - type: WallSolid + type: MagazineMagnumSubMachineGun components: - - pos: 30.5,-3.5 + - pos: -24.780363,-0.47819963 parent: 60 type: Transform + - unspawnedCount: 25 + type: BallisticAmmoProvider + - canCollide: False + type: Physics - uid: 20007 type: WallSolid components: @@ -176129,19 +176104,23 @@ entities: parent: 60 type: Transform - uid: 21014 - type: WeaponSubMachineGunVector + type: FirelockGlass components: - - pos: -28.465193,2.6841984 + - pos: -70.5,17.5 parent: 60 type: Transform + - airBlocked: False + type: Airtight - canCollide: False type: Physics - uid: 21015 - type: WeaponSubMachineGunVectorRubber + type: FirelockGlass components: - - pos: -28.449568,2.4185734 + - pos: -60.5,17.5 parent: 60 type: Transform + - airBlocked: False + type: Airtight - canCollide: False type: Physics - uid: 21016 @@ -176153,15 +176132,11 @@ entities: - canCollide: False type: Physics - uid: 21017 - type: MagazineMagnumSubMachineGunRubber + type: PottedPlantRandom components: - - pos: -24.75233,-0.4746566 + - pos: 34.5,9.5 parent: 60 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 21018 type: MagazineMagnumSubMachineGun components: @@ -176324,15 +176299,11 @@ entities: - canCollide: False type: Physics - uid: 21032 - type: MagazineRifleRubber + type: CableApcExtension components: - - pos: -24.236706,-0.6934066 + - pos: 8.5,-23.5 parent: 60 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 21033 type: MagazineMagnumSubMachineGun components: @@ -177877,16 +177848,11 @@ entities: parent: 60 type: Transform - uid: 21199 - type: BlastDoor + type: CableApcExtension components: - - pos: -60.5,17.5 + - pos: 9.5,-23.5 parent: 60 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: [] - type: SignalReceiver - uid: 21200 type: HighSecCommandLocked components: @@ -178344,16 +178310,11 @@ entities: parent: 60 type: Transform - uid: 21269 - type: BlastDoor + type: CableApcExtension components: - - pos: -70.5,17.5 + - pos: 10.5,-23.5 parent: 60 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: [] - type: SignalReceiver - uid: 21270 type: SurveillanceCameraCommand components: @@ -178970,14 +178931,11 @@ entities: parent: 60 type: Transform - uid: 21347 - type: PottedPlantRandom + type: WindowDirectional components: - - pos: 33.5,9.5 + - pos: -67.5,9.5 parent: 60 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer - uid: 21348 type: CarpetOrange components: @@ -179063,4 +179021,46 @@ entities: DisposalTransit: !type:Container ents: [] type: ContainerContainer +- uid: 21358 + type: WindowDirectional + components: + - pos: -66.5,9.5 + parent: 60 + type: Transform +- uid: 21359 + type: WindowDirectional + components: + - pos: -64.5,9.5 + parent: 60 + type: Transform +- uid: 21360 + type: WindowDirectional + components: + - pos: -63.5,9.5 + parent: 60 + type: Transform +- uid: 21361 + type: PottedPlant27 + components: + - pos: 41.5,7.5 + parent: 60 + type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer +- uid: 21362 + type: PottedPlant24 + components: + - pos: -11.5,15.5 + parent: 60 + type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer +- uid: 21363 + type: PottedPlantRandom + components: + - pos: 26.5,9.5 + parent: 60 + type: Transform ... diff --git a/Resources/Maps/barratry.yml b/Resources/Maps/barratry.yml index 7f084ceb2423..89702fe5801c 100644 --- a/Resources/Maps/barratry.yml +++ b/Resources/Maps/barratry.yml @@ -74,7 +74,7 @@ grids: - ind: 0,-1 tiles: NwAAADUAAAE1AAAANwAAADMAAAA3AAAANwAAADcAAAAxAAABMQAAAjEAAAM3AAAANwAAADcAAAA3AAAAMQAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAExAAACNwAAADcAAAA3AAAANwAAADEAAAA3AAAANQAAADUAAAE1AAAANQAAATUAAAE1AAAANwAAADEAAAAxAAABMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAI1AAADNQAAAjUAAAE1AAADNQAAATcAAAAxAAADMQAAADEAAAM3AAAANwAAADcAAAA3AAAAMQAAAzMAAAA1AAABNQAAATUAAAM1AAAANQAAAzUAAAA3AAAAMQAAAjEAAAIxAAABNwAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAATUAAAI1AAAANQAAADUAAAI1AAACNwAAADEAAAAxAAACMQAAATcAAAA3AAAANwAAADcAAAA0AAADNwAAADUAAAA1AAADNQAAAjUAAAI1AAAANQAAATcAAAAxAAADMQAAATEAAAI3AAAANAAAATQAAAA3AAAANAAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAADNwAAADcAAAA0AAAANAAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAAjcAAAA3AAAANwAAADcAAAA0AAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAE3AAAANwAAADcAAAA3AAAANAAAATcAAAAeAAAAHgAAADMAAAAxAAAAMQAAADEAAAA3AAAAMQAAAzEAAAIxAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAAHgAAAB4AAAA3AAAAMQAAADEAAAAxAAAANwAAADEAAAMxAAACMQAAAjcAAAA0AAABNAAAADQAAAA0AAABNwAAAB4AAAAeAAAANwAAADEAAAAxAAAAMQAAADcAAAAxAAADMQAAAjEAAAA3AAAANAAAADQAAAA0AAAANAAAAzcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAATEAAAAxAAADNwAAADQAAAE0AAAANAAAATQAAAExAAAAMQAAAjEAAAMxAAADMQAAAjEAAAIxAAADMQAAAjEAAAExAAACMQAAAzMAAAA0AAACNAAAAzQAAAI0AAACMQAAATEAAAAxAAABMQAAAzEAAAAxAAAAMQAAADEAAAIxAAABMQAAADEAAAI3AAAANAAAAzQAAAM0AAABNAAAAw== - ind: -2,-1 - tiles: MQAAAzEAAAMxAAACMQAAADEAAAMxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzMAAAAxAAAAMwAAADEAAAMxAAABMQAAATEAAAMxAAAAMQAAAzcAAAA3AAAAMQAAAzEAAAIxAAAAMwAAADEAAAAxAAABMQAAAB4AAAMxAAACMQAAADEAAAIxAAABMQAAAjEAAAM3AAAAMQAAADEAAAAxAAABNwAAAB4AAAIxAAADMQAAAjEAAAAeAAACMQAAAzEAAAMxAAAAMQAAADEAAAMxAAACNwAAADEAAAI3AAAAMQAAATEAAAEeAAACMQAAATEAAAAxAAADNwAAADEAAAIxAAACDgAAADEAAAMxAAADMQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAACMQAAAjcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAACwAAAAsAAAALAAAACwAAADcAAAAxAAABMQAAAzEAAAI3AAAAMQAAADEAAAIxAAAAMQAAADEAAAAxAAAANwAAAAsAAAALAAAACwAAAAsAAAA3AAAAMQAAAjEAAAIxAAAAMwAAADEAAAAxAAABMQAAADEAAAExAAACMQAAADcAAAAdAAAAHQAAACkAAAApAAAANwAAADEAAAAxAAABMQAAADMAAAAxAAABMQAAAjEAAAAxAAACMQAAAjEAAAA3AAAAHQAAAB0AAAApAAAAKQAAADMAAAAxAAABMQAAATEAAAEzAAAAMQAAAjEAAAIxAAAAMQAAAzEAAAAxAAABNwAAAB0AAAAdAAAAKQAAACkAAAA3AAAAMQAAATEAAAExAAABMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAMxAAAAMQAAAzMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAABMQAAAzEAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAACMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAADcAAAAxAAAANwAAADEAAAMxAAACMQAAAjEAAAMxAAADMQAAATEAAAAxAAADMQAAAjEAAAExAAADMQAAATEAAAMxAAADMQAAAzEAAAExAAADMQAAAzEAAAAxAAACMQAAADEAAAMxAAACMQAAAzEAAAExAAACMQAAATEAAAExAAADMQAAAw== + tiles: MQAAADEAAAAxAAAANwAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzMAAAAxAAAAMwAAADEAAAAxAAAAMQAAADMAAAAxAAAAMQAAADcAAAA3AAAAMQAAAzEAAAIxAAAAMwAAADEAAAAxAAABMQAAAB4AAAMxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA3AAAAMQAAADEAAAAxAAABNwAAAB4AAAIxAAADMQAAAjEAAAAeAAACNwAAADcAAAA3AAAANwAAADMAAAAzAAAANwAAADEAAAI3AAAAMQAAATEAAAEeAAACMQAAATEAAAAxAAADNwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAACMQAAAjcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAACwAAAAsAAAALAAAACwAAADcAAAAxAAABMQAAAzEAAAI3AAAANwAAADMAAAAzAAAANwAAADMAAAAzAAAANwAAAAsAAAALAAAACwAAAAsAAAA3AAAAMQAAAjEAAAIxAAAAMwAAADcAAAA3AAAAMgAAADcAAAA3AAAAMgAAADcAAAAdAAAAHQAAACkAAAApAAAANwAAADEAAAAxAAABMQAAADMAAAA3AAAAMgAAADIAAAA3AAAAMgAAADcAAAA3AAAAHQAAAB0AAAApAAAAKQAAADMAAAAxAAABMQAAATEAAAEzAAAANwAAADIAAAA3AAAANwAAADIAAAAyAAAANwAAAB0AAAAdAAAAKQAAACkAAAA3AAAAMQAAATEAAAExAAABMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAMxAAAAMQAAAzMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAABMQAAAzEAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAACMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAADcAAAAxAAAANwAAADEAAAMxAAACMQAAAjEAAAMxAAADMQAAATEAAAAxAAADMQAAAjEAAAExAAADMQAAATEAAAMxAAADMQAAAzEAAAExAAADMQAAAzEAAAAxAAACMQAAADEAAAMxAAACMQAAAzEAAAExAAACMQAAATEAAAExAAADMQAAAw== - ind: -2,0 tiles: MQAAATEAAAAxAAABMQAAAzEAAAIxAAABMQAAAzEAAAAxAAACMQAAAjEAAAAxAAADMQAAAzEAAAAxAAABMQAAAjcAAAA3AAAAMQAAATEAAAExAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMwAAADcAAAAeAAACNwAAADEAAAMxAAACMQAAAjcAAAA1AAABNQAAAjUAAAM1AAACNQAAAzUAAAA1AAAANQAAADUAAAA1AAADHgAAAjcAAAAxAAACMQAAATEAAAI3AAAANQAAAjUAAAM3AAAANQAAADUAAAA1AAACNQAAAzUAAAI1AAAANQAAAx4AAAM3AAAAMQAAAjEAAAAxAAACNwAAADUAAAI1AAADNQAAADcAAAA1AAACNQAAAzUAAAM1AAACNQAAAzUAAAMeAAABNwAAADEAAAIxAAACMQAAATcAAAA1AAAANQAAATcAAAA3AAAANQAAAjUAAAI1AAADNQAAAjUAAAI1AAACNwAAADcAAAA3AAAAMQAAAjEAAAM3AAAANQAAATUAAAM1AAABNwAAADcAAAA1AAABNQAAAjUAAAA1AAABNQAAAzcAAAA3AAAAMQAAADEAAAIxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAATUAAAE3AAAANwAAADUAAAI3AAAANwAAADEAAAAxAAACMQAAAjcAAAAlAAAAJQAAACUAAAAlAAAANwAAADcAAAAzAAAANwAAADMAAAAeAAAANwAAADcAAAAxAAABMQAAADEAAAEeAAAAHgAAAR4AAAEeAAADHgAAAh4AAAMeAAADHgAAATcAAAA0AAADNAAAAzEAAAIxAAACMQAAADEAAAAxAAAAHgAAAx4AAAMlAAAAJQAAACUAAAAlAAAAHgAAAR4AAAIeAAADNAAAAzQAAAIxAAACMQAAAzEAAAIxAAAAMQAAAh4AAAAeAAACJQAAACUAAAAlAAAAJQAAAB4AAAIeAAADHgAAATQAAAM0AAAANwAAADcAAAAxAAAAMQAAADEAAAM3AAAAHgAAAh4AAAMeAAADHgAAAB4AAAAeAAADHgAAAh4AAAI0AAADNAAAATcAAAA3AAAAMQAAAjEAAAMxAAAANwAAAB4AAAIlAAAAJQAAACUAAAAlAAAAJAAAAB4AAAEeAAACNAAAATQAAAE3AAAANwAAADEAAAMxAAACMQAAAzMAAAAeAAABHgAAAx4AAAEeAAAAHgAAAB4AAAMeAAAANwAAADQAAAE0AAAAMgAAADcAAAA3AAAAMQAAAjEAAAI3AAAAHgAAAB4AAAAeAAAAHgAAAx4AAAAeAAADHgAAAzcAAAA0AAABNAAAAg== - ind: -1,-2 @@ -82,7 +82,7 @@ grids: - ind: 0,-2 tiles: HgAAAh4AAAA3AAAAMQAAADEAAAExAAADMQAAATEAAAExAAACMQAAAjEAAAA3AAAANQAAAjUAAAM1AAABNQAAAh4AAAIeAAADMwAAADEAAAAxAAABMQAAAzEAAAMxAAADMQAAATEAAAExAAADNwAAADcAAAA1AAABNQAAAjUAAAAeAAADHgAAAjcAAAAxAAACMQAAADEAAAExAAAAMQAAADEAAAIxAAAAMQAAAhwAAAA3AAAANQAAATUAAAI1AAAAHgAAAR4AAAA3AAAAMQAAAzEAAAIxAAACMQAAATEAAAMxAAACMQAAATEAAAEcAAAANwAAADUAAAI1AAAANQAAAR4AAAAeAAACNwAAADcAAAA3AAAAMwAAADcAAAA3AAAAMQAAAzEAAAExAAAANwAAADcAAAA3AAAAMwAAADcAAAAbAAAAGwAAABwAAAA3AAAAHgAAAh4AAAMeAAABNwAAADcAAAAxAAACNwAAADcAAAA1AAAANQAAADUAAAM1AAACGwAAABsAAAAcAAAANwAAAB4AAAEzAAAAHgAAAjMAAAAxAAACMQAAAjEAAAI3AAAANQAAATUAAAI1AAAANQAAAhsAAAAbAAAAHAAAADcAAAAeAAAAHgAAAR4AAAM3AAAAMQAAAzEAAAMxAAABNwAAADUAAAI1AAABNQAAAjUAAAIzAAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAABMQAAAjcAAAA3AAAANwAAADcAAAA3AAAAMQAAAjEAAAMxAAACMQAAADEAAAExAAABMQAAAjEAAAIxAAACMQAAAjEAAAAxAAADMQAAATEAAAIxAAABMQAAADEAAAAxAAABMQAAATEAAAIxAAABMQAAAjEAAAExAAADMQAAAjEAAAIxAAABMQAAAjEAAAIxAAAAMQAAADEAAAExAAACMQAAAjEAAAIxAAACMQAAAzEAAAAxAAAAMQAAAzEAAAMxAAAAMQAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAAjEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAATEAAAIxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAAzcAAAA3AAAANwAAADcAAAA3AAAAMwAAADUAAAM1AAADNwAAADMAAAA3AAAANwAAADcAAAAxAAADMQAAATEAAAM3AAAANwAAADcAAAA3AAAAMQAAAQ== - ind: -2,-2 - tiles: MQAAADEAAAAxAAAAMQAAADEAAAA3AAAAHgAAAB4AAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAAB4AAAAeAAAANwAAADcAAAA3AAAAMwAAADcAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAA3AAAANwAAADcAAAAzAAAAMwAAADcAAAA3AAAANwAAADMAAAA3AAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAA3AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAANwAAAB4AAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAA3AAAAIwAAAC4AAAAjAAAALgAAADEAAAAxAAAAMQAAADcAAAAeAAAADgAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAACMAAAAjAAAAIwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAMxAAADMQAAATEAAAAxAAACMQAAAzEAAAMxAAADMQAAADEAAAMxAAABMQAAAzEAAAAxAAABMQAAADEAAAAxAAACMQAAADEAAAMxAAADMQAAAzEAAAMxAAACMQAAAzEAAAIxAAADMQAAAjEAAAMxAAAAMQAAAzEAAAAxAAADMQAAAjEAAAMxAAAAMQAAAjEAAAMxAAAAMQAAATEAAAIxAAACMQAAAzEAAAExAAADMQAAADEAAAMxAAACNwAAADcAAAA3AAAANwAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAACNwAAADUAAAA1AAACNQAAADcAAAAxAAADMQAAATcAAAA3AAAAMQAAAjEAAAE3AAAAMwAAADEAAAMxAAADMQAAADcAAAA1AAACNQAAAzUAAAA3AAAAMQAAAzEAAAM3AAAAMQAAAzEAAAM3AAAAMQAAAB4AAAIxAAABMQAAAjEAAAA3AAAANwAAADMAAAA3AAAANwAAADMAAAAxAAADNwAAADEAAAExAAADNwAAADEAAAAeAAADMQAAAjEAAAIxAAADNwAAAA== + tiles: MQAAADEAAAAxAAAAMQAAADEAAAA3AAAAHgAAAB4AAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAADEAAAAxAAAAMQAAADEAAAAeAAAAMwAAAB4AAAAeAAAANwAAADcAAAA3AAAAMwAAADcAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAA3AAAADgAAADcAAAAzAAAAMwAAADcAAAA3AAAANwAAADMAAAA3AAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAA3AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAA3AAAAIwAAAC4AAAAjAAAALgAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAACMAAAAjAAAAIwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAMxAAADMQAAATEAAAAxAAACMQAAAzEAAAMxAAADMQAAADEAAAMxAAABMQAAAzEAAAAxAAABMQAAADEAAAAxAAACMQAAADEAAAMxAAADMQAAAzEAAAMxAAACMQAAAzEAAAIxAAADMQAAAjEAAAMxAAAAMQAAAzEAAAAxAAADMQAAAjEAAAMxAAAAMQAAAjEAAAMxAAAAMQAAATEAAAIxAAACMQAAAzEAAAExAAADMQAAADEAAAMxAAACNwAAADcAAAA3AAAANwAAADMAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAACNwAAADEAAAAxAAAAMQAAADcAAAAxAAAAMQAAADcAAAA3AAAAMQAAAjEAAAE3AAAAMwAAADEAAAMxAAADMQAAADcAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA3AAAAMQAAAzEAAAM3AAAAMQAAAB4AAAIxAAABMQAAAjEAAAA3AAAAMQAAADEAAAAxAAAANwAAADEAAAAxAAAANwAAADEAAAExAAADNwAAADEAAAAeAAADMQAAAjEAAAIxAAADNwAAAA== - ind: 1,-2 tiles: NQAAATcAAAArAAAAKwAAACsAAAArAAAANwAAADcAAAA3AAAANQAAADcAAAA1AAABMwAAADEAAAMxAAADMwAAADUAAAI3AAAAKwAAACsAAAArAAAAKwAAADcAAAA3AAAANwAAADUAAAA1AAACNQAAAjcAAAAxAAAAMQAAADMAAAA1AAADNwAAACsAAAArAAAAKwAAACsAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAATEAAAI3AAAANQAAATcAAAArAAAAKwAAACsAAAArAAAANwAAADcAAAA3AAAANQAAAjUAAAM1AAAAMwAAADEAAAAxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAI1AAABNwAAADcAAAAxAAADMQAAAzcAAAA1AAACNwAAACcAAAA3AAAAJwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAMzAAAANQAAAjcAAAAnAAAAJwAAACcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAACMwAAADEAAAExAAAANwAAADUAAAE3AAAAJwAAACcAAAA3AAAAJwAAADcAAAA3AAAANwAAADUAAAI1AAAANQAAATcAAAAxAAABMQAAATcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAjEAAAE3AAAAMQAAAjEAAAMxAAABMQAAATEAAAIxAAACMQAAAzEAAAAxAAAAMQAAATEAAAExAAADMQAAAjEAAAIxAAAAMQAAAzEAAAIxAAACMQAAADEAAAAxAAAAMQAAADEAAAExAAACMQAAAzEAAAMxAAADMQAAATEAAAAxAAACMQAAAzEAAAE3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAATEAAAEzAAAANQAAAzUAAAM1AAACNQAAAzUAAAA3AAAANAAAADQAAAA3AAAANQAAAjcAAAA3AAAAMQAAATEAAAE3AAAANwAAADUAAAM1AAAANQAAAzUAAAI1AAABMwAAADQAAAM0AAABMwAAADUAAAE3AAAANwAAADEAAAExAAADMQAAAzcAAAA1AAADNQAAATUAAAI1AAADNQAAADcAAAA0AAABNAAAADcAAAAzAAAANwAAADcAAAAxAAACNwAAADEAAAM3AAAANQAAAzUAAAA1AAABNQAAAzUAAAM3AAAANAAAADQAAAA3AAAAMwAAAA== - ind: -1,1 @@ -108,19 +108,19 @@ grids: - ind: 3,-2 tiles: NwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADYAAAA2AAAAAAAAADYAAAA3AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAANgAAAAAAAAA3AAAANwAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAA3AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAANwAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: -2,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMwAAADcAAAA3AAAANgAAADYAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAA3AAAAMwAAADcAAAAzAAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAAIwAAACMAAAAjAAAALgAAADMAAAAzAAAAMwAAADMAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAACMAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANgAAADYAAAA2AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAjAAAAIwAAACMAAAA3AAAANwAAADMAAAAzAAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAAIwAAACMAAAAjAAAALgAAADMAAAAzAAAAMwAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAACMAAAAjAAAAIwAAACMAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAIwAAACMAAAAjAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAAzAAAANwAAACMAAAAjAAAAIwAAAA== - ind: -2,1 tiles: NwAAADcAAAAzAAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA0AAABNAAAAzcAAAAzAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAIxAAABMQAAADEAAAE3AAAANAAAATQAAAA3AAAANwAAADcAAAAxAAADMQAAAjcAAAA3AAAANwAAADEAAAIxAAAAMQAAADEAAAExAAABNwAAADcAAAA3AAAANwAAADMAAAAxAAAANwAAADEAAAE3AAAANwAAADcAAAAjAAAAIwAAACMAAAAjAAAAIwAAADcAAAA3AAAAMQAAADcAAAA3AAAANwAAAB4AAAI3AAAANwAAADcAAAA3AAAAIwAAACMAAAAjAAAAIwAAACMAAAA3AAAAMQAAADcAAAAxAAAANwAAAB4AAAAeAAAAHgAAADcAAAA3AAAANwAAACMAAAAjAAAAIwAAACMAAAAjAAAANwAAADEAAAAxAAABMQAAATcAAAAeAAADHgAAAx4AAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAHgAAAx4AAAMeAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADNwAAAB4AAAIeAAABHgAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAjMAAAAeAAAAHgAAAh4AAAA3AAAAMwAAADMAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAE3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAACMQAAADEAAAExAAADMQAAAjEAAAAxAAABMQAAADMAAAA3AAAAKAAAACgAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAABMQAAATEAAAIxAAADMQAAAjEAAAI3AAAAKAAAACgAAAAoAAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAAjcAAAA3AAAAMwAAADcAAAA3AAAANwAAACgAAAA3AAAAKAAAADcAAAAeAAADNwAAADEAAAExAAACMQAAAzEAAAI3AAAANQAAATUAAAI1AAAANQAAAjcAAAAoAAAAKAAAACgAAAAeAAABHgAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAM1AAAANQAAATUAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAADYAAAAAAAAAAAAAAA== - ind: -3,0 tiles: MQAAATEAAAIxAAADMQAAAzEAAAIxAAACMQAAAzEAAAExAAADMQAAAzEAAAAxAAAAMQAAATEAAAMxAAAAMQAAADcAAAA3AAAAMQAAATEAAAAxAAADNwAAADcAAAA3AAAANwAAADMAAAAzAAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADEAAAIxAAACMQAAAzEAAAM3AAAANwAAADcAAAAeAAABHgAAATcAAAAeAAACHgAAAx4AAAAeAAABMwAAADcAAAAxAAABMQAAAjEAAAIxAAAANwAAADcAAAA3AAAAHgAAAR4AAAI3AAAAHgAAAR4AAAEeAAABHgAAAjcAAAA3AAAAMQAAAzEAAAMxAAACMQAAADcAAAA3AAAANwAAAB4AAAAeAAACNwAAAB4AAAMeAAAAHgAAAB4AAAA1AAAANwAAADEAAAMxAAABNwAAADcAAAA3AAAANwAAADcAAAA3AAAAHgAAADMAAAAeAAADHgAAAh4AAAIeAAAANQAAAzcAAAAxAAACMQAAAjEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAAzUAAAM3AAAANwAAADUAAAIzAAAANwAAADEAAAMxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAACNwAAADcAAAAxAAADMQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAAzcAAAAxAAAAMQAAAjEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAExAAADMQAAATEAAAIxAAAAMQAAAzEAAAIxAAAANwAAADcAAAAxAAABMQAAAzEAAAA3AAAANwAAADEAAAAxAAAAMQAAAzcAAAAxAAABMQAAATEAAAExAAABMQAAAzEAAAIxAAADMQAAATEAAAExAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMgAAADEAAAEyAAAANwAAADIAAAAyAAAANwAAADcAAAAyAAAANwAAADIAAAAyAAAANwAAADIAAAAyAAAANwAAADcAAAAxAAABMQAAADcAAAAyAAAAMgAAADcAAAAyAAAAMgAAADcAAAA3AAAAMgAAADcAAAAyAAAAMQAAADEAAAExAAABNwAAADIAAAA3AAAANwAAADIAAAA3AAAAMgAAADIAAAA3AAAANwAAADIAAAA3AAAAMgAAAA== - ind: -3,-1 - tiles: MwAAADcAAAAxAAAAMQAAAjEAAAI3AAAANwAAADcAAAA3AAAAMQAAAjEAAAExAAADMwAAADMAAAAxAAADMQAAAzMAAAA3AAAAMQAAAzEAAAMxAAAANwAAADcAAAA3AAAANwAAADEAAAMxAAACMQAAAzEAAAExAAADMQAAADEAAAM3AAAANwAAADEAAAMxAAADMQAAADcAAAA3AAAANwAAADcAAAAxAAACMQAAADEAAAAxAAACMQAAAjEAAAExAAACNwAAADEAAAIxAAABMQAAATEAAAE3AAAANwAAADcAAAA3AAAAMQAAAjEAAAMxAAABMQAAAzEAAAIxAAAAMQAAAzcAAAA3AAAAMQAAADEAAAMxAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAAHgAAAjEAAAAxAAADMQAAADEAAAE3AAAANwAAADEAAAExAAADMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAANwAAADEAAAA3AAAAMQAAAzEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAAANwAAADcAAAA3AAAAMQAAAjEAAAExAAAANwAAADMAAAAzAAAANwAAADcAAAA3AAAANwAAADEAAAIxAAABMQAAATcAAAA3AAAANwAAADEAAAAxAAACMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAABMQAAAjcAAAA3AAAANwAAADcAAAAxAAADMQAAATEAAAEzAAAACgAAAAoAAAAKAAAANwAAADcAAAA3AAAAMQAAAzEAAAExAAADNwAAADcAAAA3AAAAMQAAAzEAAAExAAADNwAAAAoAAAAKAAAACgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAAAMQAAATcAAAAKAAAACgAAAAoAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAATEAAAM3AAAACgAAAAoAAAAKAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAMxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAAjEAAAExAAAAMQAAAzEAAAAxAAACMQAAAjEAAAIxAAADMQAAAjEAAAIxAAABMQAAAjcAAAA3AAAAMQAAATEAAAMxAAABMQAAAzEAAAExAAADMQAAADEAAAExAAABMQAAAjEAAAMxAAACMQAAADEAAAMxAAAANwAAAA== + tiles: MwAAADcAAAAxAAAAMQAAAjEAAAI3AAAANwAAADcAAAAeAAAAHgAAAB4AAAA3AAAAMQAAADEAAAAxAAAAMQAAADMAAAA3AAAAMQAAAzEAAAMxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAA3AAAANwAAADEAAAMxAAADMQAAADcAAAA3AAAANwAAADcAAAAyAAAANwAAADIAAAAyAAAAMwAAADEAAAAxAAAANwAAADEAAAIxAAABMQAAATEAAAE3AAAANwAAADcAAAA3AAAANwAAADIAAAAyAAAAMgAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAMxAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAAMgAAADcAAAA3AAAAMQAAADEAAAA3AAAANwAAADEAAAExAAADMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADIAAAA3AAAANwAAADEAAAAxAAAANwAAADEAAAA3AAAAMQAAAzEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMgAAADcAAAAzAAAAMwAAADcAAAA3AAAAMQAAAjEAAAExAAAANwAAADMAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMgAAADIAAAA3AAAANwAAADEAAAAxAAACMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAyAAAAMgAAADcAAAAyAAAANwAAADcAAAAxAAADMQAAATEAAAEzAAAACgAAAAoAAAAKAAAANwAAADcAAAA3AAAANwAAADIAAAAyAAAANwAAADcAAAA3AAAAMQAAAzEAAAExAAADNwAAAAoAAAAKAAAACgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAIxAAAAMQAAATcAAAAKAAAACgAAAAoAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAATEAAAM3AAAACgAAAAoAAAAKAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAMxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAAjEAAAExAAAAMQAAAzEAAAAxAAACMQAAAjEAAAIxAAADMQAAAjEAAAIxAAABMQAAAjcAAAA3AAAAMQAAATEAAAMxAAABMQAAAzEAAAExAAADMQAAADEAAAExAAABMQAAAjEAAAMxAAACMQAAADEAAAMxAAAANwAAAA== - ind: -4,0 tiles: HgAAAR4AAAIeAAADHgAAAjcAAAAxAAACMQAAATEAAAIxAAAAMQAAADEAAAMxAAABMQAAATEAAAE3AAAAMQAAATcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAAjEAAAIxAAABMQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAjEAAAExAAABMQAAATEAAAE3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADMAAAAzAAAAMwAAADEAAAMxAAADMQAAAjEAAAExAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAI1AAADNQAAADUAAAE1AAABNwAAADUAAAM3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAACNQAAAjUAAAI1AAADNwAAADcAAAA1AAADNQAAATcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAAjUAAAI1AAAANQAAAjUAAAAzAAAANQAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAA1AAADNQAAADUAAAA1AAACNwAAADUAAAM3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA1AAAANwAAADUAAAE1AAACNQAAATcAAAA3AAAANQAAAzcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAAAAAAADcAAAA3AAAANwAAADEAAAE3AAAAMwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAAAAAAAA3AAAANwAAADcAAAAxAAACNwAAADcAAAA3AAAAMwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAAAAAAANwAAADcAAAA3AAAAMQAAAA== - ind: -4,-1 tiles: MQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAATcAAAAxAAABMQAAAzEAAAE3AAAANwAAADEAAAMxAAACNwAAADcAAAA3AAAAMwAAADcAAAAxAAAAMQAAATEAAAI3AAAAMQAAAzEAAAExAAACNwAAADcAAAAxAAACMQAAATcAAAA3AAAANwAAADMAAAA3AAAAMQAAADEAAAAxAAABNwAAADEAAAExAAABMQAAADcAAAA3AAAAMQAAADEAAAE3AAAANwAAADcAAAAzAAAANwAAADEAAAIxAAABMQAAATcAAAAxAAADMQAAATEAAAA3AAAANwAAADEAAAMxAAACNwAAADcAAAA3AAAAMwAAADcAAAAxAAABMQAAATEAAAMxAAAAMQAAADEAAAAxAAAANwAAADcAAAAxAAAAMQAAAzcAAAAzAAAAMwAAADMAAAA3AAAAMQAAADEAAAAxAAACMQAAADEAAAAxAAABMQAAATcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAAB4AAAA3AAAAHgAAAB4AAAEeAAADHgAAAR4AAAIeAAADHgAAAB4AAAMeAAABHgAAAx4AAAI3AAAANwAAADcAAAA3AAAAHgAAAh4AAAA3AAAAHgAAAR4AAAEeAAABHgAAAR4AAAMeAAADHgAAAh4AAAMeAAABNwAAADcAAAA3AAAANwAAADcAAAA3AAAAHgAAAR4AAAIeAAACHgAAAB4AAAIeAAADHgAAAh4AAAMeAAADHgAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAADEAAAAxAAACMQAAAzEAAAAxAAABMQAAAzEAAAIxAAADMQAAADEAAAIxAAAAMQAAADcAAAA3AAAAMQAAADEAAAAxAAABMQAAAzEAAAExAAADMQAAAzEAAAAxAAACMQAAAjEAAAAxAAABMQAAADEAAAM3AAAANwAAADEAAAAxAAABMQAAAzEAAAExAAADMQAAATEAAAMxAAACMQAAAjEAAAMxAAAAMQAAAzEAAAAxAAADNwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADEAAAMxAAADMQAAADEAAAExAAABMQAAADEAAAIxAAACMQAAAzcAAAAxAAACHgAAAh4AAAIeAAABHgAAAzcAAAAxAAADMQAAADEAAAExAAADMQAAATEAAAExAAACMQAAAzEAAAAzAAAAMQAAAw== - ind: -3,-2 - tiles: NwAAADcAAAA3AAAAMQAAATEAAAA3AAAANQAAAjUAAAM1AAAANwAAADUAAAI3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAADEAAAIxAAACMwAAADUAAAM3AAAANwAAADUAAAA1AAABNwAAADcAAAA3AAAAMQAAADEAAAAAAAAANwAAADEAAAAxAAACMQAAAjcAAAA1AAADNQAAADUAAAI1AAADNQAAAzcAAAA3AAAANwAAADEAAAAxAAAAAAAAADcAAAAxAAAAMQAAAzEAAAM3AAAANwAAADUAAAM1AAAANwAAADUAAAI3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAADEAAAExAAACNwAAADUAAAA1AAACNwAAADUAAAE1AAABNwAAADcAAAA3AAAAMQAAADEAAAAAAAAANwAAADEAAAMxAAABMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAAAAAADcAAAAxAAADMQAAAzEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAAzEAAAAxAAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAA3AAAANwAAADEAAAMxAAADMQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAB4AAAAeAAAAMQAAAjEAAAAxAAAAMQAAAzEAAAIxAAACMQAAAzEAAAExAAAAMQAAADEAAAA3AAAANwAAADEAAAMxAAABMQAAAzEAAAIxAAACMQAAATEAAAExAAAAMQAAAjEAAAExAAABMQAAADEAAAMxAAACMQAAATEAAAExAAABMQAAADEAAAAxAAADMQAAADEAAAIxAAAAMQAAAjEAAAMxAAABMQAAATEAAAIxAAAANwAAADEAAAAxAAACMQAAAzEAAAExAAAANwAAADcAAAAxAAAAMQAAAjEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAExAAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAAANwAAADcAAAA3AAAAMgAAADIAAAAyAAAANwAAADEAAAExAAAAMQAAATcAAAA3AAAANwAAADEAAAAxAAABMQAAADcAAAA3AAAANwAAADIAAAAyAAAAMgAAADcAAAAxAAAAMQAAAjEAAAIeAAAAMwAAADcAAAAxAAACMQAAAjEAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMwAAADMAAAA3AAAANwAAAA== + tiles: NwAAADcAAAA3AAAAMQAAATEAAAA3AAAANQAAAjUAAAM1AAAANwAAADUAAAI3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAADEAAAIxAAACMwAAADUAAAM3AAAANwAAADUAAAA1AAABNwAAADcAAAA3AAAAMQAAADEAAAAAAAAANwAAADEAAAAxAAACMQAAAjcAAAA1AAADNQAAADUAAAI1AAADNQAAAzcAAAA3AAAANwAAADEAAAAxAAAAAAAAADcAAAAxAAAAMQAAAzEAAAM3AAAANwAAADUAAAM1AAAANwAAADUAAAI3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAADEAAAExAAACNwAAADUAAAA1AAACNwAAADUAAAE1AAABNwAAADcAAAA3AAAAMQAAADEAAAAAAAAANwAAADEAAAMxAAABMQAAAjcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAAAAAADcAAAAxAAADMQAAAzEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAAAAAAAA3AAAAMQAAAzEAAAAxAAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAA3AAAANwAAADEAAAMxAAADMQAAAzcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAB4AAAAeAAAAMQAAAjEAAAAxAAAAMQAAAzEAAAIxAAACMQAAAzEAAAExAAAAMQAAADEAAAA3AAAANwAAADEAAAMxAAABMQAAAzEAAAIxAAACMQAAATEAAAExAAAAMQAAAjEAAAExAAABMQAAADEAAAMxAAACMQAAATEAAAExAAABMQAAADEAAAAxAAADMQAAADEAAAIxAAAAMQAAAjEAAAMxAAABMQAAATEAAAIxAAAANwAAADEAAAAxAAACMQAAAzEAAAExAAAANwAAADcAAAAxAAAAMQAAAjEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAzEAAAAxAAAANwAAADcAAAA3AAAAHgAAAB4AAAAeAAAAMwAAADEAAAAxAAAAMQAAADEAAAA3AAAANwAAADEAAAAxAAABMQAAADcAAAA3AAAANwAAAB4AAAAeAAAAHgAAADcAAAAxAAAAMQAAADEAAAAxAAAAMwAAADcAAAAxAAACMQAAAjEAAAA3AAAANwAAADcAAAAeAAAAHgAAAB4AAAA3AAAAMQAAADEAAAAxAAAAMQAAAA== - ind: 0,-4 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAACFAAAARQAAAEUAAACFAAAAg== - ind: 3,-1 @@ -132,7 +132,7 @@ grids: - ind: 1,-1 tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANAAAAzQAAAI3AAAAMwAAADEAAAI3AAAANQAAAjUAAAA1AAABNQAAAjUAAAE1AAABNQAAADUAAAM1AAAANwAAADQAAAM0AAABNwAAADcAAAAxAAAANwAAADUAAAA1AAABNQAAAzUAAAE1AAAANQAAAjUAAAA1AAAANQAAAzcAAAA0AAACNAAAAzcAAAA0AAADMQAAAzcAAAA1AAADNQAAATUAAAA1AAABNQAAATUAAAE1AAABNQAAAzUAAAMzAAAANAAAAjQAAAAzAAAANAAAADcAAAA3AAAANwAAADcAAAA3AAAANQAAATUAAAM1AAACNQAAADUAAAI1AAADNwAAADQAAAM0AAACNwAAADQAAAA0AAABNAAAAjQAAAE0AAAANwAAADUAAAE1AAABNQAAAjUAAAE1AAAANQAAATcAAAA0AAAANAAAAzcAAAA0AAACNAAAATQAAAA0AAABNAAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANAAAADQAAAE3AAAANwAAADQAAAA0AAAANAAAAzQAAAEzAAAANAAAADQAAAE0AAACNAAAAjQAAAE0AAABNAAAAzQAAAA0AAAANwAAADQAAAM0AAAANAAAATQAAAM0AAACHgAAAzQAAAA0AAAANAAAAjQAAAE0AAABNAAAATQAAAM0AAADNAAAAzMAAAA0AAADNAAAAjQAAAI0AAADNAAAAB4AAAM0AAACNAAAATQAAAI0AAABNAAAAjQAAAI0AAACNAAAATQAAAA3AAAANAAAAjcAAAA3AAAAHgAAATcAAAA3AAAANAAAATQAAAE0AAABNAAAADQAAAA0AAABNAAAAjQAAAM0AAAANwAAADcAAAA0AAAANAAAATQAAAE0AAAANwAAADQAAAE0AAACNAAAAzQAAAE0AAADNAAAADQAAAI0AAADNAAAADcAAAA0AAABNAAAADQAAAI0AAADNAAAAjcAAAA0AAACNAAAAzQAAAE0AAADNAAAATQAAAA0AAAANAAAAjQAAAM3AAAANAAAADQAAAM0AAAANAAAATQAAAE3AAAANAAAATQAAAA0AAAANAAAATQAAAI0AAADNAAAAzQAAAE0AAABMwAAADQAAAM0AAAANAAAATQAAAM0AAABMwAAADQAAAE0AAACNAAAAzQAAAA0AAABNAAAADQAAAE0AAADNAAAADcAAAA0AAABNAAAAzQAAAM0AAABNAAAAjMAAAA0AAADNAAAAjQAAAA0AAADNAAAAjQAAAI0AAADNAAAATQAAAM3AAAANAAAAw== - ind: 2,0 - tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAACNQAAADUAAAE3AAAANwAAADUAAAE3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAAANQAAATcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAADcAAAA1AAAANQAAATcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAAjUAAAM1AAADNwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANQAAAzcAAAA1AAACNQAAATUAAAM1AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAAjcAAAA1AAAANQAAATcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAABNQAAATUAAAA3AAAANwAAADUAAAI3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANQAAADcAAAA1AAADNQAAAjUAAAI3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAACNQAAADUAAAE3AAAANwAAADUAAAE3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAAANQAAATcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAADcAAAA1AAAANQAAATcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAAjUAAAM1AAADNwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANQAAAzcAAAA1AAACNQAAATUAAAM1AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA1AAADNQAAAjcAAAA1AAAANQAAATcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA1AAABNQAAATUAAAA3AAAANwAAADUAAAI3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANQAAADcAAAA1AAADNQAAAjUAAAI3AAAANwAAADYAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 1,1 tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAADMQAAADcAAAA3AAAAMQAAADEAAAM3AAAAMQAAADEAAAAxAAABMQAAAjEAAAA3AAAAMQAAAzEAAAMxAAADNwAAADEAAAAxAAABMQAAATEAAAMxAAADNwAAADEAAAIxAAADNwAAADEAAAIxAAADMQAAADEAAAAxAAADNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAATcAAAA1AAABNwAAADUAAAI1AAAANQAAAzcAAAA3AAAANwAAADcAAAA3AAAANQAAADUAAAE3AAAAMQAAATEAAAA3AAAANwAAADUAAAM1AAADNQAAATcAAAA3AAAANwAAADcAAAA3AAAANwAAADUAAAI1AAACNwAAADEAAAIxAAACNwAAADUAAAA1AAACNQAAAzcAAAA1AAACNwAAADcAAAA3AAAANwAAADcAAAA1AAACNQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: -3,1 @@ -154,7 +154,7 @@ grids: - ind: -5,-2 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAMQAAAzEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADEAAAAxAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADMQAAAA== - ind: -3,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAADNwAAADEAAAExAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADMAAAA3AAAANwAAADEAAAExAAADMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAATcAAAAxAAABMQAAATEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAAA== + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAAMwAAADcAAAAxAAADNwAAADEAAAExAAACNwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADEAAAExAAADMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAATcAAAAxAAABMQAAATEAAAM3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAAA== - ind: -4,-3 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAA3AAAANwAAADcAAAAxAAAAMQAAATEAAAMxAAADMQAAAzEAAAIxAAABMQAAATEAAAMxAAABMQAAADcAAAA2AAAANwAAADcAAAA3AAAAMQAAATEAAAMxAAABMQAAAzEAAAMxAAABMQAAAzEAAAExAAAANwAAADEAAAAxAAAANgAAADcAAAA3AAAANwAAADEAAAIxAAAAMQAAAzEAAAExAAACMQAAAjEAAAIxAAACMQAAAjEAAAIxAAABNwAAAA== - ind: 1,-4 @@ -661,6 +661,8 @@ entities: - pos: 21.5,-10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 71 type: Table components: @@ -1473,579 +1475,579 @@ entities: color: '#FFFFFFFF' id: revolution coordinates: -46.61512,15.790409 - 1386: + 1372: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -47,0 - 1387: + 1373: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale coordinates: -49,0 - 1391: + 1377: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -48,0 - 1393: + 1379: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -51,0 - 1396: + 1382: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -58,0 - 1397: + 1383: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -55,0 - 1398: + 1384: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -54,0 - 1399: + 1385: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -53,0 - 1400: + 1386: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -52,0 - 1401: + 1387: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -57,0 - 1402: + 1388: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -56,0 - 1458: + 1444: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale coordinates: -59,0 - 1466: + 1452: color: '#DE3A3A96' id: CheckerNWSE coordinates: -33,22 - 1468: + 1454: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -39,23 - 1469: + 1455: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -38,23 - 1470: + 1456: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -37,23 - 1471: + 1457: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -36,23 - 1472: + 1458: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -35,23 - 1473: + 1459: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale coordinates: -46,25 - 1474: + 1460: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale coordinates: -33,28 - 1478: + 1464: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -46,24 - 1479: + 1465: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale coordinates: -33,25 - 1480: + 1466: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -45,24 - 1481: + 1467: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -44,24 - 1482: + 1468: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -43,24 - 1483: + 1469: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -42,24 - 1484: + 1470: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -41,24 - 1485: + 1471: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -40,24 - 1486: + 1472: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -39,24 - 1487: + 1473: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -38,24 - 1488: + 1474: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -37,24 - 1489: + 1475: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -36,24 - 1490: + 1476: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -35,24 - 1491: + 1477: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -34,24 - 1492: + 1478: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -33,24 - 1499: + 1485: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -33,27 - 1500: + 1486: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -33,26 - 1505: + 1491: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -34,25 - 1506: + 1492: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -35,25 - 1507: + 1493: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -37,25 - 1508: + 1494: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -36,25 - 1509: + 1495: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -38,25 - 1510: + 1496: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -39,25 - 1511: + 1497: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -40,25 - 1512: + 1498: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -41,25 - 1513: + 1499: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -42,25 - 1514: + 1500: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -43,25 - 1515: + 1501: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -44,25 - 1516: + 1502: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -45,25 - 1522: + 1508: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -41,27 - 1523: + 1509: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -38,27 - 1524: + 1510: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -41,28 - 1525: + 1511: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -41,29 - 1530: + 1516: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,31 - 1531: + 1517: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,30 - 1532: + 1518: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,29 - 1533: + 1519: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,28 - 1534: + 1520: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -40,27 - 1535: + 1521: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -39,27 - 1538: + 1524: color: '#FFFFFFFF' id: WarningLine coordinates: -47,27 - 1539: + 1525: color: '#FFFFFFFF' id: WarningLine coordinates: -46,27 - 1540: + 1526: color: '#FFFFFFFF' id: WarningLine coordinates: -45,27 - 1541: + 1527: color: '#FFFFFFFF' id: WarningLine coordinates: -44,27 - 1542: + 1528: color: '#FFFFFFFF' id: WarningLine coordinates: -43,27 - 1545: + 1531: color: '#FFFFFFFF' id: DirtLight coordinates: -39,24 - 1546: + 1532: color: '#FFFFFFFF' id: DirtLight coordinates: -39,23 - 1547: + 1533: color: '#FFFFFFFF' id: DirtLight coordinates: -35,23 - 1548: + 1534: color: '#FFFFFFFF' id: DirtLight coordinates: -36,23 - 1549: + 1535: color: '#FFFFFFFF' id: DirtLight coordinates: -33,24 - 1551: + 1537: color: '#FFFFFFFF' id: DirtLight coordinates: -35,17 - 1552: + 1538: color: '#FFFFFFFF' id: DirtLight coordinates: -36,18 - 1553: + 1539: color: '#FFFFFFFF' id: DirtLight coordinates: -38,17 - 1554: + 1540: color: '#FFFFFFFF' id: DirtLight coordinates: -39,18 - 1555: + 1541: color: '#FFFFFFFF' id: DirtLight coordinates: -38,18 - 1556: + 1542: color: '#FFFFFFFF' id: DirtLight coordinates: -38,19 - 1557: + 1543: color: '#FFFFFFFF' id: DirtLight coordinates: -42,22 - 1558: + 1544: color: '#FFFFFFFF' id: DirtLight coordinates: -42,21 - 1559: + 1545: color: '#FFFFFFFF' id: DirtLight coordinates: -41,22 - 1560: + 1546: color: '#FFFFFFFF' id: DirtLight coordinates: -42,18 - 1561: + 1547: color: '#FFFFFFFF' id: DirtLight coordinates: -41,17 - 1562: + 1548: color: '#FFFFFFFF' id: DirtLight coordinates: -41,18 - 1563: + 1549: color: '#FFFFFFFF' id: DirtLight coordinates: -38,23 - 1564: + 1550: color: '#FFFFFFFF' id: DirtLight coordinates: -43,25 - 1565: + 1551: color: '#FFFFFFFF' id: DirtLight coordinates: -44,25 - 1566: + 1552: color: '#FFFFFFFF' id: DirtLight coordinates: -44,24 - 1567: + 1553: color: '#FFFFFFFF' id: DirtLight coordinates: -45,24 - 1568: + 1554: color: '#FFFFFFFF' id: DirtLight coordinates: -40,27 - 1569: + 1555: color: '#FFFFFFFF' id: DirtLight coordinates: -40,27 - 1570: + 1556: color: '#FFFFFFFF' id: DirtLight coordinates: -40,28 - 1571: + 1557: color: '#FFFFFFFF' id: DirtLight coordinates: -39,28 - 1572: + 1558: color: '#FFFFFFFF' id: DirtLight coordinates: -39,29 - 1593: + 1579: color: '#FFFFFFFF' id: Bot coordinates: -46,25 - 1594: + 1580: color: '#FFFFFFFF' id: Bot coordinates: -46,24 - 1599: + 1585: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarnCornerFlipped coordinates: -64,0 - 1600: + 1586: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -63,0 - 1601: + 1587: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -62,0 - 1602: + 1588: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarnCorner coordinates: -61,0 - 1633: + 1619: color: '#FFFFFFFF' id: DirtHeavy coordinates: -33,17 - 1634: + 1620: color: '#FFFFFFFF' id: DirtLight coordinates: -34,18 - 1635: + 1621: color: '#FFFFFFFF' id: DirtLight coordinates: -33,19 - 1636: + 1622: color: '#FFFFFFFF' id: DirtLight coordinates: -33,20 - 1637: + 1623: color: '#FFFFFFFF' id: DirtLight coordinates: -34,19 - 1639: + 1625: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,20 - 1640: + 1626: color: '#FFFFFFFF' id: DirtMedium coordinates: -35,18 - 1641: + 1627: color: '#FFFFFFFF' id: DirtMedium coordinates: -35,17 - 1642: + 1628: color: '#FFFFFFFF' id: DirtMedium coordinates: -36,18 - 1643: + 1629: color: '#FFFFFFFF' id: DirtMedium coordinates: -34,20 - 1644: + 1630: color: '#FFFFFFFF' id: DirtMedium coordinates: -35,20 - 1646: + 1632: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,22 - 1647: + 1633: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,21 - 1650: + 1636: color: '#FFFFFFFF' id: DirtLight coordinates: -36,19 - 1651: + 1637: color: '#FFFFFFFF' id: DirtLight coordinates: -36,20 - 1652: + 1638: color: '#FFFFFFFF' id: DirtLight coordinates: -37,19 - 1653: + 1639: color: '#FFFFFFFF' id: DirtLight coordinates: -37,19 - 1654: + 1640: color: '#FFFFFFFF' id: DirtLight coordinates: -37,18 - 1655: + 1641: color: '#FFFFFFFF' id: DirtLight coordinates: -42,19 - 1656: + 1642: color: '#FFFFFFFF' id: DirtLight coordinates: -42,20 - 1657: + 1643: color: '#FFFFFFFF' id: DirtLight coordinates: -42,22 - 1658: + 1644: color: '#FFFFFFFF' id: DirtLight coordinates: -42,22 - 1659: + 1645: color: '#FFFFFFFF' id: DirtLight coordinates: -41,21 - 1660: + 1646: color: '#FFFFFFFF' id: DirtLight coordinates: -41,22 - 1661: + 1647: color: '#FFFFFFFF' id: DirtLight coordinates: -41,20 - 1662: + 1648: color: '#FFFFFFFF' id: DirtMedium coordinates: -45,19 - 1663: + 1649: color: '#FFFFFFFF' id: DirtMedium coordinates: -46,20 - 1664: + 1650: color: '#FFFFFFFF' id: DirtMedium coordinates: -44,20 - 1665: + 1651: color: '#FFFFFFFF' id: DirtHeavy coordinates: -44,19 - 1753: + 1739: color: '#FFFFFFFF' id: DirtMedium coordinates: -42,14 - 1754: + 1740: color: '#FFFFFFFF' id: DirtMedium coordinates: -41,15 - 1755: + 1741: color: '#FFFFFFFF' id: DirtMedium coordinates: -38,13 - 1756: + 1742: color: '#FFFFFFFF' id: DirtMedium coordinates: -39,15 - 1757: + 1743: color: '#FFFFFFFF' id: DirtMedium coordinates: -35,15 - 1758: + 1744: color: '#FFFFFFFF' id: DirtMedium coordinates: -35,14 - 1759: + 1745: color: '#FFFFFFFF' id: DirtMedium coordinates: -36,13 - 1760: + 1746: color: '#FFFFFFFF' id: DirtMedium coordinates: -36,13 - 1761: + 1747: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,14 - 1762: + 1748: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,14 - 1764: + 1750: color: '#FFFFFFFF' id: DirtLight coordinates: -33,15 - 1765: + 1751: color: '#FFFFFFFF' id: DirtLight coordinates: -33,16 - 1766: + 1752: color: '#FFFFFFFF' id: DirtLight coordinates: -36,16 - 1767: + 1753: color: '#FFFFFFFF' id: DirtLight coordinates: -39,16 - 1768: + 1754: color: '#FFFFFFFF' id: DirtLight coordinates: -39,15 - 1769: + 1755: color: '#FFFFFFFF' id: DirtLight coordinates: -42,16 - 1770: + 1756: color: '#FFFFFFFF' id: DirtLight coordinates: -41,13 @@ -2058,227 +2060,211 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: -57,-33 - 842: + 832: color: '#FFFFFFFF' id: DirtHeavy coordinates: -49,-34 - 843: + 833: color: '#FFFFFFFF' id: DirtHeavy coordinates: -48,-33 - 844: + 834: color: '#FFFFFFFF' id: DirtHeavy coordinates: -50,-33 - 845: + 835: color: '#FFFFFFFF' id: DirtHeavy coordinates: -47,-35 - 846: + 836: color: '#FFFFFFFF' id: DirtHeavy coordinates: -46,-34 - 847: + 837: color: '#FFFFFFFF' id: DirtHeavy coordinates: -45,-35 - 848: + 838: color: '#FFFFFFFF' id: DirtHeavy coordinates: -46,-33 - 849: + 839: color: '#FFFFFFFF' id: DirtHeavy coordinates: -50,-35 - 850: + 840: color: '#FFFFFFFF' id: DirtHeavy coordinates: -52,-34 - 851: + 841: color: '#FFFFFFFF' id: DirtMedium coordinates: -51,-35 - 852: + 842: color: '#FFFFFFFF' id: DirtMedium coordinates: -50,-34 - 853: + 843: color: '#FFFFFFFF' id: DirtMedium coordinates: -51,-33 - 854: + 844: color: '#FFFFFFFF' id: DirtMedium coordinates: -45,-34 - 855: + 845: color: '#FFFFFFFF' id: DirtMedium coordinates: -44,-33 - 858: + 848: color: '#FFFFFFFF' id: DirtMedium coordinates: -53,-34 - 859: + 849: color: '#FFFFFFFF' id: DirtLight coordinates: -52,-35 - 860: + 850: color: '#FFFFFFFF' id: DirtLight coordinates: -52,-33 - 861: + 851: color: '#FFFFFFFF' id: DirtLight coordinates: -54,-34 - 862: + 852: color: '#FFFFFFFF' id: DirtLight coordinates: -45,-33 - 863: + 853: color: '#FFFFFFFF' id: DirtLight coordinates: -44,-34 - 1831: + 1981: + angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot coordinates: -34,-33 - 1832: + 1979: color: '#FFFFFFFF' - id: Bot + id: LoadingArea coordinates: -34,-34 - 1880: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -33,-34 - 1883: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -34,-33 - 1884: + 1870: color: '#FFFFFFFF' id: DirtLight coordinates: -33,-33 - 1894: - angle: -3.141592653589793 rad - color: '#FFFFFFFF' - id: WarnCornerFlipped - coordinates: -33,-35 -2,-1: 13: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: LoadingArea coordinates: -57,-23 - 15: - angle: 3.141592653589793 rad + 2055: color: '#FFFFFFFF' id: DirtHeavy - coordinates: -38,-18 - 16: - angle: 3.141592653589793 rad - color: '#FFFFFFFF' - id: DirtHeavy - coordinates: -40,-19 - 17: - angle: 3.141592653589793 rad + coordinates: -37,-11 + 1991: + color: '#A4610696' + id: CheckerNWSE + coordinates: -40,-16 + 2058: color: '#FFFFFFFF' - id: DirtLight - coordinates: -39,-18 - 18: - angle: 3.141592653589793 rad + id: DirtMedium + coordinates: -36,-14 + 2059: color: '#FFFFFFFF' - id: DirtLight - coordinates: -38,-19 - 19: - angle: 3.141592653589793 rad + id: DirtMedium + coordinates: -34,-9 + 2057: color: '#FFFFFFFF' id: DirtMedium - coordinates: -39,-19 - 20: - angle: 3.141592653589793 rad + coordinates: -37,-13 + 2056: color: '#FFFFFFFF' id: DirtMedium - coordinates: -40,-18 - 107: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -35,-12 - 108: + coordinates: -37,-12 + 1999: color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -34,-12 - 109: + id: CheckerNWSE + coordinates: -38,-16 + 1998: color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -33,-12 - 114: + id: CheckerNWSE + coordinates: -39,-16 + 1994: color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -36,-12 - 115: + id: CheckerNWSE + coordinates: -40,-19 + 2006: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLine + coordinates: -34,-11 + 2026: color: '#A4610696' id: QuarterTileOverlayGreyscale - coordinates: -37,-13 - 116: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -38,-13 - 117: - color: '#A4610696' - id: HalfTileOverlayGreyscale270 - coordinates: -39,-14 - 118: + coordinates: -34,-16 + 2025: color: '#A4610696' - id: HalfTileOverlayGreyscale270 - coordinates: -39,-15 - 119: + id: ThreeQuarterTileOverlayGreyscale + coordinates: -36,-16 + 2034: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -38,-16 - 120: + coordinates: -35,-19 + 2035: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -37,-16 - 121: + coordinates: -34,-19 + 2040: color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -34,-16 - 122: + id: HalfTileOverlayGreyscale270 + coordinates: -36,-18 + 2042: color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -33,-16 - 132: + id: HalfTileOverlayGreyscale + coordinates: -35,-16 + 2071: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -33,-9 + 1992: color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale - coordinates: -39,-13 - 133: + id: CheckerNWSE + coordinates: -40,-17 + 2029: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale270 - coordinates: -39,-16 - 135: - color: '#A4610696' - id: QuarterTileOverlayGreyscale90 - coordinates: -37,-13 - 136: - color: '#A4610696' - id: QuarterTileOverlayGreyscale270 - coordinates: -36,-12 - 137: + coordinates: -36,-19 + 2039: color: '#A4610696' - id: QuarterTileOverlayGreyscale - coordinates: -36,-13 - 169: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -36,-18 - 170: + id: HalfTileOverlayGreyscale270 + coordinates: -36,-17 + 2024: color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -35,-18 - 171: + id: ThreeQuarterTileOverlayGreyscale + coordinates: -34,-14 + 2002: color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -34,-18 + id: CheckerNWSE + coordinates: -38,-19 + 2007: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLine + coordinates: -33,-11 + 2053: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: -37,-14 + 2054: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: -38,-13 + 2064: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: -35,-8 174: color: '#EFB34196' id: HalfTileOverlayGreyscale270 @@ -2391,70 +2377,70 @@ entities: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -57,-19 - 308: - color: '#FFFFFFFF' - id: DirtHeavy - coordinates: -36,-7 - 309: - color: '#FFFFFFFF' - id: DirtHeavy - coordinates: -34,-9 - 310: - color: '#FFFFFFFF' - id: DirtHeavy - coordinates: -36,-9 - 311: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -35,-10 - 312: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -35,-8 - 313: + 2080: color: '#FFFFFFFF' id: DirtLight - coordinates: -35,-9 - 314: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -38,-13 - 315: + coordinates: -33,-15 + 2072: color: '#FFFFFFFF' id: DirtLight - coordinates: -34,-12 - 316: + coordinates: -33,-12 + 2081: color: '#FFFFFFFF' id: DirtLight - coordinates: -33,-16 - 317: + coordinates: -34,-16 + 2082: color: '#FFFFFFFF' id: DirtLight - coordinates: -36,-14 - 318: + coordinates: -35,-19 + 2079: color: '#FFFFFFFF' id: DirtLight - coordinates: -37,-16 - 325: + coordinates: -34,-15 + 2078: color: '#FFFFFFFF' id: DirtLight - coordinates: -34,-13 - 326: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -37,-13 - 327: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -38,-16 - 328: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -33,-13 - 330: - color: '#FFFFFFFF' - id: DirtMedium - coordinates: -36,-12 + coordinates: -34,-14 + 2017: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -33,-12 + 1997: + color: '#A4610696' + id: CheckerNWSE + coordinates: -39,-17 + 1993: + color: '#A4610696' + id: CheckerNWSE + coordinates: -40,-18 + 2000: + color: '#A4610696' + id: CheckerNWSE + coordinates: -38,-17 + 2041: + color: '#A4610696' + id: HalfTileOverlayGreyscale270 + coordinates: -34,-15 + 1996: + color: '#A4610696' + id: CheckerNWSE + coordinates: -39,-18 + 2016: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -34,-12 + 2036: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -33,-19 + 1995: + color: '#A4610696' + id: CheckerNWSE + coordinates: -39,-19 + 2001: + color: '#A4610696' + id: CheckerNWSE + coordinates: -38,-18 544: color: '#FFFFFFFF' id: DirtHeavy @@ -2519,10 +2505,10 @@ entities: color: '#FFFFFFFF' id: DirtMedium coordinates: -36,-21 - 583: + 2060: color: '#FFFFFFFF' id: DirtMedium - coordinates: -36,-20 + coordinates: -33,-8 584: color: '#FFFFFFFF' id: DirtMedium @@ -2547,14 +2533,14 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: -42,-21 - 590: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -35,-20 - 591: + 2063: color: '#FFFFFFFF' - id: DirtLight - coordinates: -36,-18 + id: DirtHeavy + coordinates: -35,-7 + 2043: + color: '#A4610696' + id: HalfTileOverlayGreyscale + coordinates: -33,-14 592: color: '#FFFFFFFF' id: DirtLight @@ -2735,462 +2721,500 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: -53,-18 - 856: + 846: color: '#FFFFFFFF' id: DirtMedium coordinates: -46,-31 - 857: + 847: color: '#FFFFFFFF' id: DirtMedium coordinates: -45,-32 - 864: + 854: color: '#FFFFFFFF' id: DirtLight coordinates: -45,-31 - 865: + 855: color: '#FFFFFFFF' id: DirtLight coordinates: -45,-30 - 866: + 856: color: '#FFFFFFFF' id: DirtLight coordinates: -44,-32 - 914: + 904: cleanable: True color: '#B02E26FF' id: r coordinates: -57.975975,-21.389578 - 915: + 905: cleanable: True color: '#B02E26FF' id: u coordinates: -57.39963,-21.405203 - 916: + 906: cleanable: True color: '#B02E26FF' id: n coordinates: -57.009007,-21.483328 - 917: + 907: cleanable: True color: '#B02E26FF' id: end coordinates: -57.540257,-22.030203 - 928: + 914: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -33,-23 - 929: + 915: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -34,-23 - 933: + 919: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -35,-23 - 934: + 920: zIndex: 5 color: '#FFFFFFFF' id: DirtHeavy coordinates: -35,-23 - 935: + 921: zIndex: 5 color: '#FFFFFFFF' id: DirtLight coordinates: -34,-23 - 936: + 922: zIndex: 5 color: '#FFFFFFFF' id: DirtLight coordinates: -33,-23 - 1388: + 1374: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -47,-2 - 1389: + 1375: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -48,-2 - 1390: + 1376: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -49,-2 - 1392: + 1378: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -47,-1 - 1394: + 1380: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -64,-5 - 1395: + 1381: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -51,-5 - 1403: + 1389: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: -64,-4 - 1404: + 1390: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -51,-1 - 1405: + 1391: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -51,-2 - 1406: + 1392: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -51,-3 - 1407: + 1393: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -51,-4 - 1408: + 1394: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -63,-5 - 1409: + 1395: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -62,-5 - 1410: + 1396: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -61,-5 - 1411: + 1397: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -60,-5 - 1412: + 1398: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -59,-5 - 1413: + 1399: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -58,-5 - 1414: + 1400: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -57,-5 - 1415: + 1401: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -56,-5 - 1416: + 1402: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -55,-5 - 1417: + 1403: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -54,-5 - 1418: + 1404: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -53,-5 - 1419: + 1405: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -52,-5 - 1429: + 1415: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-11 - 1430: + 1416: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-12 - 1431: + 1417: color: '#EFB34196' id: CheckerNWSE coordinates: -63,-12 - 1432: + 1418: color: '#EFB34196' id: CheckerNWSE coordinates: -63,-13 - 1433: + 1419: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-13 - 1436: + 1422: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-14 - 1437: + 1423: color: '#EFB34196' id: CheckerNWSE coordinates: -63,-14 - 1438: + 1424: color: '#EFB34196' id: CheckerNWSE coordinates: -63,-15 - 1439: + 1425: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-15 - 1442: + 1428: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-16 - 1443: + 1429: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-17 - 1449: + 1435: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-19 - 1450: + 1436: color: '#EFB34196' id: CheckerNWSE coordinates: -64,-18 - 1457: + 1443: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale coordinates: -64,-3 - 1459: + 1445: color: '#EFB34196' id: QuarterTileOverlayGreyscale coordinates: -59,-3 - 1460: + 1446: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: -59,-1 - 1461: + 1447: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: -59,-2 - 1462: + 1448: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -63,-3 - 1463: + 1449: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -62,-3 - 1464: + 1450: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -61,-3 - 1465: + 1451: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -60,-3 - 1592: + 1578: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -51,-14 - 1595: + 1581: color: '#FFFFFFFF' id: WarningLine coordinates: -62,-1 - 1596: + 1582: color: '#FFFFFFFF' id: WarningLine coordinates: -63,-1 - 1597: + 1583: color: '#FFFFFFFF' id: WarnCornerFlipped coordinates: -61,-1 - 1598: + 1584: color: '#FFFFFFFF' id: WarnCorner coordinates: -64,-1 - 1603: + 1589: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -60,-11 - 1604: + 1590: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -59,-11 - 1695: + 1681: color: '#EFB34196' id: CheckerNWSE coordinates: -63,-11 - 1696: + 1682: color: '#FFFFFFFF' id: DirtHeavy coordinates: -64,-9 - 1697: + 1683: color: '#FFFFFFFF' id: DirtHeavy coordinates: -63,-8 - 1698: + 1684: color: '#FFFFFFFF' id: DirtHeavy coordinates: -62,-8 - 1699: + 1685: color: '#FFFFFFFF' id: DirtHeavy coordinates: -62,-8 - 1700: + 1686: color: '#FFFFFFFF' id: DirtHeavy coordinates: -62,-9 - 1701: + 1687: color: '#FFFFFFFF' id: DirtHeavy coordinates: -61,-7 - 1702: + 1688: color: '#FFFFFFFF' id: DirtHeavy coordinates: -64,-9 - 1703: + 1689: color: '#FFFFFFFF' id: DirtHeavy coordinates: -63,-8 - 1704: + 1690: color: '#FFFFFFFF' id: DirtHeavy coordinates: -61,-9 - 1705: + 1691: color: '#FFFFFFFF' id: DirtHeavy coordinates: -60,-8 - 1706: + 1692: color: '#FFFFFFFF' id: DirtHeavy coordinates: -60,-7 - 1707: + 1693: color: '#FFFFFFFF' id: DirtHeavy coordinates: -60,-8 - 1708: + 1694: color: '#FFFFFFFF' id: DirtMedium coordinates: -60,-9 - 1709: + 1695: color: '#FFFFFFFF' id: DirtMedium coordinates: -59,-8 - 1710: + 1696: color: '#FFFFFFFF' id: DirtMedium coordinates: -59,-7 - 1711: + 1697: color: '#FFFFFFFF' id: DirtMedium coordinates: -58,-7 - 1712: + 1698: color: '#FFFFFFFF' id: DirtMedium coordinates: -58,-9 - 1713: + 1699: color: '#FFFFFFFF' id: DirtLight coordinates: -59,-9 - 1714: + 1700: color: '#FFFFFFFF' id: DirtLight coordinates: -57,-7 - 1715: + 1701: color: '#FFFFFFFF' id: DirtLight coordinates: -57,-8 - 1716: + 1702: color: '#FFFFFFFF' id: DirtLight coordinates: -57,-9 - 1717: + 1703: color: '#FFFFFFFF' id: DirtLight coordinates: -56,-8 - 1718: + 1704: color: '#FFFFFFFF' id: DirtLight coordinates: -56,-7 - 1719: + 1705: color: '#FFFFFFFF' id: DirtLight coordinates: -56,-7 - 1720: + 1706: color: '#FFFFFFFF' id: DirtLight coordinates: -58,-8 - 1829: + 1983: + angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot coordinates: -34,-31 - 1830: + 2083: color: '#FFFFFFFF' - id: Bot - coordinates: -34,-32 - 1841: + id: DirtLight + coordinates: -35,-18 + 1827: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale coordinates: -34,-25 - 1843: + 1829: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -34,-30 - 1845: + 1831: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -33,-30 - 1848: + 1834: color: '#A4610696' id: HalfTileOverlayGreyscale270 coordinates: -34,-29 - 1849: + 1835: color: '#A4610696' id: HalfTileOverlayGreyscale270 coordinates: -34,-28 - 1850: + 1836: color: '#A4610696' id: HalfTileOverlayGreyscale270 coordinates: -34,-27 - 1851: + 1837: color: '#A4610696' id: HalfTileOverlayGreyscale270 coordinates: -34,-26 - 1856: + 1842: color: '#A4610696' id: HalfTileOverlayGreyscale coordinates: -33,-25 - 1859: + 1845: color: '#FFFFFFFF' id: DirtMedium coordinates: -33,-26 - 1865: + 1851: color: '#FFFFFFFF' id: DirtLight coordinates: -33,-27 - 1867: + 1853: color: '#FFFFFFFF' id: DirtLight coordinates: -33,-25 - 1868: + 1854: color: '#FFFFFFFF' id: DirtLight coordinates: -34,-26 - 1869: + 1855: color: '#FFFFFFFF' id: DirtLight coordinates: -33,-27 - 1870: + 1856: color: '#FFFFFFFF' id: DirtLight coordinates: -33,-28 - 1872: + 1982: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: DirtLight - coordinates: -33,-31 - 1983: + id: Bot + coordinates: -34,-32 + 1968: color: '#FFFFFFFF' id: WarningLine coordinates: -34,-30 - 1984: + 1969: color: '#FFFFFFFF' id: WarningLine coordinates: -33,-30 + 2084: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -36,-18 + 2085: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -34,-18 + 2086: + color: '#FFFFFFFF' + id: DirtMedium + coordinates: -36,-19 + 2098: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -35,-17 + 2099: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -39,-17 + 2100: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -40,-17 + 2101: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -40,-18 + 2102: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -39,-18 + 2103: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -39,-16 0,-1: 14: angle: 3.141592653589793 rad @@ -3381,976 +3405,976 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: 1,-27 - 792: + 782: color: '#FFFFFFFF' id: DirtHeavy coordinates: 10,-13 - 793: + 783: color: '#FFFFFFFF' id: DirtHeavy coordinates: 10,-14 - 794: + 784: color: '#FFFFFFFF' id: DirtHeavy coordinates: 10,-16 - 795: + 785: color: '#FFFFFFFF' id: DirtHeavy coordinates: 9,-14 - 796: + 786: color: '#FFFFFFFF' id: DirtHeavy coordinates: 10,-12 - 797: + 787: color: '#FFFFFFFF' id: DirtMedium coordinates: 10,-15 - 798: + 788: color: '#FFFFFFFF' id: DirtMedium coordinates: 9,-15 - 799: + 789: color: '#FFFFFFFF' id: DirtMedium coordinates: 9,-13 - 800: + 790: color: '#FFFFFFFF' id: DirtMedium coordinates: 10,-11 - 801: + 791: color: '#FFFFFFFF' id: DirtMedium coordinates: 9,-10 - 802: + 792: color: '#FFFFFFFF' id: DirtLight coordinates: 9,-12 - 803: + 793: color: '#FFFFFFFF' id: DirtLight coordinates: 8,-13 - 804: + 794: color: '#FFFFFFFF' id: DirtLight coordinates: 8,-14 - 805: + 795: color: '#FFFFFFFF' id: DirtLight coordinates: 9,-16 - 806: + 796: color: '#FFFFFFFF' id: DirtLight coordinates: 9,-18 - 807: + 797: color: '#FFFFFFFF' id: DirtLight coordinates: 10,-17 - 808: + 798: color: '#FFFFFFFF' id: DirtLight coordinates: 8,-15 - 809: + 799: color: '#FFFFFFFF' id: DirtLight coordinates: 10,-11 - 810: + 800: color: '#FFFFFFFF' id: DirtLight coordinates: 8,-12 - 811: + 801: color: '#FFFFFFFF' id: DirtLight coordinates: 9,-11 - 812: + 802: color: '#FFFFFFFF' id: DirtLight coordinates: 9,-9 - 815: + 805: color: '#FFFFFFFF' id: WarningLine coordinates: 19,-32 - 816: + 806: color: '#FFFFFFFF' id: WarningLine coordinates: 20,-32 - 817: + 807: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 21,-31 - 818: + 808: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 21,-30 - 819: + 809: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: 19,-29 - 820: + 810: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: 20,-29 - 821: + 811: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: WarningLine coordinates: 18,-30 - 822: + 812: angle: 4.71238898038469 rad color: '#FFFFFFFF' id: WarningLine coordinates: 18,-31 - 823: + 813: color: '#FFFFFFFF' id: WarnCornerFlipped coordinates: 21,-32 - 824: + 814: color: '#FFFFFFFF' id: WarnCorner coordinates: 18,-32 - 825: + 815: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarnCornerFlipped coordinates: 21,-29 - 826: + 816: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarnCornerFlipped coordinates: 18,-29 - 1004: + 990: color: '#9FED5896' id: CheckerNWSE coordinates: 14,-4 - 1005: + 991: color: '#9FED5896' id: CheckerNWSE coordinates: 14,-5 - 1006: + 992: color: '#9FED5896' id: CheckerNWSE coordinates: 15,-4 - 1007: + 993: color: '#9FED5896' id: CheckerNWSE coordinates: 15,-5 - 1008: + 994: color: '#DE3A3A96' id: CheckerNWSE coordinates: 12,-4 - 1009: + 995: color: '#DE3A3A96' id: CheckerNWSE coordinates: 12,-5 - 1010: + 996: color: '#DE3A3A96' id: CheckerNWSE coordinates: 13,-4 - 1011: + 997: color: '#DE3A3A96' id: CheckerNWSE coordinates: 13,-5 - 1017: + 1003: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 19,-5 - 1018: + 1004: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 16,-5 - 1019: + 1005: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 17,-5 - 1020: + 1006: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 18,-5 - 1023: + 1009: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 12,-1 - 1024: + 1010: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 12,-2 - 1025: + 1011: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-1 - 1026: + 1012: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-2 - 1027: + 1013: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-3 - 1028: + 1014: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-4 - 1045: + 1031: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 19,-11 - 1046: + 1032: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: 15,-7 - 1047: + 1033: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 19,-7 - 1048: + 1034: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 15,-11 - 1049: + 1035: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 13,-10 - 1050: + 1036: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 12,-10 - 1051: + 1037: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 16,-7 - 1052: + 1038: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 17,-7 - 1053: + 1039: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 18,-7 - 1054: + 1040: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 13,-9 - 1055: + 1041: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 14,-9 - 1056: + 1042: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-8 - 1057: + 1043: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-9 - 1058: + 1044: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 19,-10 - 1059: + 1045: color: '#52B4E996' id: QuarterTileOverlayGreyscale coordinates: 15,-8 - 1060: + 1046: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 15,-10 - 1061: + 1047: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 16,-11 - 1062: + 1048: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 17,-11 - 1063: + 1049: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 18,-11 - 1070: + 1056: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale coordinates: 31,-7 - 1072: + 1058: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 31,-9 - 1075: + 1061: color: '#9FED5896' id: HalfTileOverlayGreyscale270 coordinates: 31,-8 - 1082: + 1068: color: '#9FED5896' id: HalfTileOverlayGreyscale90 coordinates: 29,-7 - 1083: + 1069: color: '#9FED5896' id: HalfTileOverlayGreyscale90 coordinates: 29,-8 - 1084: + 1070: color: '#9FED5896' id: HalfTileOverlayGreyscale90 coordinates: 29,-9 - 1091: + 1077: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 31,-12 - 1092: + 1078: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 31,-13 - 1097: + 1083: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: 31,-11 - 1098: + 1084: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 31,-14 - 1108: + 1094: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-1 - 1110: + 1096: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-2 - 1111: + 1097: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-3 - 1112: + 1098: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-4 - 1113: + 1099: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-5 - 1114: + 1100: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-6 - 1115: + 1101: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-8 - 1116: + 1102: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,-7 - 1117: + 1103: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-10 - 1118: + 1104: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-11 - 1119: + 1105: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-12 - 1120: + 1106: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-14 - 1121: + 1107: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-13 - 1122: + 1108: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-15 - 1123: + 1109: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-16 - 1124: + 1110: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-18 - 1125: + 1111: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-19 - 1126: + 1112: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 28,-17 - 1127: + 1113: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-19 - 1128: + 1114: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-18 - 1129: + 1115: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-17 - 1130: + 1116: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-16 - 1131: + 1117: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-14 - 1132: + 1118: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-15 - 1133: + 1119: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-13 - 1134: + 1120: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-12 - 1135: + 1121: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-11 - 1136: + 1122: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-10 - 1137: + 1123: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-6 - 1138: + 1124: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-5 - 1139: + 1125: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-4 - 1140: + 1126: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-3 - 1141: + 1127: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 22,-9 - 1142: + 1128: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 23,-9 - 1143: + 1129: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 24,-9 - 1144: + 1130: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 25,-9 - 1145: + 1131: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 26,-9 - 1146: + 1132: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 27,-9 - 1147: + 1133: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 28,-1 - 1148: + 1134: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 27,-1 - 1149: + 1135: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 26,-1 - 1150: + 1136: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 25,-1 - 1151: + 1137: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 24,-1 - 1163: + 1149: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 21,-9 - 1164: + 1150: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 28,-20 - 1165: + 1151: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 29,-20 - 1166: + 1152: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 28,-9 - 1167: + 1153: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 29,-1 - 1178: + 1164: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 31,-5 - 1179: + 1165: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 31,-4 - 1180: + 1166: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 31,-3 - 1181: + 1167: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 31,-2 - 1182: + 1168: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 31,-1 - 1183: + 1169: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 31,-1 - 1184: + 1170: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 23,-1 - 1190: + 1176: color: '#FFFFFFFF' id: DirtHeavy coordinates: 20,-18 - 1191: + 1177: color: '#FFFFFFFF' id: DirtHeavy coordinates: 18,-19 - 1192: + 1178: color: '#FFFFFFFF' id: DirtHeavy coordinates: 19,-20 - 1193: + 1179: color: '#FFFFFFFF' id: DirtMedium coordinates: 18,-18 - 1194: + 1180: color: '#FFFFFFFF' id: DirtMedium coordinates: 18,-17 - 1195: + 1181: color: '#FFFFFFFF' id: DirtMedium coordinates: 19,-18 - 1196: + 1182: color: '#FFFFFFFF' id: DirtMedium coordinates: 20,-20 - 1197: + 1183: color: '#FFFFFFFF' id: DirtMedium coordinates: 19,-19 - 1198: + 1184: color: '#FFFFFFFF' id: DirtMedium coordinates: 20,-17 - 1199: + 1185: color: '#FFFFFFFF' id: DirtHeavy coordinates: 15,-17 - 1200: + 1186: color: '#FFFFFFFF' id: DirtHeavy coordinates: 15,-16 - 1201: + 1187: color: '#FFFFFFFF' id: DirtHeavy coordinates: 16,-15 - 1202: + 1188: color: '#FFFFFFFF' id: DirtHeavy coordinates: 15,-13 - 1203: + 1189: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,-15 - 1204: + 1190: color: '#FFFFFFFF' id: DirtMedium coordinates: 16,-14 - 1205: + 1191: color: '#FFFFFFFF' id: DirtMedium coordinates: 16,-13 - 1221: + 1207: color: '#FFFFFFFF' id: DirtLight coordinates: 12,-4 - 1222: + 1208: color: '#FFFFFFFF' id: DirtLight coordinates: 13,-5 - 1223: + 1209: color: '#FFFFFFFF' id: DirtLight coordinates: 15,-4 - 1224: + 1210: color: '#FFFFFFFF' id: DirtLight coordinates: 14,-4 - 1225: + 1211: color: '#FFFFFFFF' id: DirtMedium coordinates: 14,-5 - 1226: + 1212: color: '#FFFFFFFF' id: DirtMedium coordinates: 17,-5 - 1227: + 1213: color: '#FFFFFFFF' id: DirtMedium coordinates: 18,-4 - 1228: + 1214: color: '#FFFFFFFF' id: DirtHeavy coordinates: 18,-5 - 1239: + 1225: color: '#FFFFFFFF' id: DirtLight coordinates: 12,-2 - 1241: + 1227: color: '#FFFFFFFF' id: DirtLight coordinates: 17,-4 - 1242: + 1228: color: '#FFFFFFFF' id: DirtLight coordinates: 18,-3 - 1243: + 1229: color: '#FFFFFFFF' id: DirtLight coordinates: 18,-2 - 1244: + 1230: color: '#FFFFFFFF' id: DirtLight coordinates: 17,-3 - 1245: + 1231: color: '#FFFFFFFF' id: DirtLight coordinates: 19,-3 - 1246: + 1232: color: '#FFFFFFFF' id: DirtLight coordinates: 19,-4 - 1247: + 1233: color: '#FFFFFFFF' id: DirtLight coordinates: 19,-5 - 1248: + 1234: color: '#FFFFFFFF' id: DirtLight coordinates: 16,-5 - 1249: + 1235: color: '#FFFFFFFF' id: DirtLight coordinates: 13,-2 - 1250: + 1236: color: '#FFFFFFFF' id: DirtLight coordinates: 13,-1 - 1253: + 1239: color: '#FFFFFFFF' id: DirtLight coordinates: 13,-3 - 1254: + 1240: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 12,-3 - 1255: + 1241: color: '#FFFFFFFF' id: DirtLight coordinates: 12,-3 - 1256: + 1242: color: '#FFFFFFFF' id: DirtLight coordinates: 14,-2 - 1257: + 1243: color: '#FFFFFFFF' id: WarningLine coordinates: 12,-3 - 1258: + 1244: color: '#FFFFFFFF' id: WarningLine coordinates: 13,-3 - 1259: + 1245: color: '#FFFFFFFF' id: WarningLine coordinates: 14,-3 - 1260: + 1246: color: '#FFFFFFFF' id: WarningLine coordinates: 15,-3 - 1291: + 1277: color: '#FFFFFFFF' id: DirtMedium coordinates: 13,-9 - 1292: + 1278: color: '#FFFFFFFF' id: DirtMedium coordinates: 12,-10 - 1293: + 1279: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,-8 - 1294: + 1280: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,-10 - 1295: + 1281: color: '#FFFFFFFF' id: DirtMedium coordinates: 16,-9 - 1296: + 1282: color: '#FFFFFFFF' id: DirtMedium coordinates: 14,-9 - 1297: + 1283: color: '#FFFFFFFF' id: DirtHeavy coordinates: 16,-8 - 1298: + 1284: color: '#FFFFFFFF' id: DirtLight coordinates: 15,-7 - 1299: + 1285: color: '#FFFFFFFF' id: DirtLight coordinates: 17,-8 - 1300: + 1286: color: '#FFFFFFFF' id: DirtLight coordinates: 16,-10 - 1301: + 1287: color: '#FFFFFFFF' id: DirtLight coordinates: 17,-9 - 1302: + 1288: color: '#FFFFFFFF' id: DirtLight coordinates: 18,-8 - 1303: + 1289: color: '#FFFFFFFF' id: DirtLight coordinates: 16,-7 - 1304: + 1290: color: '#FFFFFFFF' id: DirtLight coordinates: 17,-7 - 1305: + 1291: color: '#FFFFFFFF' id: DirtLight coordinates: 16,-11 - 1313: + 1299: color: '#FFFFFFFF' id: DirtLight coordinates: 24,-5 - 1314: + 1300: color: '#FFFFFFFF' id: DirtLight coordinates: 24,-1 - 1315: + 1301: color: '#FFFFFFFF' id: DirtLight coordinates: 24,-2 - 1316: + 1302: color: '#FFFFFFFF' id: DirtLight coordinates: 21,-2 - 1317: + 1303: color: '#FFFFFFFF' id: DirtLight coordinates: 21,-3 - 1318: + 1304: color: '#FFFFFFFF' id: DirtLight coordinates: 22,-1 - 1319: + 1305: color: '#FFFFFFFF' id: DirtLight coordinates: 21,-8 - 1320: + 1306: color: '#FFFFFFFF' id: DirtLight coordinates: 21,-7 - 1321: + 1307: color: '#FFFFFFFF' id: DirtLight coordinates: 22,-7 - 1322: + 1308: color: '#FFFFFFFF' id: DirtLight coordinates: 24,-8 - 1323: + 1309: color: '#FFFFFFFF' id: DirtLight coordinates: 25,-8 - 1324: + 1310: color: '#FFFFFFFF' id: DirtLight coordinates: 27,-9 - 1325: + 1311: color: '#FFFFFFFF' id: DirtLight coordinates: 29,-8 - 1326: + 1312: color: '#FFFFFFFF' id: DirtLight coordinates: 29,-7 - 1327: + 1313: color: '#FFFFFFFF' id: DirtLight coordinates: 29,-9 - 1328: + 1314: color: '#FFFFFFFF' id: DirtLight coordinates: 28,-8 - 1329: + 1315: color: '#FFFFFFFF' id: DirtLight coordinates: 29,-3 - 1330: + 1316: color: '#FFFFFFFF' id: DirtLight coordinates: 28,-3 - 1331: + 1317: color: '#FFFFFFFF' id: DirtLight coordinates: 26,-3 - 1332: + 1318: color: '#FFFFFFFF' id: DirtLight coordinates: 26,-4 - 1333: + 1319: color: '#FFFFFFFF' id: DirtLight coordinates: 25,-3 - 1334: + 1320: color: '#FFFFFFFF' id: DirtLight coordinates: 25,-2 - 1335: + 1321: color: '#FFFFFFFF' id: DirtLight coordinates: 26,-1 - 1336: + 1322: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 29,-2 - 1337: + 1323: color: '#FFFFFFFF' id: DirtLight coordinates: 31,-3 - 1338: + 1324: color: '#FFFFFFFF' id: DirtLight coordinates: 29,-2 - 1357: + 1343: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 25,-5 - 1358: + 1344: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 25,-4 - 1359: + 1345: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 25,-6 - 1360: + 1346: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 24,-5 - 1361: + 1347: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: 26,-5 - 1362: + 1348: color: '#FFFFFFFF' id: Box coordinates: 18,-5 - 1363: + 1349: color: '#FFFFFFFF' id: Box coordinates: 18,-4 - 1812: + 1798: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 30,-27 - 1813: + 1799: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: 30,-26 - 1814: + 1800: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCorner coordinates: 30,-28 - 1818: + 1804: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 1,-4 - 1819: + 1805: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarnCorner coordinates: 1,-5 - 1820: + 1806: color: '#DE3A3A96' id: CheckerNWSE coordinates: 4,-4 - 1821: + 1807: color: '#DE3A3A96' id: CheckerNWSE coordinates: 4,-5 - 1822: + 1808: color: '#DE3A3A96' id: CheckerNWSE coordinates: 4,-6 - 1823: + 1809: color: '#DE3A3A96' id: CheckerNWSE coordinates: 5,-6 - 1824: + 1810: color: '#DE3A3A96' id: CheckerNWSE coordinates: 5,-5 - 1825: + 1811: color: '#DE3A3A96' id: CheckerNWSE coordinates: 5,-4 - 1826: + 1812: color: '#DE3A3A96' id: CheckerNWSE coordinates: 6,-4 - 1827: + 1813: color: '#DE3A3A96' id: CheckerNWSE coordinates: 6,-5 - 1828: + 1814: color: '#DE3A3A96' id: CheckerNWSE coordinates: 6,-6 @@ -4611,15 +4635,15 @@ entities: color: '#FFFFFFFF' id: DirtHeavy coordinates: 31,-41 - 774: + 764: color: '#FFFFFFFF' id: DirtLight coordinates: 31.968906,-32.872818 - 1988: + 1973: color: '#FFFFFFFF' id: WarningLine coordinates: 29,-33 - 1989: + 1974: color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: 30,-33 @@ -4788,171 +4812,126 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: -14,-36 - 1833: - color: '#FFFFFFFF' - id: Bot - coordinates: -31,-34 - 1834: - color: '#FFFFFFFF' - id: Bot - coordinates: -31,-33 - 1839: + 1987: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: Bot + id: Delivery coordinates: -28,-33 - 1840: + 1984: + angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot - coordinates: -28,-34 - 1874: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -30,-34 - 1875: - color: '#FFFFFFFF' - id: DirtLight coordinates: -30,-33 - 1876: + 1862: color: '#FFFFFFFF' id: DirtLight coordinates: -29,-33 - 1877: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -30,-35 - 1878: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -32,-35 - 1879: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -32,-34 - 1895: - angle: -3.141592653589793 rad - color: '#FFFFFFFF' - id: WarnCorner - coordinates: -29,-35 - 1896: - angle: -3.141592653589793 rad - color: '#FFFFFFFF' - id: WarningLine - coordinates: -32,-35 - 1897: - angle: -3.141592653589793 rad - color: '#FFFFFFFF' - id: WarningLine - coordinates: -31,-35 - 1898: - angle: -3.141592653589793 rad + 1980: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: WarningLine - coordinates: -30,-35 - 1952: + id: LoadingArea + coordinates: -30,-34 + 1937: color: '#FFFFFFFF' id: Bushi1 coordinates: -10.958008,-35.12283 - 1953: + 1938: color: '#FFFFFFFF' id: Bushi1 coordinates: -11.473633,-35.669704 - 1954: + 1939: color: '#FFFFFFFF' id: Bushi1 coordinates: -11.411133,-37.02908 - 1955: + 1940: color: '#FFFFFFFF' id: Bushi1 coordinates: -12.567383,-36.732204 - 1956: + 1941: color: '#FFFFFFFF' id: Bushi3 coordinates: -19.303513,-34.74783 - 1957: + 1942: color: '#FFFFFFFF' id: Bushi3 coordinates: -19.116013,-35.169704 - 1958: + 1943: color: '#FFFFFFFF' id: Bushi3 coordinates: -19.866013,-36.825954 - 1959: + 1944: color: '#FFFFFFFF' id: Bushi3 coordinates: -19.116013,-36.40408 - 1960: + 1945: color: '#FFFFFFFF' id: Bushi3 coordinates: -18.116013,-36.888454 - 1961: + 1946: color: '#FFFFFFFF' id: Bushi4 coordinates: -16.178513,-35.888454 -1,-1: - 110: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -32,-12 - 111: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -31,-12 - 112: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -29,-12 - 113: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -28,-12 - 123: + 2022: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -32,-16 - 124: + coordinates: -28,-12 + 2020: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -31,-16 - 125: + coordinates: -30,-12 + 2019: color: '#A4610696' id: HalfTileOverlayGreyscale180 + coordinates: -31,-12 + 2015: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLineCornerFlipped + coordinates: -29,-11 + 2011: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLine + coordinates: -27,-11 + 2008: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLine + coordinates: -31,-11 + 2013: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: WarningLineCorner + coordinates: -29,-11 + 2105: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -31,-19 + 2107: + color: '#FFFFFFFF' + id: DirtLight coordinates: -30,-16 - 126: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -29,-16 - 127: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -28,-16 - 128: - color: '#A4610696' - id: HalfTileOverlayGreyscale90 - coordinates: -27,-15 - 129: - color: '#A4610696' - id: HalfTileOverlayGreyscale90 - coordinates: -27,-14 - 130: - color: '#A4610696' - id: HalfTileOverlayGreyscale90 - coordinates: -27,-13 - 131: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale90 - coordinates: -27,-12 - 134: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale180 + 2096: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -28,-14 + 2095: + color: '#FFFFFFFF' + id: DirtLight coordinates: -27,-16 - 148: + 2094: color: '#FFFFFFFF' - id: WarningLine - coordinates: -28,-20 - 149: + id: DirtLight + coordinates: -28,-17 + 2092: color: '#FFFFFFFF' - id: LoadingArea - coordinates: -27,-19 + id: DirtLight + coordinates: -27,-15 + 2106: + color: '#FFFFFFFF' + id: DirtLight + coordinates: -31,-18 150: color: '#D381C996' id: CheckerNWSE @@ -4985,50 +4964,50 @@ entities: color: '#FFFFFFFF' id: WarningLine coordinates: -2,-27 - 172: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -28,-18 - 173: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -27,-18 - 319: + 2108: color: '#FFFFFFFF' id: DirtLight - coordinates: -32,-12 - 320: + coordinates: -31,-15 + 2021: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -29,-12 + 2009: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: DirtLight - coordinates: -31,-14 - 321: + id: WarningLine + coordinates: -30,-11 + 2014: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: DirtLight - coordinates: -29,-13 - 322: + id: WarningLineCornerFlipped + coordinates: -32,-11 + 2091: color: '#FFFFFFFF' - id: DirtLight - coordinates: -27,-12 - 323: + id: DirtMedium + coordinates: -27,-15 + 2097: color: '#FFFFFFFF' id: DirtLight - coordinates: -28,-15 - 324: + coordinates: -27,-19 + 2012: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: DirtLight - coordinates: -30,-16 - 329: + id: WarningLineCorner + coordinates: -32,-11 + 2010: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: DirtMedium - coordinates: -32,-16 - 331: + id: WarningLine + coordinates: -28,-11 + 2104: color: '#FFFFFFFF' - id: DirtMedium - coordinates: -29,-16 - 332: + id: DirtLight + coordinates: -30,-19 + 2093: color: '#FFFFFFFF' - id: DirtMedium - coordinates: -27,-13 + id: DirtLight + coordinates: -28,-16 333: color: '#FFFFFFFF' id: DirtHeavy @@ -5145,10 +5124,6 @@ entities: color: '#FFFFFFFF' id: Dirt coordinates: -13,-16 - 362: - color: '#FFFFFFFF' - id: WarningLine - coordinates: -27,-20 363: cleanable: True color: '#FED83DFF' @@ -5466,467 +5441,445 @@ entities: color: '#FFFFFFFF' id: DirtMedium coordinates: -1,-25 - 827: + 817: color: '#FFFFFFFF' id: DirtHeavy coordinates: -14,-9 - 828: + 818: color: '#FFFFFFFF' id: DirtHeavy coordinates: -15,-10 - 829: + 819: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,-10 - 830: + 820: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,-10 - 831: + 821: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,-9 - 832: + 822: color: '#FFFFFFFF' id: DirtMedium coordinates: -16,-10 - 833: + 823: color: '#FFFFFFFF' id: DirtMedium coordinates: -15,-9 - 834: + 824: color: '#FFFFFFFF' id: DirtLight coordinates: -16,-9 - 835: + 825: color: '#FFFFFFFF' id: DirtLight coordinates: -14,-8 - 836: + 826: color: '#FFFFFFFF' id: DirtLight coordinates: -14,-7 - 837: + 827: color: '#FFFFFFFF' id: DirtLight coordinates: -16,-7 - 838: + 828: color: '#FFFFFFFF' id: DirtLight coordinates: -13,-8 - 839: + 829: color: '#FFFFFFFF' id: DirtLight coordinates: -12,-9 - 840: + 830: color: '#FFFFFFFF' id: DirtLight coordinates: -17,-9 - 841: + 831: color: '#FFFFFFFF' id: DirtLight coordinates: -17,-10 - 893: + 883: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -19,-23 - 894: + 884: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -18,-23 - 895: + 885: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -17,-23 - 896: + 886: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -15,-23 - 897: + 887: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -16,-23 - 898: + 888: color: '#9FED5896' id: FullTileOverlayGreyscale coordinates: -15,-24 - 899: + 889: color: '#9FED5896' id: FullTileOverlayGreyscale coordinates: -16,-24 - 900: + 890: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -12,-23 - 901: + 891: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -13,-23 - 902: + 892: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: -14,-23 - 903: + 893: color: '#FFFFFFFF' id: DirtLight coordinates: -14,-23 - 904: + 894: color: '#FFFFFFFF' id: DirtLight coordinates: -9,-23 - 905: + 895: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,-23 - 906: + 896: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,-23 - 907: + 897: color: '#FFFFFFFF' id: DirtLight coordinates: -15,-22 - 908: + 898: color: '#FFFFFFFF' id: DirtLight coordinates: -15,-21 - 909: + 899: color: '#FFFFFFFF' id: DirtLight coordinates: -17,-22 - 910: + 900: color: '#FFFFFFFF' id: DirtLight coordinates: -16,-24 - 911: + 901: color: '#FFFFFFFF' id: DirtLight coordinates: -15,-24 - 912: + 902: color: '#FFFFFFFF' id: DirtLight coordinates: -17,-23 - 913: + 903: color: '#FFFFFFFF' id: DirtLight coordinates: -16,-22 - 930: + 916: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -31,-23 - 931: + 917: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -30,-23 - 932: + 918: zIndex: 5 color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -29,-23 - 937: + 923: zIndex: 5 color: '#FFFFFFFF' id: DirtLight coordinates: -30,-23 - 938: - color: '#A4610696' - id: HalfTileOverlayGreyscale90 - coordinates: -27,-8 - 939: + 2088: + color: '#FFFFFFFF' + id: DirtMedium + coordinates: -28,-19 + 2089: + color: '#FFFFFFFF' + id: DirtMedium + coordinates: -27,-18 + 2032: color: '#A4610696' id: HalfTileOverlayGreyscale90 - coordinates: -27,-9 - 940: + coordinates: -30,-17 + 2027: color: '#A4610696' - id: HalfTileOverlayGreyscale270 - coordinates: -32,-8 - 941: - color: '#A4610696' - id: HalfTileOverlayGreyscale270 - coordinates: -32,-9 - 942: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -31,-10 - 943: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -30,-10 - 944: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -29,-10 - 945: - color: '#A4610696' - id: HalfTileOverlayGreyscale180 - coordinates: -28,-10 - 946: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -31,-7 - 947: - color: '#A4610696' - id: HalfTileOverlayGreyscale - coordinates: -30,-7 - 948: + id: ThreeQuarterTileOverlayGreyscale90 + coordinates: -30,-14 + 2044: color: '#A4610696' id: HalfTileOverlayGreyscale - coordinates: -29,-7 - 949: + coordinates: -32,-14 + 2049: color: '#A4610696' id: HalfTileOverlayGreyscale - coordinates: -28,-7 - 950: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale - coordinates: -32,-7 - 951: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale90 - coordinates: -27,-7 - 952: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale180 - coordinates: -27,-10 - 953: - color: '#A4610696' - id: ThreeQuarterTileOverlayGreyscale270 - coordinates: -32,-10 - 954: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -32,-9 - 955: + coordinates: -26,-21 + 2068: color: '#FFFFFFFF' - id: DirtLight - coordinates: -29,-10 - 956: + id: DirtHeavy + coordinates: -27,-9 + 2069: color: '#FFFFFFFF' - id: DirtLight - coordinates: -29,-9 - 957: + id: DirtHeavy + coordinates: -31,-8 + 2061: color: '#FFFFFFFF' - id: DirtLight - coordinates: -28,-9 - 958: + id: DirtMedium + coordinates: -30,-8 + 2052: + color: '#A4610696' + id: HalfTileOverlayGreyscale + coordinates: -29,-21 + 2062: color: '#FFFFFFFF' - id: DirtLight + id: DirtMedium coordinates: -30,-9 - 959: + 2075: color: '#FFFFFFFF' id: DirtLight - coordinates: -31,-7 - 960: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -31,-8 - 961: + coordinates: -29,-12 + 2028: + color: '#A4610696' + id: ThreeQuarterTileOverlayGreyscale180 + coordinates: -30,-19 + 2077: color: '#FFFFFFFF' id: DirtLight - coordinates: -28,-7 - 962: + coordinates: -28,-12 + 2090: color: '#FFFFFFFF' id: DirtMedium - coordinates: -30,-10 - 963: + coordinates: -27,-14 + 2037: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -32,-19 + 2023: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -27,-12 + 2067: color: '#FFFFFFFF' - id: DirtMedium - coordinates: -32,-10 - 964: + id: DirtHeavy + coordinates: -28,-8 + 2065: color: '#FFFFFFFF' - id: DirtMedium + id: DirtHeavy coordinates: -27,-7 - 965: + 2070: color: '#FFFFFFFF' id: DirtLight - coordinates: -27,-8 - 966: + coordinates: -31,-7 + 2050: + color: '#A4610696' + id: HalfTileOverlayGreyscale + coordinates: -27,-21 + 2051: + color: '#A4610696' + id: HalfTileOverlayGreyscale + coordinates: -28,-21 + 2031: + color: '#A4610696' + id: HalfTileOverlayGreyscale90 + coordinates: -30,-16 + 2074: color: '#FFFFFFFF' id: DirtLight - coordinates: -28,-8 - 967: + coordinates: -31,-12 + 2045: + color: '#A4610696' + id: HalfTileOverlayGreyscale + coordinates: -31,-14 + 2033: + color: '#A4610696' + id: HalfTileOverlayGreyscale90 + coordinates: -30,-18 + 2076: color: '#FFFFFFFF' id: DirtLight - coordinates: -31,-10 - 968: + coordinates: -29,-11 + 2087: + color: '#FFFFFFFF' + id: DirtMedium + coordinates: -30,-15 + 2073: color: '#FFFFFFFF' id: DirtLight - coordinates: -32,-8 - 969: + coordinates: -32,-11 + 2038: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -31,-19 + 2030: + color: '#A4610696' + id: HalfTileOverlayGreyscale90 + coordinates: -30,-15 + 955: color: '#FFFFFFFF' id: DirtLight coordinates: -11,-23 - 970: + 956: color: '#FFFFFFFF' id: DirtLight coordinates: -10,-23 - 981: + 967: color: '#FFFFFFFF' id: WarningLine coordinates: -1,-27 - 1805: - color: '#FFFFFFFF' - id: WarnBox - coordinates: -30,-12 - 1835: - color: '#FFFFFFFF' - id: Bot - coordinates: -31,-32 - 1836: - color: '#FFFFFFFF' - id: Bot - coordinates: -31,-31 - 1837: - color: '#FFFFFFFF' - id: Bot - coordinates: -28,-31 - 1838: + 2018: + color: '#A4610696' + id: HalfTileOverlayGreyscale180 + coordinates: -32,-12 + 1986: + angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot - coordinates: -28,-32 - 1842: + coordinates: -30,-31 + 1828: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -30,-25 - 1844: + 1830: color: '#A4610696' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -30,-30 - 1846: + 1832: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -32,-30 - 1847: + 1833: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -31,-30 - 1852: + 1838: color: '#A4610696' id: HalfTileOverlayGreyscale90 coordinates: -30,-26 - 1853: + 1839: color: '#A4610696' id: HalfTileOverlayGreyscale90 coordinates: -30,-27 - 1854: + 1840: color: '#A4610696' id: HalfTileOverlayGreyscale90 coordinates: -30,-28 - 1855: + 1841: color: '#A4610696' id: HalfTileOverlayGreyscale90 coordinates: -30,-29 - 1857: + 1843: color: '#A4610696' id: HalfTileOverlayGreyscale coordinates: -32,-25 - 1858: + 1844: color: '#A4610696' id: HalfTileOverlayGreyscale coordinates: -31,-25 - 1860: + 1846: color: '#FFFFFFFF' id: DirtMedium coordinates: -31,-27 - 1861: + 1847: color: '#FFFFFFFF' id: DirtMedium coordinates: -32,-29 - 1862: + 1848: color: '#FFFFFFFF' id: DirtLight coordinates: -32,-28 - 1863: + 1849: color: '#FFFFFFFF' id: DirtLight coordinates: -32,-27 - 1864: + 1850: color: '#FFFFFFFF' id: DirtLight coordinates: -31,-28 - 1866: + 1852: color: '#FFFFFFFF' id: DirtLight coordinates: -32,-26 - 1871: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -32,-31 - 1873: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -32,-32 - 1881: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -28,-31 - 1882: - color: '#FFFFFFFF' - id: DirtLight - coordinates: -28,-32 - 1885: + 1978: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -28,-23 - 1886: + coordinates: -27,-23 + 1985: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: Bot + coordinates: -30,-32 + 1977: color: '#A4610696' id: HalfTileOverlayGreyscale180 - coordinates: -27,-23 - 1887: + coordinates: -28,-23 + 1873: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -26,-23 - 1888: + 1874: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -25,-23 - 1889: + 1875: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -24,-23 - 1890: + 1876: color: '#FFFFFFFF' id: WarningLine coordinates: -26,-32 - 1891: + 1877: color: '#FFFFFFFF' id: WarningLine coordinates: -25,-32 - 1892: + 1878: color: '#FFFFFFFF' id: WarningLine coordinates: -26,-29 - 1893: + 1879: color: '#FFFFFFFF' id: WarningLine coordinates: -25,-29 - 1947: + 1933: color: '#FFFFFFFF' id: Bushi3 coordinates: -13.191976,-25.805916 - 1948: + 1934: color: '#FFFFFFFF' id: Bushi2 coordinates: -17.652706,-25.868416 - 1951: - color: '#FFFFFFFF' - id: Bushi3 - coordinates: -12.051758,-31.132277 - 1950: + 1935: color: '#FFFFFFFF' id: Bushi1 coordinates: -19.088648,-31.632277 - 1985: + 1936: + color: '#FFFFFFFF' + id: Bushi3 + coordinates: -12.051758,-31.132277 + 1970: color: '#FFFFFFFF' id: WarningLine coordinates: -32,-30 - 1986: + 1971: color: '#FFFFFFFF' id: WarningLine coordinates: -31,-30 - 1987: + 1972: color: '#FFFFFFFF' id: WarningLine coordinates: -30,-30 @@ -6028,208 +5981,208 @@ entities: color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: -68,-6 - 1383: + 1369: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-7 - 1384: + 1370: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-9 - 1385: + 1371: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-8 - 1420: + 1406: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-11 - 1421: + 1407: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-12 - 1422: + 1408: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-17 - 1423: + 1409: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-16 - 1424: + 1410: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-15 - 1425: + 1411: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-14 - 1426: + 1412: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-13 - 1427: + 1413: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-11 - 1428: + 1414: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-12 - 1434: + 1420: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-13 - 1435: + 1421: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-14 - 1440: + 1426: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-15 - 1441: + 1427: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-16 - 1444: + 1430: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-17 - 1445: + 1431: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-18 - 1446: + 1432: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-18 - 1447: + 1433: color: '#EFB34196' id: CheckerNWSE coordinates: -66,-19 - 1448: + 1434: color: '#EFB34196' id: CheckerNWSE coordinates: -65,-19 - 1451: + 1437: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-13 - 1452: + 1438: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-14 - 1453: + 1439: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-15 - 1454: + 1440: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -66,-16 - 1455: + 1441: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCorner coordinates: -66,-12 - 1456: + 1442: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: -66,-17 - 1721: + 1707: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-8 - 1722: + 1708: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-8 - 1723: + 1709: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-7 - 1724: + 1710: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-9 - 1725: + 1711: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-9 - 1726: + 1712: color: '#FFFFFFFF' id: DirtLight coordinates: -68,-8 - 1727: + 1713: color: '#FFFFFFFF' id: DirtLight coordinates: -68,-9 - 1728: + 1714: color: '#FFFFFFFF' id: DirtLight coordinates: -70,-10 - 1729: + 1715: color: '#FFFFFFFF' id: DirtLight coordinates: -72,-10 - 1730: + 1716: color: '#FFFFFFFF' id: DirtLight coordinates: -73,-9 - 1731: + 1717: color: '#FFFFFFFF' id: DirtLight coordinates: -73,-8 - 1732: + 1718: color: '#FFFFFFFF' id: DirtLight coordinates: -72,-6 - 1733: + 1719: color: '#FFFFFFFF' id: DirtLight coordinates: -71,-6 - 1734: + 1720: color: '#FFFFFFFF' id: DirtMedium coordinates: -69,-4 - 1735: + 1721: color: '#FFFFFFFF' id: DirtMedium coordinates: -68,-2 - 1736: + 1722: color: '#FFFFFFFF' id: DirtMedium coordinates: -69,-1 - 1737: + 1723: color: '#FFFFFFFF' id: DirtMedium coordinates: -67,-4 - 1738: + 1724: color: '#FFFFFFFF' id: DirtMedium coordinates: -66,-4 - 1739: + 1725: color: '#FFFFFFFF' id: DirtHeavy coordinates: -67,-2 - 1740: + 1726: color: '#FFFFFFFF' id: DirtLight coordinates: -70,-4 - 1741: + 1727: color: '#FFFFFFFF' id: DirtLight coordinates: -70,-3 - 1742: + 1728: color: '#FFFFFFFF' id: DirtLight coordinates: -66,-1 @@ -6426,823 +6379,823 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: -2,16 - 780: + 770: color: '#FFFFFFFF' id: DirtMedium coordinates: -30,5 - 781: + 771: color: '#FFFFFFFF' id: DirtMedium coordinates: -28,6 - 782: + 772: color: '#FFFFFFFF' id: DirtMedium coordinates: -30,8 - 783: + 773: color: '#FFFFFFFF' id: DirtHeavy coordinates: -30,7 - 784: + 774: color: '#FFFFFFFF' id: DirtLight coordinates: -29,6 - 785: + 775: color: '#FFFFFFFF' id: DirtLight coordinates: -29,7 - 786: + 776: color: '#FFFFFFFF' id: DirtLight coordinates: -29,5 - 787: + 777: color: '#FFFFFFFF' id: DirtLight coordinates: -30,4 - 788: + 778: color: '#FFFFFFFF' id: DirtLight coordinates: -29,3 - 789: + 779: color: '#FFFFFFFF' id: DirtLight coordinates: -30,9 - 790: + 780: color: '#FFFFFFFF' id: DirtLight coordinates: -28,8 - 791: + 781: color: '#FFFFFFFF' id: DirtLight coordinates: -29,8 - 867: + 857: color: '#FFFFFFFF' id: DirtLight coordinates: -2,14 - 868: + 858: color: '#FFFFFFFF' id: DirtLight coordinates: -2,13 - 869: + 859: color: '#FFFFFFFF' id: DirtLight coordinates: -1,15 - 870: + 860: color: '#FFFFFFFF' id: DirtLight coordinates: -2,18 - 871: + 861: color: '#FFFFFFFF' id: DirtLight coordinates: -2,20 - 872: + 862: color: '#FFFFFFFF' id: DirtLight coordinates: -1,21 - 874: + 864: color: '#FFFFFFFF' id: DirtLight coordinates: -2,8 - 875: + 865: color: '#FFFFFFFF' id: DirtLight coordinates: -1,5 - 876: + 866: color: '#FFFFFFFF' id: DirtLight coordinates: -2,3 - 881: + 871: color: '#FFFFFFFF' id: DirtLight coordinates: -1,30 - 882: + 872: color: '#FFFFFFFF' id: DirtLight coordinates: -4,31 - 883: + 873: color: '#FFFFFFFF' id: DirtLight coordinates: -5,30 - 884: + 874: color: '#FFFFFFFF' id: DirtLight coordinates: -4,29 - 885: + 875: color: '#FFFFFFFF' id: DirtLight coordinates: -6,28 - 890: + 880: color: '#FFFFFFFF' id: DirtLight coordinates: -1,30 - 971: + 957: color: '#FFFFFFFF' id: DirtHeavy coordinates: -16,20 - 972: + 958: color: '#FFFFFFFF' id: DirtHeavy coordinates: -15,19 - 973: + 959: color: '#FFFFFFFF' id: DirtHeavy coordinates: -14,20 - 974: + 960: color: '#FFFFFFFF' id: DirtHeavy coordinates: -18,20 - 975: + 961: color: '#FFFFFFFF' id: DirtHeavy coordinates: -17,19 - 976: + 962: color: '#FFFFFFFF' id: DirtMedium coordinates: -18,21 - 977: + 963: color: '#FFFFFFFF' id: DirtMedium coordinates: -17,21 - 978: + 964: color: '#FFFFFFFF' id: DirtMedium coordinates: -16,19 - 979: + 965: color: '#FFFFFFFF' id: DirtMedium coordinates: -14,19 - 980: + 966: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,20 - 982: + 968: color: '#FFFFFFFF' id: WarningLine coordinates: -7,15 - 983: + 969: color: '#FFFFFFFF' id: WarningLine coordinates: -6,15 - 984: + 970: color: '#FFFFFFFF' id: WarningLine coordinates: -5,15 - 985: + 971: color: '#FFFFFFFF' id: WarningLine coordinates: -4,15 - 986: + 972: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -7,17 - 987: + 973: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -6,17 - 988: + 974: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -5,17 - 989: + 975: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: -4,17 - 990: + 976: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: BotRight coordinates: -7,2 - 991: + 977: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: BotRight coordinates: -6,2 - 992: + 978: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: BotRight coordinates: -5,2 - 993: + 979: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: BotRight coordinates: -4,2 - 994: + 980: color: '#334E6DC8' id: QuarterTileOverlayGreyscale coordinates: -2,12 - 995: + 981: color: '#334E6DC8' id: QuarterTileOverlayGreyscale coordinates: -2,11 - 1000: + 986: color: '#FFFFFFFF' id: DirtLight coordinates: -2,12 - 1001: + 987: color: '#FFFFFFFF' id: DirtLight coordinates: -2,11 - 1002: + 988: color: '#FFFFFFFF' id: DirtLight coordinates: -2,10 - 1206: + 1192: color: '#FFFFFFFF' id: DirtMedium coordinates: -15,5 - 1207: + 1193: color: '#FFFFFFFF' id: DirtMedium coordinates: -15,3 - 1208: + 1194: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,2 - 1209: + 1195: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,3 - 1210: + 1196: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,4 - 1211: + 1197: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,5 - 1212: + 1198: color: '#FFFFFFFF' id: DirtLight coordinates: -13,7 - 1213: + 1199: color: '#FFFFFFFF' id: DirtLight coordinates: -13,6 - 1214: + 1200: color: '#FFFFFFFF' id: DirtLight coordinates: -11,6 - 1215: + 1201: color: '#FFFFFFFF' id: DirtLight coordinates: -13,3 - 1216: + 1202: color: '#FFFFFFFF' id: DirtLight coordinates: -12,2 - 1217: + 1203: color: '#FFFFFFFF' id: DirtLight coordinates: -15,2 - 1364: + 1350: color: '#FFFFFFFF' id: DirtLight coordinates: -12,11 - 1365: + 1351: color: '#FFFFFFFF' id: DirtLight coordinates: -12,10 - 1366: + 1352: color: '#FFFFFFFF' id: DirtLight coordinates: -11,10 - 1367: + 1353: color: '#FFFFFFFF' id: DirtLight coordinates: -11,11 - 1368: + 1354: color: '#FFFFFFFF' id: DirtLight coordinates: -12,9 - 1369: + 1355: color: '#FFFFFFFF' id: DirtLight coordinates: -11,9 - 1370: + 1356: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,17 - 1371: + 1357: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,16 - 1372: + 1358: color: '#FFFFFFFF' id: DirtHeavy coordinates: -11,15 - 1373: + 1359: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,15 - 1374: + 1360: color: '#FFFFFFFF' id: DirtMedium coordinates: -14,16 - 1375: + 1361: color: '#FFFFFFFF' id: DirtMedium coordinates: -13,17 - 1376: + 1362: color: '#FFFFFFFF' id: DirtMedium coordinates: -11,14 - 1377: + 1363: color: '#FFFFFFFF' id: DirtLight coordinates: -13,15 - 1378: + 1364: color: '#FFFFFFFF' id: DirtLight coordinates: -14,15 - 1379: + 1365: color: '#FFFFFFFF' id: DirtLight coordinates: -15,16 - 1380: + 1366: color: '#FFFFFFFF' id: DirtLight coordinates: -13,14 - 1381: + 1367: color: '#FFFFFFFF' id: DirtLight coordinates: -14,13 - 1382: + 1368: color: '#FFFFFFFF' id: DirtLight coordinates: -16,15 - 1467: + 1453: color: '#DE3A3A96' id: CheckerNWSE coordinates: -32,22 - 1475: + 1461: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -28,28 - 1476: + 1462: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -28,27 - 1477: + 1463: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -32,24 - 1493: + 1479: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -31,27 - 1494: + 1480: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -30,27 - 1495: + 1481: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 coordinates: -29,27 - 1496: + 1482: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale180 coordinates: -32,27 - 1497: + 1483: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -32,26 - 1498: + 1484: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -32,25 - 1501: + 1487: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -32,28 - 1502: + 1488: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -31,28 - 1503: + 1489: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -30,28 - 1504: + 1490: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -29,28 - 1543: + 1529: color: '#FFFFFFFF' id: DirtLight coordinates: -23,30 - 1544: + 1530: color: '#FFFFFFFF' id: DirtLight coordinates: -22,29 - 1550: + 1536: color: '#FFFFFFFF' id: DirtLight coordinates: -32,24 - 1579: + 1565: color: '#FFFFFFFF' id: DirtLight coordinates: -31,27 - 1580: + 1566: color: '#FFFFFFFF' id: DirtLight coordinates: -31,28 - 1581: + 1567: color: '#FFFFFFFF' id: DirtLight coordinates: -32,27 - 1582: + 1568: color: '#FFFFFFFF' id: DirtLight coordinates: -30,27 - 1583: + 1569: color: '#FFFFFFFF' id: DirtLight coordinates: -29,27 - 1584: + 1570: color: '#FFFFFFFF' id: DirtLight coordinates: -29,28 - 1585: + 1571: color: '#FFFFFFFF' id: DirtHeavy coordinates: -29,24 - 1586: + 1572: color: '#FFFFFFFF' id: DirtHeavy coordinates: -30,24 - 1587: + 1573: color: '#FFFFFFFF' id: DirtMedium coordinates: -30,25 - 1588: + 1574: color: '#FFFFFFFF' id: DirtMedium coordinates: -30,23 - 1589: + 1575: color: '#FFFFFFFF' id: DirtLight coordinates: -29,23 - 1590: + 1576: color: '#FFFFFFFF' id: DirtLight coordinates: -30,22 - 1591: + 1577: color: '#FFFFFFFF' id: DirtLight coordinates: -28,25 - 1605: + 1591: color: '#FFFFFFFF' id: DirtHeavy coordinates: -23,18 - 1606: + 1592: color: '#FFFFFFFF' id: DirtHeavy coordinates: -22,17 - 1607: + 1593: color: '#FFFFFFFF' id: DirtHeavy coordinates: -21,18 - 1608: + 1594: color: '#FFFFFFFF' id: DirtMedium coordinates: -22,18 - 1609: + 1595: color: '#FFFFFFFF' id: DirtMedium coordinates: -23,17 - 1610: + 1596: color: '#FFFFFFFF' id: DirtMedium coordinates: -24,17 - 1611: + 1597: color: '#FFFFFFFF' id: DirtLight coordinates: -21,17 - 1612: + 1598: color: '#FFFFFFFF' id: DirtLight coordinates: -23,14 - 1613: + 1599: color: '#FFFFFFFF' id: DirtLight coordinates: -24,13 - 1614: + 1600: color: '#FFFFFFFF' id: DirtLight coordinates: -24,14 - 1615: + 1601: color: '#FFFFFFFF' id: DirtLight coordinates: -26,13 - 1616: + 1602: color: '#FFFFFFFF' id: DirtLight coordinates: -25,13 - 1617: + 1603: color: '#FFFFFFFF' id: DirtLight coordinates: -25,11 - 1618: + 1604: color: '#FFFFFFFF' id: DirtLight coordinates: -24,10 - 1619: + 1605: color: '#FFFFFFFF' id: DirtLight coordinates: -24,11 - 1620: + 1606: color: '#FFFFFFFF' id: DirtLight coordinates: -25,8 - 1621: + 1607: color: '#FFFFFFFF' id: DirtLight coordinates: -22,10 - 1622: + 1608: color: '#FFFFFFFF' id: DirtLight coordinates: -22,11 - 1623: + 1609: color: '#FFFFFFFF' id: DirtLight coordinates: -21,14 - 1624: + 1610: color: '#FFFFFFFF' id: DirtLight coordinates: -21,15 - 1625: + 1611: color: '#FFFFFFFF' id: DirtLight coordinates: -20,15 - 1626: + 1612: color: '#FFFFFFFF' id: DirtHeavy coordinates: -30,14 - 1627: + 1613: color: '#FFFFFFFF' id: DirtHeavy coordinates: -29,15 - 1628: + 1614: color: '#FFFFFFFF' id: DirtHeavy coordinates: -29,18 - 1629: + 1615: color: '#FFFFFFFF' id: DirtHeavy coordinates: -28,18 - 1630: + 1616: color: '#FFFFFFFF' id: DirtHeavy coordinates: -28,19 - 1631: + 1617: color: '#FFFFFFFF' id: DirtHeavy coordinates: -30,19 - 1632: + 1618: color: '#FFFFFFFF' id: DirtHeavy coordinates: -30,17 - 1638: + 1624: color: '#FFFFFFFF' id: DirtLight coordinates: -32,21 - 1645: + 1631: color: '#FFFFFFFF' id: DirtMedium coordinates: -32,21 - 1648: + 1634: color: '#FFFFFFFF' id: DirtLight coordinates: -32,22 - 1649: + 1635: color: '#FFFFFFFF' id: DirtLight coordinates: -32,22 - 1666: + 1652: color: '#FFFFFFFF' id: DirtMedium coordinates: -32,21 - 1667: + 1653: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: -14,28 - 1668: + 1654: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: -14,29 - 1669: + 1655: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCorner coordinates: -14,27 - 1670: + 1656: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,26 - 1671: + 1657: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,27 - 1672: + 1658: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,28 - 1673: + 1659: color: '#FFFFFFFF' id: DirtHeavy coordinates: -8,29 - 1674: + 1660: color: '#FFFFFFFF' id: DirtHeavy coordinates: -9,29 - 1675: + 1661: color: '#FFFFFFFF' id: DirtHeavy coordinates: -9,29 - 1676: + 1662: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,29 - 1677: + 1663: color: '#FFFFFFFF' id: DirtHeavy coordinates: -12,27 - 1678: + 1664: color: '#FFFFFFFF' id: DirtMedium coordinates: -12,28 - 1679: + 1665: color: '#FFFFFFFF' id: DirtMedium coordinates: -8,29 - 1680: + 1666: color: '#FFFFFFFF' id: DirtLight coordinates: -14,28 - 1681: + 1667: color: '#FFFFFFFF' id: DirtLight coordinates: -14,28 - 1682: + 1668: color: '#FFFFFFFF' id: DirtLight coordinates: -15,29 - 1683: + 1669: color: '#FFFFFFFF' id: DirtLight coordinates: -14,29 - 1684: + 1670: color: '#FFFFFFFF' id: DirtHeavy coordinates: -15,28 - 1685: + 1671: color: '#FFFFFFFF' id: DirtHeavy coordinates: -15,27 - 1686: + 1672: color: '#FFFFFFFF' id: DirtHeavy coordinates: -15,25 - 1687: + 1673: color: '#FFFFFFFF' id: DirtHeavy coordinates: -14,26 - 1688: + 1674: color: '#FFFFFFFF' id: DirtLight coordinates: -14,27 - 1689: + 1675: color: '#FFFFFFFF' id: DirtLight coordinates: -14,27 - 1690: + 1676: color: '#FFFFFFFF' id: DirtLight coordinates: -14,29 - 1691: + 1677: color: '#FFFFFFFF' id: DirtLight coordinates: -15,28 - 1692: + 1678: color: '#FFFFFFFF' id: DirtLight coordinates: -15,27 - 1693: + 1679: color: '#FFFFFFFF' id: DirtLight coordinates: -15,25 - 1694: + 1680: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Caution coordinates: -14,28 - 1743: + 1729: color: '#FFFFFFFF' id: DirtHeavy coordinates: -19,27 - 1744: + 1730: color: '#FFFFFFFF' id: DirtHeavy coordinates: -18,28 - 1745: + 1731: color: '#FFFFFFFF' id: DirtHeavy coordinates: -19,29 - 1746: + 1732: color: '#FFFFFFFF' id: DirtHeavy coordinates: -20,28 - 1747: + 1733: color: '#FFFFFFFF' id: DirtHeavy coordinates: -18,26 - 1748: + 1734: color: '#FFFFFFFF' id: DirtMedium coordinates: -17,27 - 1749: + 1735: color: '#FFFFFFFF' id: DirtMedium coordinates: -17,28 - 1750: + 1736: color: '#FFFFFFFF' id: DirtMedium coordinates: -19,28 - 1751: + 1737: color: '#FFFFFFFF' id: DirtMedium coordinates: -20,26 - 1752: + 1738: color: '#FFFFFFFF' id: Remains coordinates: -17,28 - 1763: + 1749: color: '#FFFFFFFF' id: DirtMedium coordinates: -32,15 - 1968: + 1953: color: '#FFFFFFFF' id: Grassd1 coordinates: -23.84785,20.629396 - 1969: + 1954: color: '#FFFFFFFF' id: Grassd1 coordinates: -23.22285,19.457521 - 1970: + 1955: color: '#FFFFFFFF' id: Grassd1 coordinates: -22.09785,20.926271 - 1971: + 1956: color: '#FFFFFFFF' id: Grassd1 coordinates: -20.457226,20.332521 - 1972: + 1957: color: '#FFFFFFFF' id: Grassd1 coordinates: -21.175976,19.535646 - 1973: + 1958: color: '#FFFFFFFF' id: Grassd2 coordinates: -20.8791,20.941896 - 1974: + 1959: color: '#FFFFFFFF' id: Grassd2 coordinates: -19.988476,19.426271 - 1975: + 1960: color: '#FFFFFFFF' id: Grassd2 coordinates: -21.6916,19.988771 - 1976: + 1961: color: '#FFFFFFFF' id: Grassd2 coordinates: -21.97285,19.379396 - 1977: + 1962: color: '#FFFFFFFF' id: Grassd3 coordinates: -23.050976,20.941896 - 1978: + 1963: color: '#FFFFFFFF' id: Grassd3 coordinates: -22.5666,20.035646 - 1979: + 1964: color: '#FFFFFFFF' id: Grassd3 coordinates: -24.16035,19.379396 - 1980: + 1965: color: '#FFFFFFFF' id: Grasse1 coordinates: -23.394726,20.020021 - 1981: + 1966: color: '#FFFFFFFF' id: Grasse1 coordinates: -22.332226,19.176271 - 1982: + 1967: color: '#FFFFFFFF' id: Grasse2 coordinates: -23.925835,21.020924 @@ -7550,592 +7503,592 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: 0,6 - 873: + 863: color: '#FFFFFFFF' id: DirtLight coordinates: 0,20 - 880: + 870: color: '#FFFFFFFF' id: DirtLight coordinates: 0,31 - 886: + 876: color: '#FFFFFFFF' id: DirtLight coordinates: 3,28 - 887: + 877: color: '#FFFFFFFF' id: DirtLight coordinates: 3,30 - 888: + 878: color: '#FFFFFFFF' id: DirtLight coordinates: 2,31 - 889: + 879: color: '#FFFFFFFF' id: DirtLight coordinates: 1,29 - 996: + 982: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 coordinates: 0,14 - 997: + 983: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 coordinates: 0,13 - 998: + 984: color: '#FFFFFFFF' id: DirtMedium coordinates: 0,13 - 999: + 985: color: '#FFFFFFFF' id: DirtMedium coordinates: 0,14 - 1003: + 989: color: '#FFFFFFFF' id: DirtLight coordinates: 0,15 - 1012: + 998: color: '#52B4E996' id: CheckerNWSE coordinates: 18,2 - 1013: + 999: color: '#52B4E996' id: CheckerNWSE coordinates: 18,1 - 1014: + 1000: color: '#52B4E996' id: CheckerNWSE coordinates: 19,2 - 1015: + 1001: color: '#52B4E996' id: CheckerNWSE coordinates: 19,1 - 1016: + 1002: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: 12,2 - 1021: + 1007: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 12,1 - 1022: + 1008: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 12,0 - 1029: + 1015: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 13,2 - 1030: + 1016: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 14,2 - 1031: + 1017: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 15,2 - 1032: + 1018: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 16,2 - 1033: + 1019: color: '#52B4E996' id: CheckerNWSE coordinates: 13,8 - 1034: + 1020: color: '#52B4E996' id: CheckerNWSE coordinates: 13,7 - 1035: + 1021: color: '#52B4E996' id: CheckerNWSE coordinates: 14,7 - 1036: + 1022: color: '#52B4E996' id: CheckerNWSE coordinates: 14,8 - 1037: + 1023: color: '#52B4E996' id: CheckerNWSE coordinates: 15,8 - 1038: + 1024: color: '#52B4E996' id: CheckerNWSE coordinates: 15,7 - 1039: + 1025: color: '#52B4E996' id: CheckerNWSE coordinates: 16,7 - 1040: + 1026: color: '#52B4E996' id: CheckerNWSE coordinates: 16,8 - 1041: + 1027: color: '#52B4E996' id: CheckerNWSE coordinates: 17,8 - 1042: + 1028: color: '#52B4E996' id: CheckerNWSE coordinates: 17,7 - 1043: + 1029: color: '#52B4E996' id: CheckerNWSE coordinates: 18,7 - 1044: + 1030: color: '#52B4E996' id: CheckerNWSE coordinates: 18,8 - 1085: + 1071: angle: -1.5707963267948966 rad color: '#B02E26FF' id: WarningLine coordinates: 28,3 - 1086: + 1072: angle: -1.5707963267948966 rad color: '#B02E26FF' id: WarningLine coordinates: 28,2 - 1087: + 1073: angle: -1.5707963267948966 rad color: '#B02E26FF' id: WarningLine coordinates: 28,1 - 1101: + 1087: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,7 - 1102: + 1088: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,6 - 1103: + 1089: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,5 - 1104: + 1090: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,3 - 1105: + 1091: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,4 - 1106: + 1092: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,2 - 1107: + 1093: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,1 - 1109: + 1095: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: 21,0 - 1152: + 1138: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,0 - 1153: + 1139: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,1 - 1154: + 1140: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,2 - 1155: + 1141: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,3 - 1156: + 1142: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,4 - 1157: + 1143: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,6 - 1158: + 1144: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,5 - 1159: + 1145: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 23,7 - 1160: + 1146: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 22,8 - 1161: + 1147: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: 21,8 - 1162: + 1148: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 23,8 - 1189: + 1175: color: '#FFFFFFFF' id: StandClear coordinates: 30,7 - 1218: + 1204: color: '#FFFFFFFF' id: DirtLight coordinates: 18,2 - 1219: + 1205: color: '#FFFFFFFF' id: DirtLight coordinates: 18,1 - 1220: + 1206: color: '#FFFFFFFF' id: DirtLight coordinates: 19,2 - 1229: + 1215: color: '#FFFFFFFF' id: DirtHeavy coordinates: 16,2 - 1230: + 1216: color: '#FFFFFFFF' id: DirtHeavy coordinates: 13,2 - 1231: + 1217: color: '#FFFFFFFF' id: DirtMedium coordinates: 12,2 - 1232: + 1218: color: '#FFFFFFFF' id: DirtMedium coordinates: 13,1 - 1233: + 1219: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,1 - 1234: + 1220: color: '#FFFFFFFF' id: DirtMedium coordinates: 14,2 - 1235: + 1221: color: '#FFFFFFFF' id: DirtLight coordinates: 14,1 - 1236: + 1222: color: '#FFFFFFFF' id: DirtLight coordinates: 14,0 - 1237: + 1223: color: '#FFFFFFFF' id: DirtLight coordinates: 12,1 - 1238: + 1224: color: '#FFFFFFFF' id: DirtLight coordinates: 12,0 - 1240: + 1226: color: '#FFFFFFFF' id: DirtLight coordinates: 16,1 - 1251: + 1237: color: '#FFFFFFFF' id: DirtLight coordinates: 15,0 - 1252: + 1238: color: '#FFFFFFFF' id: DirtLight coordinates: 13,0 - 1261: + 1247: color: '#FFFFFFFF' id: DirtHeavy coordinates: 13,5 - 1262: + 1248: color: '#FFFFFFFF' id: DirtHeavy coordinates: 14,6 - 1263: + 1249: color: '#FFFFFFFF' id: DirtHeavy coordinates: 16,4 - 1264: + 1250: color: '#FFFFFFFF' id: DirtHeavy coordinates: 16,5 - 1265: + 1251: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,5 - 1266: + 1252: color: '#FFFFFFFF' id: DirtMedium coordinates: 15,6 - 1267: + 1253: color: '#FFFFFFFF' id: DirtMedium coordinates: 13,6 - 1268: + 1254: color: '#FFFFFFFF' id: DirtMedium coordinates: 17,5 - 1269: + 1255: color: '#FFFFFFFF' id: DirtLight coordinates: 14,7 - 1270: + 1256: color: '#FFFFFFFF' id: DirtLight coordinates: 15,7 - 1271: + 1257: color: '#FFFFFFFF' id: DirtLight coordinates: 13,7 - 1272: + 1258: color: '#FFFFFFFF' id: DirtLight coordinates: 15,8 - 1273: + 1259: color: '#FFFFFFFF' id: DirtLight coordinates: 16,6 - 1274: + 1260: color: '#FFFFFFFF' id: DirtLight coordinates: 16,7 - 1275: + 1261: color: '#FFFFFFFF' id: DirtLight coordinates: 17,6 - 1276: + 1262: color: '#FFFFFFFF' id: DirtLight coordinates: 18,6 - 1277: + 1263: color: '#FFFFFFFF' id: DirtLight coordinates: 17,4 - 1278: + 1264: color: '#FFFFFFFF' id: DirtLight coordinates: 19,7 - 1279: + 1265: color: '#FFFFFFFF' id: DirtLight coordinates: 19,4 - 1280: + 1266: color: '#FFFFFFFF' id: DirtHeavy coordinates: 25,7 - 1281: + 1267: color: '#FFFFFFFF' id: DirtHeavy coordinates: 26,6 - 1282: + 1268: color: '#FFFFFFFF' id: DirtHeavy coordinates: 28,7 - 1283: + 1269: color: '#FFFFFFFF' id: DirtHeavy coordinates: 29,6 - 1284: + 1270: color: '#FFFFFFFF' id: DirtHeavy coordinates: 30,5 - 1285: + 1271: color: '#FFFFFFFF' id: DirtHeavy coordinates: 28,5 - 1286: + 1272: color: '#FFFFFFFF' id: DirtMedium coordinates: 27,6 - 1287: + 1273: color: '#FFFFFFFF' id: DirtMedium coordinates: 27,7 - 1288: + 1274: color: '#FFFFFFFF' id: DirtMedium coordinates: 29,7 - 1289: + 1275: color: '#FFFFFFFF' id: DirtLight coordinates: 25,6 - 1290: + 1276: color: '#FFFFFFFF' id: DirtLight coordinates: 27,8 - 1306: + 1292: color: '#FFFFFFFF' id: DirtHeavy coordinates: 26,1 - 1307: + 1293: color: '#FFFFFFFF' id: DirtHeavy coordinates: 27,3 - 1308: + 1294: color: '#FFFFFFFF' id: DirtMedium coordinates: 25,2 - 1309: + 1295: color: '#FFFFFFFF' id: DirtMedium coordinates: 25,1 - 1310: + 1296: color: '#FFFFFFFF' id: DirtMedium coordinates: 27,1 - 1311: + 1297: color: '#FFFFFFFF' id: DirtLight coordinates: 26,2 - 1312: + 1298: color: '#FFFFFFFF' id: DirtLight coordinates: 25,3 - 1771: + 1757: color: '#8932B8FF' id: e coordinates: 31.464024,20.009933 - 1772: + 1758: color: '#8932B8FF' id: m coordinates: 31.979649,20.009933 - 1774: + 1760: color: '#FFFFFFFF' id: DirtLight coordinates: 14,15 - 1775: + 1761: color: '#FFFFFFFF' id: DirtLight coordinates: 13,17 - 1776: + 1762: color: '#FFFFFFFF' id: DirtLight coordinates: 15,18 - 1777: + 1763: color: '#FFFFFFFF' id: DirtLight coordinates: 16,18 - 1778: + 1764: color: '#FFFFFFFF' id: DirtLight coordinates: 17,17 - 1779: + 1765: color: '#FFFFFFFF' id: DirtLight coordinates: 18,17 - 1780: + 1766: color: '#FFFFFFFF' id: DirtLight coordinates: 20,18 - 1781: + 1767: color: '#FFFFFFFF' id: DirtLight coordinates: 22,17 - 1782: + 1768: color: '#FFFFFFFF' id: DirtLight coordinates: 22,17 - 1783: + 1769: color: '#FFFFFFFF' id: DirtLight coordinates: 22,17 - 1784: + 1770: color: '#FFFFFFFF' id: DirtLight coordinates: 24,18 - 1785: + 1771: color: '#FFFFFFFF' id: DirtLight coordinates: 22,18 - 1786: + 1772: color: '#FFFFFFFF' id: DirtLight coordinates: 21,17 - 1787: + 1773: color: '#FFFFFFFF' id: DirtLight coordinates: 21,17 - 1788: + 1774: color: '#FFFFFFFF' id: DirtHeavy coordinates: 19,18 - 1789: + 1775: color: '#FFFFFFFF' id: DirtHeavy coordinates: 18,18 - 1790: + 1776: color: '#FFFFFFFF' id: DirtHeavy coordinates: 26,17 - 1791: + 1777: color: '#FFFFFFFF' id: DirtHeavy coordinates: 25,18 - 1792: + 1778: color: '#FFFFFFFF' id: DirtHeavy coordinates: 29,18 - 1793: + 1779: color: '#FFFFFFFF' id: DirtHeavy coordinates: 30,17 - 1798: + 1784: color: '#FFFFFFFF' id: DirtMedium coordinates: 30,18 - 1799: + 1785: color: '#FFFFFFFF' id: DirtMedium coordinates: 28,17 - 1800: + 1786: color: '#FFFFFFFF' id: DirtMedium coordinates: 27,17 - 1801: + 1787: color: '#FFFFFFFF' id: DirtMedium coordinates: 21,18 - 1802: + 1788: color: '#FFFFFFFF' id: DirtMedium coordinates: 14,18 - 1803: + 1789: color: '#FFFFFFFF' id: DirtLight coordinates: 16,17 - 1804: + 1790: color: '#FFFFFFFF' id: DirtLight coordinates: 25,17 - 1806: + 1792: color: '#FFFFFFFF' id: DirtLight coordinates: 18,21 - 1807: + 1793: color: '#FFFFFFFF' id: DirtLight coordinates: 17,22 - 1808: + 1794: color: '#FFFFFFFF' id: DirtLight coordinates: 17,20 - 1809: + 1795: color: '#FFFFFFFF' id: DirtLight coordinates: 18,20 - 1815: + 1801: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine coordinates: 22,11 - 1816: + 1802: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: 21,11 - 1817: + 1803: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLineCorner @@ -8149,11 +8102,11 @@ entities: color: '#334E6DC8' id: FullTileOverlayGreyscale coordinates: -4,32 - 877: + 867: color: '#FFFFFFFF' id: DirtLight coordinates: -2,33 - 878: + 868: color: '#FFFFFFFF' id: DirtLight coordinates: -1,32 @@ -8162,15 +8115,15 @@ entities: color: '#334E6DC8' id: FullTileOverlayGreyscale coordinates: 2,32 - 879: + 869: color: '#FFFFFFFF' id: DirtLight coordinates: 1,32 - 891: + 881: color: '#FFFFFFFF' id: DirtLight coordinates: 0,34 - 892: + 882: color: '#FFFFFFFF' id: DirtLight coordinates: 1,33 @@ -8259,692 +8212,692 @@ entities: color: '#F9FFFEFF' id: safe coordinates: 36.977703,-38.711174 - 776: + 766: color: '#FFFFFFFF' id: DirtMedium coordinates: 32,-33 - 777: + 767: color: '#FFFFFFFF' id: DirtLight coordinates: 34,-33 - 779: + 769: color: '#FFFFFFFF' id: DirtLight coordinates: 35,-33 - 814: + 804: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 42,-33 1,-1: - 1911: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 40.50026,-16.203909 - 1912: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 40.87526,-14.719534 - 742: + 740: color: '#FFFFFFFF' id: DirtHeavy coordinates: 44,-18 - 743: + 741: color: '#FFFFFFFF' id: DirtHeavy coordinates: 43,-19 - 1909: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 42.96901,-17.766409 - 1910: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 42.09401,-15.735159 - 1904: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 42.59401,-13.047659 - 1907: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 44.34401,-16.907034 - 1906: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 43.50026,-16.282034 - 749: + 742: color: '#FFFFFFFF' id: DirtHeavy coordinates: 43,-11 - 1908: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 41.46901,-17.016409 - 1905: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 44.265884,-14.016409 - 752: + 743: color: '#FFFFFFFF' id: DirtMedium coordinates: 45,-12 - 753: + 744: color: '#FFFFFFFF' id: DirtMedium coordinates: 45,-13 - 754: + 745: color: '#FFFFFFFF' id: DirtMedium coordinates: 45,-18 - 755: + 746: color: '#FFFFFFFF' id: DirtMedium coordinates: 43,-20 - 756: + 747: color: '#FFFFFFFF' id: DirtMedium coordinates: 46,-17 - 757: + 748: color: '#FFFFFFFF' id: DirtLight coordinates: 46,-16 - 758: + 749: color: '#FFFFFFFF' id: DirtLight coordinates: 46,-15 - 759: + 750: color: '#FFFFFFFF' id: DirtLight coordinates: 45,-12 - 1903: - color: '#FFFFFFFF' - id: Grassd1 - coordinates: 41.734634,-13.657034 - 761: + 751: color: '#FFFFFFFF' id: DirtLight coordinates: 44,-10 - 762: + 752: color: '#FFFFFFFF' id: DirtLight coordinates: 45,-19 - 763: + 753: color: '#FFFFFFFF' id: DirtLight coordinates: 44,-20 - 764: + 754: color: '#FFFFFFFF' id: DirtLight coordinates: 44,-19 - 765: + 755: color: '#FFFFFFFF' id: DirtLight coordinates: 46,-18 - 766: + 756: color: '#FFFFFFFF' id: DirtHeavy coordinates: 44,-27 - 767: + 757: color: '#FFFFFFFF' id: DirtHeavy coordinates: 45,-27 - 768: + 758: color: '#FFFFFFFF' id: DirtHeavy coordinates: 45,-28 - 769: + 759: color: '#FFFFFFFF' id: DirtHeavy coordinates: 44,-25 - 770: + 760: color: '#FFFFFFFF' id: DirtHeavy coordinates: 46,-26 - 771: + 761: color: '#FFFFFFFF' id: DirtMedium coordinates: 47,-26 - 772: + 762: color: '#FFFFFFFF' id: DirtMedium coordinates: 46,-27 - 773: + 763: color: '#FFFFFFFF' id: Remains coordinates: 44.894756,-31.795801 - 775: + 765: color: '#FFFFFFFF' id: DirtMedium coordinates: 35,-31 - 778: + 768: color: '#FFFFFFFF' id: DirtLight coordinates: 34,-32 - 813: + 803: color: '#FFFFFFFF' id: WarningLine coordinates: 40,-23 - 918: + 908: color: '#8932B8FF' id: h coordinates: 44.032856,-9.36139 - 919: + 909: color: '#8932B8FF' id: e coordinates: 44.345356,-9.377015 - 920: + 910: color: '#8932B8FF' id: e coordinates: 44.95473,-9.408265 - 921: + 911: color: '#8932B8FF' id: e coordinates: 44.657856,-9.877015 - 1902: - color: '#B02E26FF' - id: e - coordinates: 45.088516,-10.428885 - 923: + 912: color: '#8932B8FF' id: r coordinates: 44.57973,-9.377015 - 924: + 913: color: '#8932B8FF' id: b coordinates: 44.220356,-9.79889 - 1901: - color: '#B02E26FF' - id: v - coordinates: 44.66664,-10.366385 - 1900: - color: '#B02E26FF' - id: o - coordinates: 44.182266,-10.38201 - 1899: - color: '#B02E26FF' - id: l - coordinates: 43.69789,-10.41326 - 1064: + 1050: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 32,-7 - 1065: + 1051: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 33,-7 - 1066: + 1052: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 34,-7 - 1067: + 1053: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 35,-7 - 1068: + 1054: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 36,-7 - 1069: + 1055: color: '#9FED5896' id: HalfTileOverlayGreyscale coordinates: 37,-7 - 1071: + 1057: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 38,-7 - 1073: + 1059: color: '#9FED5896' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 38,-9 - 1074: + 1060: color: '#9FED5896' id: HalfTileOverlayGreyscale90 coordinates: 38,-8 - 1076: + 1062: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 32,-9 - 1077: + 1063: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 33,-9 - 1078: + 1064: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 34,-9 - 1079: + 1065: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 35,-9 - 1080: + 1066: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 36,-9 - 1081: + 1067: color: '#9FED5896' id: HalfTileOverlayGreyscale180 coordinates: 37,-9 - 1088: + 1074: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: 35,-13 - 1089: + 1075: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 32,-11 - 1090: + 1076: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: 33,-11 - 1093: + 1079: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 32,-14 - 1094: + 1080: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 33,-14 - 1095: + 1081: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: 34,-14 - 1096: + 1082: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 34,-11 - 1099: + 1085: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 35,-14 - 1100: + 1086: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-12 - 1168: + 1154: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 32,-1 - 1169: + 1155: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 33,-1 - 1170: + 1156: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-1 - 1171: + 1157: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-2 - 1172: + 1158: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-3 - 1173: + 1159: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-4 - 1174: + 1160: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: 34,-5 - 1175: + 1161: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 34,-5 - 1176: + 1162: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 33,-5 - 1177: + 1163: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: 32,-5 - 1185: + 1171: color: '#FFFFFFFF' id: WarningLine coordinates: 36,-6 - 1186: + 1172: color: '#FFFFFFFF' id: WarningLine coordinates: 37,-6 - 1187: + 1173: color: '#FFFFFFFF' id: WarningLine coordinates: 37,-6 - 1188: + 1174: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine coordinates: 36,-14 - 1339: + 1325: color: '#FFFFFFFF' id: DirtLight coordinates: 32,-2 - 1340: + 1326: color: '#FFFFFFFF' id: DirtLight coordinates: 33,-2 - 1341: + 1327: color: '#FFFFFFFF' id: DirtLight coordinates: 32,-3 - 1342: + 1328: color: '#FFFFFFFF' id: DirtLight coordinates: 32,-4 - 1343: + 1329: color: '#FFFFFFFF' id: DirtLight coordinates: 34,-3 - 1344: + 1330: color: '#FFFFFFFF' id: DirtLight coordinates: 34,-3 - 1345: + 1331: color: '#FFFFFFFF' id: DirtLight coordinates: 36,-14 - 1346: + 1332: color: '#FFFFFFFF' id: DirtLight coordinates: 37,-14 - 1347: + 1333: color: '#FFFFFFFF' id: DirtLight coordinates: 38,-14 - 1348: + 1334: color: '#FFFFFFFF' id: DirtLight coordinates: 38,-13 - 1349: + 1335: color: '#FFFFFFFF' id: DirtMedium coordinates: 37,-5 - 1350: + 1336: color: '#FFFFFFFF' id: DirtHeavy coordinates: 37,-4 - 1351: + 1337: color: '#FFFFFFFF' id: DirtLight coordinates: 36,-5 - 1352: + 1338: color: '#FFFFFFFF' id: DirtLight coordinates: 36,-4 - 1353: + 1339: color: '#FFFFFFFF' id: DirtLight coordinates: 38,-4 - 1354: + 1340: color: '#FFFFFFFF' id: DirtLight coordinates: 38,-5 - 1355: + 1341: color: '#FFFFFFFF' id: DirtLight coordinates: 37,-6 - 1356: + 1342: color: '#FFFFFFFF' id: DirtLight coordinates: 38,-6 - 1810: + 1796: color: '#FFFFFFFF' id: WarningLineCornerFlipped coordinates: 41,-23 - 1811: + 1797: color: '#FFFFFFFF' id: WarningLineCorner coordinates: 39,-23 - 1913: + 1885: + color: '#B02E26FF' + id: l + coordinates: 43.69789,-10.41326 + 1886: + color: '#B02E26FF' + id: o + coordinates: 44.182266,-10.38201 + 1887: + color: '#B02E26FF' + id: v + coordinates: 44.66664,-10.366385 + 1888: + color: '#B02E26FF' + id: e + coordinates: 45.088516,-10.428885 + 1889: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 41.734634,-13.657034 + 1890: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 42.59401,-13.047659 + 1891: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 44.265884,-14.016409 + 1892: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 43.50026,-16.282034 + 1893: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 44.34401,-16.907034 + 1894: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 41.46901,-17.016409 + 1895: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 42.96901,-17.766409 + 1896: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 42.09401,-15.735159 + 1897: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 40.50026,-16.203909 + 1898: + color: '#FFFFFFFF' + id: Grassd1 + coordinates: 40.87526,-14.719534 + 1899: color: '#FFFFFFFF' id: Grassd2 coordinates: 42.21901,-14.469534 - 1914: + 1900: color: '#FFFFFFFF' id: Grassd2 coordinates: 41.047134,-12.547659 - 1915: + 1901: color: '#FFFFFFFF' id: Grassd2 coordinates: 43.453384,-13.016409 - 1916: + 1902: color: '#FFFFFFFF' id: Grassd2 coordinates: 43.93776,-15.219534 - 1917: + 1903: color: '#FFFFFFFF' id: Grassd3 coordinates: 40.109634,-15.422659 - 1918: + 1904: color: '#FFFFFFFF' id: Grassd3 coordinates: 42.422134,-16.547659 - 1919: + 1905: color: '#FFFFFFFF' id: Grassd3 coordinates: 43.34401,-14.141409 - 1920: + 1906: color: '#FFFFFFFF' id: Grasse3 coordinates: 43.87526,-12.188284 - 1921: + 1907: color: '#FFFFFFFF' id: Grasse3 coordinates: 44.890884,-13.953909 - 1922: + 1908: color: '#FFFFFFFF' id: Grasse3 coordinates: 44.87526,-14.953909 - 1923: + 1909: color: '#FFFFFFFF' id: Grasse3 coordinates: 45.03151,-16.750784 - 1924: + 1910: color: '#FFFFFFFF' id: Grasse3 coordinates: 41.890884,-14.969534 - 1925: + 1911: color: '#FFFFFFFF' id: Grasse2 coordinates: 44.359634,-14.610159 - 1926: + 1912: color: '#FFFFFFFF' id: Grasse2 coordinates: 41.03151,-13.797659 - 1927: + 1913: color: '#FFFFFFFF' id: Grasse2 coordinates: 40.953384,-12.016409 - 1928: + 1914: color: '#FFFFFFFF' id: Grasse2 coordinates: 40.078384,-14.688284 - 1929: + 1915: color: '#FFFFFFFF' id: Grasse2 coordinates: 41.40651,-15.860159 - 1930: + 1916: color: '#FFFFFFFF' id: Grasse2 coordinates: 40.453384,-16.828909 - 1931: + 1917: color: '#FFFFFFFF' id: Grasse3 coordinates: 43.06276,-15.391409 - 1932: + 1918: color: '#039FC0FF' id: Flowerspv3 coordinates: 41.56146,-13.219977 - 1933: + 1919: color: '#CD52C0FF' id: Flowerspv2 coordinates: 43.608334,-14.516852 - 1934: + 1920: color: '#CD525DFF' id: Flowerspv1 coordinates: 42.264584,-15.688727 - 1935: + 1921: color: '#CD525DFF' id: Flowerspv2 coordinates: 40.814972,-14.83789 - 1936: + 1922: color: '#CD525DFF' id: Flowersy2 coordinates: 43.471222,-16.884766 - 1937: + 1923: color: '#31ACBAFF' id: Flowersbr3 coordinates: 41.390408,-16.172031 - 1938: + 1924: color: '#31ACBAFF' id: Flowersbr3 coordinates: 42.374783,-14.07828 - 1939: + 1925: color: '#313FBAFF' id: Flowerspv3 coordinates: 43.921658,-12.98453 - 1940: + 1926: color: '#313FBAFF' id: Flowersy2 coordinates: 40.749783,-16.781406 - 1941: + 1927: color: '#313FBAFF' id: Flowersy3 coordinates: 43.80038,-15.51578 - 1942: + 1928: color: '#FFFFFFFF' id: Bushh3 coordinates: 40.835457,-12.895502 - 1943: + 1929: color: '#FFFFFFFF' id: Bushi3 coordinates: 42.44483,-13.083002 - 1944: + 1930: color: '#FFFFFFFF' id: Bushi2 coordinates: 42.929207,-17.692377 - 1945: + 1931: color: '#FFFFFFFF' id: Bushi1 coordinates: 42.19483,-16.989252 - 1946: + 1932: color: '#FFFFFFFF' id: Bushi4 coordinates: 41.022957,-15.317377 - 1962: + 1947: color: '#FFFFFFFF' id: Grassd2 coordinates: 39.807972,-11.989148 - 1963: + 1948: color: '#FFFFFFFF' id: Grassd2 coordinates: 40.354847,-12.489148 - 1964: + 1949: color: '#FFFFFFFF' id: Grasse1 coordinates: 39.870472,-13.145398 - 1965: + 1950: color: '#D33F6FFF' id: Flowersy3 coordinates: 40.151722,-12.442273 - 1966: + 1951: color: '#D33F6FFF' id: Flowerspv1 coordinates: 42.922123,-13.117356 - 1967: + 1952: color: '#D33F6FFF' id: Flowersy4 coordinates: 44.363964,-14.182294 -2,1: - 1517: + 1503: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -42,34 - 1518: + 1504: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -42,33 - 1519: + 1505: color: '#DE3A3A96' id: FullTileOverlayGreyscale coordinates: -42,32 - 1520: + 1506: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale coordinates: -41,34 - 1521: + 1507: color: '#DE3A3A96' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -38,34 - 1526: + 1512: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -41,32 - 1527: + 1513: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 coordinates: -41,33 - 1528: + 1514: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,33 - 1529: + 1515: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 coordinates: -38,32 - 1536: + 1522: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -40,34 - 1537: + 1523: color: '#DE3A3A96' id: HalfTileOverlayGreyscale coordinates: -39,34 - 1573: + 1559: color: '#FFFFFFFF' id: DirtLight coordinates: -41,32 - 1574: + 1560: color: '#FFFFFFFF' id: DirtLight coordinates: -41,33 - 1575: + 1561: color: '#FFFFFFFF' id: DirtLight coordinates: -40,33 - 1576: + 1562: color: '#FFFFFFFF' id: DirtLight coordinates: -40,34 - 1577: + 1563: color: '#FFFFFFFF' id: DirtLight coordinates: -36,33 - 1578: + 1564: color: '#FFFFFFFF' id: DirtLight coordinates: -36,32 1,0: - 1773: + 1759: color: '#8932B8FF' id: o coordinates: 32.5109,20.025558 - 1794: + 1780: color: '#FFFFFFFF' id: DirtHeavy coordinates: 33,18 - 1795: + 1781: color: '#FFFFFFFF' id: DirtHeavy coordinates: 34,17 - 1796: + 1782: color: '#FFFFFFFF' id: DirtHeavy coordinates: 32,18 - 1797: + 1783: color: '#FFFFFFFF' id: DirtMedium coordinates: 33,16 @@ -13037,86 +12990,86 @@ entities: 49,-26: 0 49,-25: 0 -32,-39: 0 - -32,-38: 0 + -32,-38: 83 -32,-37: 0 - -32,-36: 0 + -32,-36: 84 -32,-35: 0 -32,-34: 0 -32,-33: 0 -31,-39: 0 - -31,-38: 0 - -31,-37: 0 - -31,-36: 0 + -31,-38: 85 + -31,-37: 86 + -31,-36: 87 -31,-35: 0 -31,-34: 0 -31,-33: 0 -30,-39: 0 - -30,-38: 0 + -30,-38: 86 -30,-37: 0 - -30,-36: 0 + -30,-36: 88 -30,-35: 0 -30,-34: 0 -30,-33: 0 -29,-39: 0 - -29,-38: 0 + -29,-38: 89 -29,-37: 0 - -29,-36: 0 + -29,-36: 90 -29,-35: 0 -29,-34: 0 -29,-33: 0 -28,-39: 0 - -28,-38: 0 - -28,-37: 0 - -28,-36: 0 + -28,-38: 91 + -28,-37: 92 + -28,-36: 93 -28,-35: 0 -28,-34: 0 -28,-33: 0 - -27,-41: 83 - -27,-40: 84 - -27,-39: 85 - -27,-38: 86 - -27,-37: 87 + -27,-41: 94 + -27,-40: 95 + -27,-39: 96 + -27,-38: 97 + -27,-37: 98 -27,-36: 0 -27,-35: 0 -27,-34: 0 -27,-33: 0 - -26,-41: 88 + -26,-41: 99 -26,-40: 0 -26,-39: 0 -26,-38: 0 - -26,-37: 89 + -26,-37: 100 -26,-36: 0 -26,-35: 0 -26,-34: 0 -26,-33: 0 - -25,-41: 90 + -25,-41: 101 -25,-40: 0 -25,-39: 0 -25,-38: 0 - -25,-37: 91 + -25,-37: 102 -25,-36: 0 -25,-35: 0 -25,-34: 0 -25,-33: 0 - -24,-41: 92 + -24,-41: 103 -24,-40: 0 -24,-39: 0 -24,-38: 0 - -24,-37: 93 - -24,-36: 94 - -24,-35: 95 - -24,-34: 96 - -24,-33: 97 - -23,-41: 98 - -23,-40: 99 - -23,-39: 100 - -23,-38: 101 - -23,-37: 102 + -24,-37: 104 + -24,-36: 105 + -24,-35: 106 + -24,-34: 107 + -24,-33: 108 + -23,-41: 109 + -23,-40: 110 + -23,-39: 111 + -23,-38: 112 + -23,-37: 113 -23,-36: 0 -23,-35: 0 -23,-34: 0 -23,-33: 0 - -22,-41: 103 + -22,-41: 114 -22,-40: 0 -22,-39: 0 -22,-38: 0 @@ -13125,9 +13078,9 @@ entities: -22,-35: 0 -22,-34: 0 -22,-33: 0 - -21,-41: 104 - -21,-40: 105 - -21,-39: 106 + -21,-41: 115 + -21,-40: 116 + -21,-39: 117 -21,-38: 0 -21,-37: 0 -21,-36: 0 @@ -13143,7 +13096,7 @@ entities: -20,-35: 0 -20,-34: 0 -20,-33: 0 - -19,-41: 107 + -19,-41: 118 -19,-40: 0 -19,-39: 0 -19,-38: 0 @@ -13152,7 +13105,7 @@ entities: -19,-35: 0 -19,-34: 0 -19,-33: 0 - -18,-41: 108 + -18,-41: 119 -18,-40: 0 -18,-39: 0 -18,-38: 0 @@ -13161,7 +13114,7 @@ entities: -18,-35: 0 -18,-34: 0 -18,-33: 0 - -17,-41: 109 + -17,-41: 120 -17,-40: 0 -17,-39: 0 -17,-38: 0 @@ -14685,28 +14638,28 @@ entities: 2,-50: 49 2,-49: 68 3,-51: 49 - 3,-50: 110 + 3,-50: 121 3,-49: 0 4,-51: 70 4,-50: 0 4,-49: 0 - 5,-51: 111 + 5,-51: 122 5,-50: 0 5,-49: 0 - 6,-51: 112 + 6,-51: 123 6,-50: 0 6,-49: 0 - 7,-51: 113 - 7,-50: 114 + 7,-51: 124 + 7,-50: 125 7,-49: 0 - 8,-50: 115 - 8,-49: 116 + 8,-50: 126 + 8,-49: 127 15,-50: 0 15,-49: 0 48,-16: 0 48,-14: 0 - 48,-10: 117 - 48,-8: 118 + 48,-10: 128 + 48,-8: 129 48,-37: 0 48,-36: 0 48,-35: 0 @@ -14778,7 +14731,7 @@ entities: 19,9: 0 19,10: 0 19,11: 0 - 19,12: 119 + 19,12: 130 20,0: 0 20,1: 0 20,2: 0 @@ -14791,7 +14744,7 @@ entities: 20,9: 0 20,10: 0 20,11: 0 - 20,12: 120 + 20,12: 131 21,0: 0 21,1: 0 21,2: 0 @@ -14804,7 +14757,7 @@ entities: 21,9: 0 21,10: 0 21,11: 0 - 21,12: 121 + 21,12: 132 22,0: 0 22,1: 0 22,2: 0 @@ -14817,7 +14770,7 @@ entities: 22,9: 0 22,10: 0 22,11: 0 - 22,12: 122 + 22,12: 133 23,0: 0 23,1: 0 23,2: 0 @@ -14830,7 +14783,7 @@ entities: 23,9: 0 23,10: 0 23,11: 0 - 23,12: 123 + 23,12: 134 24,0: 0 24,1: 0 24,2: 0 @@ -14843,7 +14796,7 @@ entities: 24,9: 0 24,10: 0 24,11: 0 - 24,12: 124 + 24,12: 135 25,0: 0 25,1: 0 25,2: 0 @@ -14856,7 +14809,7 @@ entities: 25,9: 0 25,10: 0 25,11: 0 - 25,12: 125 + 25,12: 136 26,0: 0 26,1: 0 26,2: 0 @@ -14869,7 +14822,7 @@ entities: 26,9: 0 26,10: 0 26,11: 0 - 26,12: 126 + 26,12: 137 27,0: 0 27,1: 0 27,2: 0 @@ -14882,7 +14835,7 @@ entities: 27,9: 0 27,10: 0 27,11: 0 - 27,12: 127 + 27,12: 138 28,0: 0 28,1: 0 28,2: 0 @@ -14895,7 +14848,7 @@ entities: 28,9: 0 28,10: 0 28,11: 0 - 28,12: 128 + 28,12: 139 29,0: 0 29,1: 0 29,2: 0 @@ -14908,7 +14861,7 @@ entities: 29,9: 0 29,10: 0 29,11: 0 - 29,12: 129 + 29,12: 140 30,0: 0 30,1: 0 30,2: 0 @@ -14921,7 +14874,7 @@ entities: 30,9: 0 30,10: 0 30,11: 0 - 30,12: 130 + 30,12: 141 31,0: 0 31,1: 0 31,2: 0 @@ -14934,7 +14887,7 @@ entities: 31,9: 0 31,10: 0 31,11: 0 - 31,12: 131 + 31,12: 142 16,-16: 0 16,-15: 0 16,-14: 0 @@ -15201,9 +15154,9 @@ entities: 32,7: 0 32,8: 0 32,9: 0 - 32,10: 132 - 32,11: 133 - 32,12: 134 + 32,10: 143 + 32,11: 144 + 32,12: 145 33,0: 0 33,1: 0 33,2: 0 @@ -15216,7 +15169,7 @@ entities: 33,9: 0 33,10: 0 33,11: 0 - 33,12: 135 + 33,12: 146 34,0: 0 34,1: 0 34,2: 0 @@ -15229,7 +15182,7 @@ entities: 34,9: 0 34,10: 0 34,11: 0 - 34,12: 136 + 34,12: 147 35,0: 0 35,1: 0 35,2: 0 @@ -15349,11 +15302,11 @@ entities: 45,10: 0 45,11: 0 45,12: 19 - 46,8: 137 - 46,9: 138 - 46,10: 139 - 46,11: 140 - 46,12: 141 + 46,8: 148 + 46,9: 149 + 46,10: 150 + 46,11: 151 + 46,12: 152 16,16: 0 16,17: 0 16,18: 0 @@ -15362,31 +15315,31 @@ entities: 17,17: 0 17,18: 0 17,19: 23 - 18,16: 142 + 18,16: 153 18,17: 0 18,18: 0 18,19: 2 - 19,16: 143 + 19,16: 154 19,17: 0 19,18: 0 19,19: 19 - 20,16: 144 + 20,16: 155 20,17: 0 20,18: 0 - 20,19: 137 - 21,16: 145 + 20,19: 148 + 21,16: 156 21,17: 0 21,18: 0 - 21,19: 146 - 22,16: 147 + 21,19: 157 + 22,16: 158 22,17: 0 22,18: 0 - 22,19: 148 - 23,16: 149 + 22,19: 159 + 23,16: 160 23,17: 0 23,18: 0 - 23,19: 150 - 23,20: 151 + 23,19: 161 + 23,20: 162 23,25: 0 23,26: 0 23,27: 0 @@ -15398,9 +15351,9 @@ entities: 24,17: 0 24,18: 0 24,19: 0 - 24,20: 152 - 24,21: 153 - 24,22: 154 + 24,20: 163 + 24,21: 164 + 24,22: 165 24,25: 0 24,28: 0 24,31: 0 @@ -15408,9 +15361,9 @@ entities: 25,17: 0 25,18: 0 25,19: 0 - 25,20: 155 + 25,20: 166 25,21: 0 - 25,22: 156 + 25,22: 167 25,23: 0 25,24: 0 25,25: 0 @@ -15424,17 +15377,17 @@ entities: 26,17: 0 26,18: 0 26,19: 0 - 26,20: 157 - 26,21: 158 - 26,22: 159 + 26,20: 168 + 26,21: 169 + 26,22: 170 26,25: 0 26,28: 0 26,31: 0 27,16: 8 27,17: 2 27,18: 19 - 27,19: 137 - 27,20: 160 + 27,19: 148 + 27,20: 171 27,25: 0 27,26: 0 27,27: 0 @@ -15509,7 +15462,7 @@ entities: -44,28: 0 -44,29: 0 -44,30: 0 - -44,31: 110 + -44,31: 121 -43,16: 0 -43,17: 0 -43,18: 0 @@ -15686,14 +15639,14 @@ entities: -33,29: 0 -33,30: 0 -33,31: 0 - -44,32: 161 - -44,33: 162 + -44,32: 172 + -44,33: 173 -43,32: 0 - -43,33: 163 + -43,33: 174 -42,32: 0 - -42,33: 164 + -42,33: 175 -41,32: 0 - -41,33: 165 + -41,33: 176 -40,32: 0 -40,33: 0 -39,32: 0 @@ -15706,41 +15659,41 @@ entities: -36,33: 0 -35,32: 0 -35,33: 0 - -35,34: 166 - -35,35: 167 - -35,36: 168 + -35,34: 177 + -35,35: 178 + -35,36: 179 -34,32: 0 -34,33: 0 - -34,34: 169 + -34,34: 180 -34,35: 0 - -34,36: 170 + -34,36: 181 -33,32: 0 -33,33: 0 - -33,34: 171 + -33,34: 182 -33,35: 0 - -33,36: 172 + -33,36: 183 -32,32: 0 -32,33: 0 - -32,34: 173 + -32,34: 184 -32,35: 0 - -32,36: 174 + -32,36: 185 -31,32: 0 -31,33: 0 - -31,34: 175 + -31,34: 186 -31,35: 0 - -31,36: 176 + -31,36: 187 -30,32: 53 - -30,33: 177 - -30,34: 178 - -30,35: 179 - -30,36: 180 + -30,33: 188 + -30,34: 189 + -30,35: 190 + -30,36: 191 -29,32: 8 -28,32: 2 -27,32: 19 - -26,32: 137 - -25,32: 146 - -24,32: 139 - -23,32: 181 + -26,32: 148 + -25,32: 157 + -24,32: 150 + -23,32: 192 -64,16: 0 -64,17: 0 -64,18: 0 @@ -15927,7 +15880,7 @@ entities: -70,12: 0 -70,13: 0 -70,14: 0 - -70,15: 182 + -70,15: 193 -69,2: 0 -69,3: 0 -69,4: 0 @@ -15941,7 +15894,7 @@ entities: -69,12: 0 -69,13: 0 -69,14: 0 - -69,15: 182 + -69,15: 193 -68,2: 0 -68,3: 0 -68,4: 0 @@ -15955,7 +15908,7 @@ entities: -68,12: 0 -68,13: 0 -68,14: 0 - -68,15: 182 + -68,15: 193 -67,2: 0 -67,3: 0 -67,4: 0 @@ -16145,7 +16098,7 @@ entities: -71,17: 0 -71,18: 0 -70,16: 0 - -70,17: 183 + -70,17: 194 -70,18: 0 -70,19: 0 -70,20: 0 @@ -16153,11 +16106,11 @@ entities: -70,22: 0 -70,23: 0 -69,16: 0 - -69,17: 183 + -69,17: 194 -69,18: 0 -69,23: 0 -68,16: 0 - -68,17: 183 + -68,17: 194 -68,18: 0 -68,19: 0 -68,20: 0 @@ -16189,8 +16142,8 @@ entities: -63,-28: 0 -63,-27: 0 -63,-20: 0 - -63,-19: 110 - -63,-18: 184 + -63,-19: 121 + -63,-18: 195 -63,-17: 0 -62,-30: 0 -62,-29: 0 @@ -16416,15 +16369,15 @@ entities: -48,-35: 0 -48,-34: 0 -48,-33: 0 - -47,-36: 185 - -47,-35: 186 - -47,-34: 187 - -47,-33: 188 - -46,-36: 169 + -47,-36: 196 + -47,-35: 197 + -47,-34: 198 + -47,-33: 199 + -46,-36: 180 -46,-35: 0 -46,-34: 0 -46,-33: 0 - -45,-36: 171 + -45,-36: 182 -45,-35: 0 -45,-34: 0 -45,-33: 0 @@ -16466,22 +16419,22 @@ entities: -36,-33: 0 -35,-39: 0 -35,-38: 0 - -35,-37: 110 + -35,-37: 121 -35,-36: 0 -35,-35: 0 -35,-34: 0 -35,-33: 0 -34,-39: 0 - -34,-38: 0 - -34,-37: 189 - -34,-36: 0 + -34,-38: 200 + -34,-37: 201 + -34,-36: 202 -34,-35: 0 -34,-34: 0 -34,-33: 0 -33,-39: 0 - -33,-38: 0 + -33,-38: 203 -33,-37: 0 - -33,-36: 0 + -33,-36: 204 -33,-35: 0 -33,-34: 0 -33,-33: 0 @@ -16550,20 +16503,20 @@ entities: 18,42: 0 19,40: 49 19,41: 68 - 19,42: 190 - 19,43: 191 - 19,44: 192 + 19,42: 205 + 19,43: 206 + 19,44: 207 20,38: 49 20,39: 68 - 20,40: 193 + 20,40: 208 20,41: 0 20,42: 0 20,43: 0 - 20,44: 194 - 20,45: 195 - 20,46: 196 + 20,44: 209 + 20,45: 210 + 20,46: 211 21,37: 49 - 21,38: 110 + 21,38: 121 21,39: 0 21,40: 0 21,41: 0 @@ -16571,10 +16524,10 @@ entities: 21,43: 0 21,44: 0 21,45: 0 - 21,46: 197 - 21,47: 198 + 21,46: 212 + 21,47: 213 22,36: 49 - 22,37: 110 + 22,37: 121 22,38: 0 22,39: 0 22,40: 0 @@ -16584,7 +16537,7 @@ entities: 22,44: 0 22,45: 0 22,46: 0 - 22,47: 199 + 22,47: 214 23,32: 0 23,33: 0 23,34: 49 @@ -16602,10 +16555,10 @@ entities: 23,47: 0 24,34: 70 24,35: 24 - 24,36: 200 - 24,37: 201 - 24,38: 202 - 24,39: 203 + 24,36: 215 + 24,37: 216 + 24,38: 217 + 24,39: 218 24,40: 0 24,41: 0 24,42: 0 @@ -16616,12 +16569,12 @@ entities: 24,47: 0 25,32: 0 25,33: 0 - 25,34: 204 + 25,34: 219 25,35: 0 - 25,36: 205 + 25,36: 220 25,37: 0 25,38: 0 - 25,39: 206 + 25,39: 221 25,40: 0 25,41: 0 25,42: 0 @@ -16630,12 +16583,12 @@ entities: 25,45: 0 25,46: 0 25,47: 0 - 26,34: 207 - 26,35: 208 - 26,36: 209 - 26,37: 210 - 26,38: 211 - 26,39: 212 + 26,34: 222 + 26,35: 223 + 26,36: 224 + 26,37: 225 + 26,38: 226 + 26,39: 227 26,40: 0 26,41: 0 26,42: 0 @@ -16646,8 +16599,8 @@ entities: 26,47: 0 27,32: 0 27,33: 0 - 27,34: 192 - 27,36: 213 + 27,34: 207 + 27,36: 228 27,37: 0 27,38: 0 27,39: 0 @@ -16659,8 +16612,8 @@ entities: 27,45: 0 27,46: 0 27,47: 0 - 28,36: 214 - 28,37: 215 + 28,36: 229 + 28,37: 230 28,38: 0 28,39: 0 28,40: 0 @@ -16671,8 +16624,8 @@ entities: 28,45: 0 28,46: 0 28,47: 0 - 29,37: 216 - 29,38: 217 + 29,37: 231 + 29,38: 232 29,39: 0 29,40: 0 29,41: 0 @@ -16682,36 +16635,36 @@ entities: 29,45: 0 29,46: 0 29,47: 49 - 30,38: 218 - 30,39: 219 - 30,40: 220 + 30,38: 233 + 30,39: 234 + 30,40: 235 30,41: 0 30,42: 0 30,43: 0 30,44: 0 30,45: 8 - 30,46: 221 - 31,40: 222 - 31,41: 223 - 31,42: 224 - 31,43: 225 - 31,44: 226 - 22,48: 227 - 23,48: 228 - 24,48: 229 + 30,46: 236 + 31,40: 237 + 31,41: 238 + 31,42: 239 + 31,43: 240 + 31,44: 241 + 22,48: 242 + 23,48: 243 + 24,48: 244 24,50: 0 24,52: 0 - 25,48: 230 + 25,48: 245 25,49: 0 25,50: 0 25,51: 0 25,52: 0 25,53: 0 - 26,48: 231 + 26,48: 246 26,50: 0 26,52: 0 - 27,48: 232 - 28,48: 233 + 27,48: 247 + 28,48: 248 32,42: 0 33,41: 0 33,42: 0 @@ -16733,7 +16686,7 @@ entities: 28,-40: 19 28,-39: 0 28,-38: 0 - 29,-40: 137 + 29,-40: 148 29,-39: 0 29,-38: 0 30,-41: 0 @@ -16786,24 +16739,24 @@ entities: 40,-40: 0 40,-39: 0 40,-38: 0 - 41,-44: 189 + 41,-44: 249 41,-43: 0 41,-42: 0 41,-41: 0 41,-40: 0 41,-39: 0 41,-38: 0 - 42,-44: 177 + 42,-44: 188 42,-43: 0 42,-42: 0 42,-41: 0 42,-40: 0 42,-39: 0 42,-38: 0 - 43,-44: 234 - 43,-43: 235 - 43,-42: 236 - 43,-41: 237 + 43,-44: 250 + 43,-43: 251 + 43,-42: 252 + 43,-41: 253 43,-40: 0 43,-39: 0 43,-38: 0 @@ -17001,7 +16954,7 @@ entities: -81,-8: 0 -81,-7: 0 48,-21: 2 - 48,-9: 238 + 48,-9: 254 -64,-22: 0 -63,-22: 0 -62,-24: 0 @@ -17019,14 +16972,14 @@ entities: -49,-29: 0 -49,-27: 0 14,-42: 0 - 16,-42: 239 + 16,-42: 255 47,-4: 0 - 48,-19: 137 - 48,-18: 138 - 48,-17: 139 + 48,-19: 148 + 48,-18: 149 + 48,-17: 150 48,-15: 0 - 48,-13: 238 - 48,-12: 117 + 48,-13: 254 + 48,-12: 128 48,-11: 8 48,-7: 0 48,-6: 0 @@ -17036,16 +16989,16 @@ entities: 17,13: 0 17,14: 0 17,15: 0 - 18,15: 240 + 18,15: 256 19,15: 0 - 20,13: 241 - 20,14: 242 - 20,15: 243 + 20,13: 257 + 20,14: 258 + 20,15: 259 21,15: 0 22,15: 0 - 23,13: 244 - 23,14: 245 - 23,15: 246 + 23,13: 260 + 23,14: 261 + 23,15: 262 24,15: 0 25,15: 0 26,13: 0 @@ -17066,7 +17019,7 @@ entities: 10,-48: 0 10,-47: 0 11,-47: 0 - 12,-47: 247 + 12,-47: 263 13,-47: 0 14,-47: 0 16,-47: 0 @@ -17149,7 +17102,7 @@ entities: 50,-33: 0 30,-44: 0 30,-43: 0 - 30,-42: 110 + 30,-42: 121 31,-44: 0 31,-43: 0 31,-42: 0 @@ -17174,12 +17127,12 @@ entities: 38,-44: 0 38,-43: 0 38,-42: 0 - -23,-43: 248 - -23,-42: 249 - -22,-43: 250 + -23,-43: 264 + -23,-42: 265 + -22,-43: 266 -22,-42: 0 - -21,-43: 251 - -21,-42: 252 + -21,-43: 267 + -21,-42: 268 -80,0: 0 -79,0: 0 -78,0: 0 @@ -17445,10 +17398,10 @@ entities: -38,34: 24 -37,34: 73 -36,34: 75 - -34,37: 253 - -33,37: 254 - -32,37: 255 - -31,37: 256 + -34,37: 269 + -33,37: 270 + -32,37: 271 + -31,37: 272 8,20: 0 9,20: 0 9,21: 0 @@ -17461,7 +17414,7 @@ entities: -47,-41: 49 -47,-40: 68 -47,-39: 24 - -47,-38: 257 + -47,-38: 273 -47,-37: 75 -46,-41: 70 -46,-40: 0 @@ -17478,11 +17431,11 @@ entities: -44,-39: 0 -44,-38: 0 -44,-37: 0 - -43,-41: 258 - -43,-40: 259 - -43,-39: 260 - -43,-38: 261 - -43,-37: 262 + -43,-41: 274 + -43,-40: 275 + -43,-39: 276 + -43,-38: 277 + -43,-37: 278 -42,-39: 0 -41,-39: 0 -40,-39: 0 @@ -17491,7 +17444,7 @@ entities: -37,-39: 0 -36,-39: 0 -16,31: 0 - -8,29: 263 + -8,29: 279 -16,32: 0 -22,29: 0 -22,31: 0 @@ -17503,11 +17456,11 @@ entities: -19,31: 0 -18,31: 0 -17,31: 0 - -22,32: 264 - -21,32: 265 - -20,32: 266 - -19,32: 267 - -18,32: 268 + -22,32: 280 + -21,32: 281 + -20,32: 282 + -19,32: 283 + -18,32: 284 -17,32: 0 -72,2: 0 -72,3: 0 @@ -17730,15 +17683,15 @@ entities: 13,20: 4 13,21: 4 13,22: 4 - 13,23: 269 + 13,23: 285 14,20: 4 14,21: 4 14,22: 4 - 14,23: 270 + 14,23: 286 15,20: 4 15,21: 4 15,22: 4 - 15,23: 271 + 15,23: 287 -16,33: 4 -15,32: 4 -15,33: 4 @@ -17752,17 +17705,17 @@ entities: -9,33: 4 -8,33: 4 10,-46: 4 - 10,-45: 272 - 10,-44: 273 + 10,-45: 288 + 10,-44: 289 10,-43: 4 16,13: 4 16,14: 4 - 18,13: 274 - 18,14: 275 + 18,13: 290 + 18,14: 291 19,13: 4 - 19,14: 276 + 19,14: 292 21,13: 4 - 21,14: 277 + 21,14: 293 22,13: 4 22,14: 4 24,13: 4 @@ -17792,9 +17745,9 @@ entities: 34,13: 4 34,14: 4 34,15: 4 - 35,13: 269 - 35,14: 278 - 35,15: 279 + 35,13: 285 + 35,14: 294 + 35,15: 295 16,20: 4 16,21: 4 16,22: 4 @@ -17829,7 +17782,7 @@ entities: 27,21: 4 27,22: 4 27,23: 4 - 28,16: 280 + 28,16: 296 28,17: 4 28,18: 4 28,19: 4 @@ -17894,9 +17847,9 @@ entities: 34,21: 4 34,22: 4 34,23: 4 - 35,16: 281 - 35,17: 282 - 35,18: 283 + 35,16: 297 + 35,17: 298 + 35,18: 299 35,19: 4 9,-48: 4 9,-46: 4 @@ -17905,7 +17858,7 @@ entities: 9,-43: 4 11,-48: 4 11,-46: 4 - 11,-45: 284 + 11,-45: 300 11,-44: 4 11,-43: 4 12,-48: 4 @@ -17933,7 +17886,7 @@ entities: 17,-45: 4 17,-44: 4 17,-43: 4 - 17,-42: 285 + 17,-42: 301 18,-48: 4 18,-46: 4 18,-45: 4 @@ -17988,14 +17941,14 @@ entities: 20,-49: 4 21,-49: 4 49,-21: 4 - 49,-20: 286 + 49,-20: 302 49,-19: 4 - 49,-18: 287 + 49,-18: 303 49,-17: 4 49,-13: 4 - 49,-12: 288 + 49,-12: 304 49,-11: 4 - 49,-10: 288 + 49,-10: 304 49,-9: 4 uniqueMixes: - volume: 2500 @@ -18911,6 +18864,127 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 292.86633 + moles: + - 21.803566 + - 82.02294 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 292.84863 + moles: + - 21.802235 + - 82.01793 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.07907 + moles: + - 21.819551 + - 82.08308 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.13226 + moles: + - 21.823547 + - 82.09811 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.07022 + moles: + - 21.818886 + - 82.08057 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.13004 + moles: + - 21.823381 + - 82.09748 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.14557 + moles: + - 21.824547 + - 82.10187 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.145 + moles: + - 21.824505 + - 82.10171 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 292.84753 + moles: + - 21.688923 + - 81.59167 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.0791 + moles: + - 21.792908 + - 81.98285 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.13104 + moles: + - 21.816792 + - 82.0727 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 220.5375 moles: @@ -20056,7 +20130,7 @@ entities: - 0 - 0 - volume: 2500 - temperature: 291.4178 + temperature: 291.41776 moles: - 21.694714 - 81.61346 @@ -20078,10 +20152,54 @@ entities: - 0 - 0 - volume: 2500 - temperature: 274.99686 + temperature: 288.61172 moles: - - 20.460825 - - 76.97167 + - 21.483864 + - 80.82026 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 273.8623 + moles: + - 20.37557 + - 76.650955 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 288.3281 + moles: + - 21.462551 + - 80.74008 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 292.0154 + moles: + - 21.739626 + - 81.7824 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 291.94452 + moles: + - 21.734299 + - 81.76236 - 0 - 0 - 0 @@ -20572,6 +20690,17 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 274.99686 + moles: + - 20.460825 + - 76.97167 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 128.6373 moles: @@ -23152,6 +23281,8 @@ entities: pos: -25.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -23649,6 +23780,8 @@ entities: - pos: -6.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 482 type: WallSolid components: @@ -23795,6 +23928,8 @@ entities: - pos: -6.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 501 type: Table components: @@ -24902,6 +25037,8 @@ entities: - pos: 1.5,-9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 676 type: Bookshelf components: @@ -25058,29 +25195,43 @@ entities: parent: 106 type: Transform - uid: 701 - type: WallSolid + type: SpawnPointSalvageSpecialist components: - - pos: -36.5,-10.5 + - pos: -38.5,-16.5 parent: 106 type: Transform - uid: 702 - type: WallSolid + type: DisposalPipe components: - - pos: -36.5,-9.5 + - rot: -1.5707963267948966 rad + pos: -37.5,-10.5 parent: 106 type: Transform + - containers: + DisposalTransit: !type:Container + ents: [] + type: ContainerContainer - uid: 703 - type: WallSolid + type: DisposalPipe components: - - pos: -36.5,-8.5 + - rot: -1.5707963267948966 rad + pos: -38.5,-10.5 parent: 106 type: Transform + - containers: + DisposalTransit: !type:Container + ents: [] + type: ContainerContainer - uid: 704 - type: WallSolid + type: DisposalBend components: - - pos: -36.5,-7.5 + - pos: -36.5,-10.5 parent: 106 type: Transform + - containers: + DisposalBend: !type:Container + ents: [] + type: ContainerContainer - uid: 705 type: AirlockGlass components: @@ -25088,87 +25239,89 @@ entities: parent: 106 type: Transform - uid: 706 - type: WallSolid + type: GasVentPump components: - - pos: -36.5,-5.5 + - pos: -33.5,-7.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 707 - type: WallSolid + type: Window components: - - pos: -35.5,-5.5 + - pos: -30.5,-12.5 parent: 106 type: Transform - uid: 708 - type: WallSolid + type: Window components: - - pos: -34.5,-5.5 + - pos: -36.5,-16.5 parent: 106 type: Transform - uid: 709 - type: WallSolid + type: Grille components: - - pos: -33.5,-5.5 + - pos: -31.5,-12.5 parent: 106 type: Transform - uid: 710 - type: WallSolid + type: Grille components: - - pos: -32.5,-5.5 + - pos: -30.5,-12.5 parent: 106 type: Transform - uid: 711 - type: WallSolid + type: Grille components: - - pos: -32.5,-6.5 + - pos: -29.5,-12.5 parent: 106 type: Transform - uid: 712 - type: WallSolid + type: Grille components: - - pos: -32.5,-7.5 + - pos: -28.5,-13.5 parent: 106 type: Transform - uid: 713 - type: WallSolid + type: Grille components: - - pos: -32.5,-8.5 + - pos: -28.5,-15.5 parent: 106 type: Transform - uid: 714 - type: WallSolid + type: Grille components: - - pos: -32.5,-9.5 + - pos: -28.5,-16.5 parent: 106 type: Transform - uid: 715 type: WallSolid components: - - pos: -32.5,-10.5 + - pos: -37.5,-19.5 parent: 106 type: Transform - uid: 716 type: WallSolid components: - - pos: -31.5,-5.5 + - pos: -28.5,-12.5 parent: 106 type: Transform - uid: 717 type: WallSolid components: - - pos: -30.5,-5.5 + - pos: -31.5,-9.5 parent: 106 type: Transform - uid: 718 type: WallSolid components: - - pos: -29.5,-5.5 + - pos: -36.5,-6.5 parent: 106 type: Transform - uid: 719 type: WallSolid components: - - pos: -28.5,-5.5 + - pos: -36.5,-9.5 parent: 106 type: Transform - uid: 720 @@ -25205,15 +25358,15 @@ entities: - canCollide: False type: Physics - uid: 723 - type: Grille + type: WallSolid components: - - pos: -27.5,-10.5 + - pos: -31.5,-6.5 parent: 106 type: Transform - uid: 724 - type: Grille + type: WallSolid components: - - pos: -28.5,-10.5 + - pos: -28.5,-8.5 parent: 106 type: Transform - uid: 725 @@ -25259,11 +25412,14 @@ entities: parent: 106 type: Transform - uid: 732 - type: Grille + type: GasPipeStraight components: - - pos: -29.5,-10.5 + - rot: -1.5707963267948966 rad + pos: -29.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 733 type: WallSolid components: @@ -25451,136 +25607,145 @@ entities: parent: 106 type: Transform - uid: 764 - type: WallSolid + type: ShuttersNormal components: - - pos: -28.5,-16.5 + - pos: -29.5,-9.5 parent: 106 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: [] + type: SignalReceiver - uid: 765 - type: Poweredlight + type: SurveillanceCameraSupply components: - - rot: -1.5707963267948966 rad - pos: -26.5,-18.5 + - pos: -31.5,-18.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 766 - type: Grille + type: GasPipeStraight components: - - rot: -1.5707963267948966 rad - pos: -31.5,-19.5 + - rot: 3.141592653589793 rad + pos: -27.5,-12.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 767 - type: WallSolid + type: GasPipeStraight components: - - pos: -28.5,-19.5 + - rot: -1.5707963267948966 rad + pos: -35.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 768 - type: Grille + type: GasPipeBend components: - - rot: -1.5707963267948966 rad - pos: -29.5,-19.5 + - rot: 1.5707963267948966 rad + pos: -30.5,-14.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 769 - type: Grille + type: SpawnPointQuartermaster components: - - rot: -1.5707963267948966 rad - pos: -30.5,-19.5 + - pos: -35.5,-12.5 parent: 106 type: Transform - uid: 770 - type: Grille + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -28.5,-18.5 + - pos: -27.5,-15.5 parent: 106 type: Transform - uid: 771 - type: WallSolid + type: MaintenanceToolSpawner components: - - pos: -32.5,-19.5 + - pos: -34.5,-6.5 parent: 106 type: Transform - uid: 772 - type: Grille + type: GasPipeStraight components: - rot: -1.5707963267948966 rad - pos: -28.5,-17.5 + pos: -33.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 773 - type: WallSolid + type: SurveillanceCameraSupply components: - - pos: -29.5,-16.5 + - pos: -28.5,-34.5 parent: 106 type: Transform - uid: 774 - type: WallSolid + type: CableApcExtension components: - - pos: -31.5,-16.5 + - pos: -27.5,-16.5 parent: 106 type: Transform - uid: 775 - type: WallSolid + type: CableApcExtension components: - - pos: -32.5,-16.5 + - pos: -27.5,-10.5 parent: 106 type: Transform - uid: 776 - type: WallSolid + type: CableApcExtension components: - - pos: -33.5,-16.5 + - pos: -33.5,-18.5 parent: 106 type: Transform - uid: 777 - type: WallSolid + type: Paper components: - - pos: -36.5,-16.5 + - pos: -29.359592,-13.361478 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 778 - type: WallSolid + type: Paper components: - - pos: -36.5,-17.5 + - pos: -29.558632,-25.551413 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 779 - type: WallSolid + type: CableApcExtension components: - - pos: -36.5,-18.5 + - pos: -34.5,-18.5 parent: 106 type: Transform - uid: 780 - type: WallSolid + type: CableApcExtension components: - - pos: -36.5,-19.5 + - pos: -36.5,-13.5 parent: 106 type: Transform - uid: 781 - type: WallSolid + type: AirlockCargoGlassLocked components: - - pos: -37.5,-19.5 + - pos: -28.5,-14.5 parent: 106 type: Transform - uid: 782 - type: WallSolid + type: LockerSalvageSpecialistFilled components: - - pos: -38.5,-19.5 + - pos: -37.5,-15.5 parent: 106 type: Transform - uid: 783 - type: WallSolid + type: Chair components: - - pos: -39.5,-19.5 + - rot: 3.141592653589793 rad + pos: -30.5,-18.5 parent: 106 type: Transform - uid: 784 @@ -25608,63 +25773,83 @@ entities: parent: 106 type: Transform - uid: 788 - type: WallSolid + type: Chair components: - - pos: -39.5,-16.5 + - pos: -31.5,-16.5 parent: 106 type: Transform - uid: 789 - type: WallSolid + type: ChairWood components: - - pos: -38.5,-16.5 + - rot: -1.5707963267948966 rad + pos: -29.5,-17.5 parent: 106 type: Transform - uid: 790 - type: WallSolid + type: ChairWood components: - - pos: -39.5,-15.5 + - rot: 1.5707963267948966 rad + pos: -32.5,-17.5 parent: 106 type: Transform - uid: 791 - type: WallSolid + type: ChairRitual components: - - pos: -39.5,-14.5 + - rot: 3.141592653589793 rad + pos: -31.5,-18.5 parent: 106 type: Transform - uid: 792 - type: WallSolid + type: ChairOfficeLight components: - - pos: -39.5,-13.5 + - pos: -30.5,-16.5 parent: 106 type: Transform - uid: 793 - type: WallSolid + type: DisposalUnit components: - - pos: -39.5,-12.5 + - pos: -33.5,-18.5 parent: 106 type: Transform + - containers: + DisposalUnit: !type:Container + ents: [] + type: ContainerContainer - uid: 794 - type: WallSolid + type: DisposalBend components: - - pos: -39.5,-11.5 + - pos: -32.5,-18.5 parent: 106 type: Transform + - containers: + DisposalBend: !type:Container + ents: [] + type: ContainerContainer - uid: 795 - type: WallSolid + type: DisposalPipe components: - - pos: -38.5,-11.5 + - pos: -32.5,-20.5 parent: 106 type: Transform + - containers: + DisposalTransit: !type:Container + ents: [] + type: ContainerContainer - uid: 796 - type: WallSolid + type: DisposalTrunk components: - - pos: -37.5,-11.5 + - rot: 1.5707963267948966 rad + pos: -33.5,-18.5 parent: 106 type: Transform + - containers: + DisposalEntry: !type:Container + ents: [] + type: ContainerContainer - uid: 797 - type: WallSolid + type: HighSecCommandLocked components: - - pos: -37.5,-10.5 + - pos: -3.5,24.5 parent: 106 type: Transform - uid: 798 @@ -28406,11 +28591,13 @@ entities: parent: 106 type: Transform - uid: 1195 - type: HighSecCommandLocked + type: GasPipeStraight components: - - pos: -3.5,24.5 + - pos: -32.5,-35.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 1196 type: MachineFrame components: @@ -30140,100 +30327,56 @@ entities: parent: 106 type: Transform - uid: 1448 - type: ConveyorBelt + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -28.5,-36.5 + - pos: -30.5,-30.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver - uid: 1449 - type: ConveyorBelt + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -32.5,-35.5 + - pos: -27.5,-30.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver - uid: 1450 - type: ConveyorBelt + type: GasVentPump components: - rot: 3.141592653589793 rad - pos: -32.5,-34.5 + pos: -30.5,-36.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 1451 + type: CableApcExtension + components: + - pos: -34.5,-32.5 + parent: 106 + type: Transform +- uid: 1452 + type: CableApcExtension + components: + - pos: -32.5,-35.5 + parent: 106 + type: Transform +- uid: 1453 type: ConveyorBelt components: - rot: 3.141592653589793 rad - pos: -28.5,-37.5 + pos: -33.5,-36.5 parent: 106 type: Transform - inputs: Reverse: - port: Right - uid: 10143 + uid: 9045 Forward: - port: Left - uid: 10143 + uid: 9045 Off: - port: Middle - uid: 10143 - type: SignalReceiver -- uid: 1452 - type: PoweredSmallLight - components: - - rot: 1.5707963267948966 rad - pos: -32.5,-36.5 - parent: 106 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] + uid: 9045 type: SignalReceiver -- uid: 1453 - type: Grille - components: - - pos: -30.5,-36.5 - parent: 106 - type: Transform - uid: 1454 type: WallSolid components: @@ -30290,14 +30433,12 @@ entities: Toggle: [] type: SignalReceiver - uid: 1462 - type: GasVentPump + type: WallReinforced components: - - rot: 3.141592653589793 rad - pos: -29.5,-36.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-36.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 1463 type: GasVentScrubber components: @@ -30316,14 +30457,12 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 1465 - type: GasPipeBend + type: ReinforcedWindow components: - - rot: 3.141592653589793 rad - pos: -30.5,-32.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-37.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 1466 type: GasPipeStraight components: @@ -30400,6 +30539,8 @@ entities: pos: -24.5,-31.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -30445,9 +30586,10 @@ entities: parent: 106 type: Transform - uid: 1477 - type: TableWood + type: WallReinforced components: - - pos: -26.5,-28.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-37.5 parent: 106 type: Transform - uid: 1478 @@ -30496,9 +30638,9 @@ entities: parent: 106 type: Transform - uid: 1484 - type: CableApcExtension + type: PlasticFlapsAirtightClear components: - - pos: -29.5,-30.5 + - pos: -27.5,-35.5 parent: 106 type: Transform - uid: 1485 @@ -30606,15 +30748,15 @@ entities: parent: 106 type: Transform - uid: 1499 - type: WallReinforced + type: PlasticFlapsAirtightClear components: - - pos: -27.5,-35.5 + - pos: -29.5,-35.5 parent: 106 type: Transform - uid: 1500 - type: WallReinforced + type: PlasticFlapsAirtightClear components: - - pos: -33.5,-37.5 + - pos: -33.5,-35.5 parent: 106 type: Transform - uid: 1501 @@ -30636,6 +30778,8 @@ entities: pos: -24.5,-34.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -30659,17 +30803,41 @@ entities: parent: 106 type: Transform - uid: 1506 - type: CrateEmptySpawner + type: ConveyorBelt components: - - pos: -27.5,-31.5 + - rot: 3.141592653589793 rad + pos: -27.5,-33.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 11875 + Forward: + - port: Left + uid: 11875 + Off: + - port: Middle + uid: 11875 + type: SignalReceiver - uid: 1507 - type: CrateFilledSpawner + type: ConveyorBelt components: - - pos: -27.5,-32.5 + - rot: 3.141592653589793 rad + pos: -27.5,-34.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 11875 + Forward: + - port: Left + uid: 11875 + Off: + - port: Middle + uid: 11875 + type: SignalReceiver - uid: 1508 type: WallSolid components: @@ -30683,15 +30851,20 @@ entities: parent: 106 type: Transform - uid: 1510 - type: CrateEmptySpawner + type: VendingMachineTankDispenserEVA components: - - pos: -33.5,-31.5 + - name: tank dispenser + type: MetaData + - pos: -24.5,-24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 1511 - type: RandomSpawner + type: WindoorSecureSalvageLocked components: - - pos: -30.5,-31.5 + - rot: 1.5707963267948966 rad + pos: -24.5,-36.5 parent: 106 type: Transform - uid: 1512 @@ -30727,23 +30900,36 @@ entities: parent: 106 type: Transform - uid: 1517 - type: LockerSalvageSpecialistFilled + type: CableApcExtension components: - - pos: -24.5,-26.5 + - pos: -25.5,-36.5 parent: 106 type: Transform - uid: 1518 - type: Catwalk + type: WindowReinforcedDirectional components: - - pos: -24.5,-37.5 + - rot: 3.141592653589793 rad + pos: -23.5,-37.5 parent: 106 type: Transform - uid: 1519 - type: Catwalk + type: ConveyorBelt components: - - pos: -26.5,-36.5 + - rot: 3.141592653589793 rad + pos: -33.5,-34.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 1520 type: DrinkGrapeCan components: @@ -30771,9 +30957,9 @@ entities: parent: 106 type: Transform - uid: 1523 - type: SalvageMagnet + type: CableApcExtension components: - - pos: -23.5,-36.5 + - pos: -28.5,-33.5 parent: 106 type: Transform - uid: 1524 @@ -32518,6 +32704,8 @@ entities: - pos: -59.5,5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 1804 type: WallReinforced components: @@ -35933,6 +36121,8 @@ entities: - pos: -22.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -36099,6 +36289,8 @@ entities: - pos: -25.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 2343 type: GasVentPump components: @@ -36894,6 +37086,8 @@ entities: - pos: 21.5,-24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 2455 type: ComputerResearchAndDevelopment components: @@ -37313,6 +37507,8 @@ entities: pos: -19.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37352,6 +37548,8 @@ entities: pos: -8.5,10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37381,6 +37579,8 @@ entities: pos: 33.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37416,6 +37616,8 @@ entities: pos: -14.5,31.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37433,6 +37635,8 @@ entities: pos: -13.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37450,6 +37654,8 @@ entities: pos: -8.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37577,6 +37783,8 @@ entities: pos: -11.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -38216,17 +38424,32 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 2628 - type: AirlockExternal + type: ConveyorBelt components: - - pos: -29.5,-35.5 + - rot: 3.141592653589793 rad + pos: -33.5,-37.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 2629 - type: AirlockExternal + type: GasVentPump components: - - pos: -31.5,-35.5 + - rot: 3.141592653589793 rad + pos: -32.5,-36.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 2630 type: GasVentPump components: @@ -38911,41 +39134,15 @@ entities: parent: 106 type: Transform - uid: 2732 - type: AirlockGlassShuttle + type: CableApcExtension components: - - pos: -29.5,-37.5 + - pos: -29.5,-30.5 parent: 106 type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures - uid: 2733 - type: PlasticFlapsAirtightClear + type: CableApcExtension components: - - pos: -28.5,-37.5 + - pos: -32.5,-33.5 parent: 106 type: Transform - uid: 2734 @@ -39124,6 +39321,8 @@ entities: - pos: -1.5,-28.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 2761 type: AirlockExternalGlassLocked components: @@ -39987,23 +40186,17 @@ entities: parent: 106 type: Transform - uid: 2870 - type: ConveyorBelt + type: BoxFolderGrey components: - - rot: 3.141592653589793 rad - pos: -32.5,-36.5 + - pos: -52.319454,9.498799 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 2871 type: GasPipeStraight components: @@ -40408,6 +40601,8 @@ entities: - pos: 15.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 2925 type: TableCounterWood components: @@ -40811,9 +41006,9 @@ entities: parent: 106 type: Transform - uid: 2989 - type: Grille + type: TableWood components: - - pos: -30.5,-35.5 + - pos: -32.5,-13.5 parent: 106 type: Transform - uid: 2990 @@ -41100,6 +41295,8 @@ entities: - pos: -23.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3029 type: AirlockGlass components: @@ -41356,6 +41553,8 @@ entities: - pos: -27.5,34.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3066 type: AirlockArmoryLocked components: @@ -41519,6 +41718,8 @@ entities: - pos: 46.5,-22.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3090 type: WallReinforced components: @@ -41755,21 +41956,13 @@ entities: parent: 106 type: Transform - uid: 3127 - type: SurveillanceCameraRouterSupply + type: Paper components: - - pos: -39.5,-17.5 + - pos: -46.446774,13.549463 parent: 106 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer + - canCollide: False + type: Physics - uid: 3128 type: ComputerSurveillanceCameraMonitor components: @@ -42183,6 +42376,8 @@ entities: - pos: 13.5,-9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3178 type: TableReinforcedGlass components: @@ -42626,6 +42821,8 @@ entities: - pos: -17.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3247 type: AirlockFreezerLocked components: @@ -42739,6 +42936,8 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/cigs.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 3264 type: WallReinforced components: @@ -43035,12 +43234,17 @@ entities: parent: 106 type: Transform - uid: 3307 - type: Window + type: CrayonBox components: - - rot: -1.5707963267948966 rad - pos: -32.5,-18.5 + - pos: -44.165524,14.783838 parent: 106 type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 3308 type: PosterContrabandBustyBackdoorExoBabes6 components: @@ -43186,6 +43390,8 @@ entities: - pos: -13.5,-19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3329 type: WallSolid components: @@ -43407,22 +43613,25 @@ entities: parent: 106 type: Transform - uid: 3361 - type: LockerQuarterMasterFilled + type: Paper components: - - pos: -38.5,-17.5 + - pos: -46.68115,13.658838 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 3362 - type: AirlockQuartermasterLocked + type: Paper components: - - pos: -37.5,-16.5 + - pos: -52.475704,8.905049 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 3363 - type: Chair + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -39.5,-18.5 + - pos: -28.5,-30.5 parent: 106 type: Transform - uid: 3364 @@ -44039,21 +44248,11 @@ entities: parent: 106 type: Transform - uid: 3455 - type: PoweredSmallLight + type: CableApcExtension components: - - pos: -38.5,-17.5 + - pos: -30.5,-35.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 3456 type: SheetSteel components: @@ -44649,37 +44848,11 @@ entities: - canCollide: False type: Physics - uid: 3536 - type: AirlockGlassShuttle + type: CableApcExtension components: - - pos: -31.5,-37.5 + - pos: -30.5,-32.5 parent: 106 type: Transform - - fixtures: - - shape: !type:PolygonShape - vertices: - - 0.49,-0.49 - - 0.49,0.49 - - -0.49,0.49 - - -0.49,-0.49 - mask: - - Impassable - - MidImpassable - - HighImpassable - - LowImpassable - - InteractImpassable - layer: - - MidImpassable - - HighImpassable - - BulletImpassable - - InteractImpassable - - Opaque - mass: 100 - - shape: !type:PhysShapeCircle - position: 0,-0.5 - radius: 0.2 - hard: False - id: docking - type: Fixtures - uid: 3537 type: MicroManipulatorStockPart components: @@ -44692,7 +44865,7 @@ entities: type: GasPipeBend components: - rot: 1.5707963267948966 rad - pos: -31.5,-34.5 + pos: -32.5,-34.5 parent: 106 type: Transform - color: '#0000FFFF' @@ -44738,13 +44911,22 @@ entities: parent: 106 type: Transform - uid: 3544 - type: GasPipeStraight + type: ConveyorBelt components: - - pos: -31.5,-35.5 + - pos: -29.5,-36.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 3545 type: Catwalk components: @@ -44752,230 +44934,155 @@ entities: parent: 106 type: Transform - uid: 3546 - type: GasPipeStraight + type: SpawnPointCargoTechnician components: - - rot: 3.141592653589793 rad - pos: -29.5,-33.5 + - pos: -29.5,-16.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 3547 - type: GasPipeStraight + type: SpawnPointDetective components: - - rot: 1.5707963267948966 rad - pos: -30.5,-34.5 + - pos: -24.5,28.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 3548 - type: DisposalUnit + type: GasPipeStraight components: - - pos: -36.5,-11.5 + - pos: -35.5,-14.5 parent: 106 type: Transform - - containers: - DisposalUnit: !type:Container - ents: [] - type: ContainerContainer + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3549 - type: Table + type: CableApcExtension components: - - pos: -32.5,-17.5 + - pos: -32.5,-15.5 parent: 106 type: Transform - uid: 3550 - type: AirlockCargoLocked + type: CableApcExtension components: - - pos: -30.5,-16.5 + - pos: -30.5,-6.5 parent: 106 type: Transform - uid: 3551 - type: AirlockCargoGlassLocked + type: GasPipeStraight components: - - pos: -35.5,-16.5 + - rot: 1.5707963267948966 rad + pos: -27.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3552 - type: AirlockCargoGlassLocked + type: GasPipeStraight components: - - pos: -34.5,-16.5 + - pos: -26.5,-17.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3553 - type: ConveyorBelt + type: GasPipeStraight components: - - pos: -26.5,-13.5 + - pos: -26.5,-18.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3554 - type: ConveyorBelt + type: GasPipeStraight components: - pos: -26.5,-14.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3555 - type: ConveyorBelt + type: ShuttersNormal components: - - pos: -26.5,-15.5 + - pos: -30.5,-9.5 parent: 106 type: Transform - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 + Open: [] + Close: [] + Toggle: [] type: SignalReceiver - uid: 3556 - type: ConveyorBelt + type: SurveillanceCameraSupply components: - - pos: -26.5,-16.5 + - pos: -28.5,-11.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver - uid: 3557 - type: ConveyorBelt + type: GasPipeBend components: - - pos: -26.5,-17.5 + - pos: -26.5,-10.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3558 - type: CargoTelepad + type: GasPipeStraight components: - - pos: -32.5,-13.5 + - pos: -27.5,-8.5 parent: 106 type: Transform - - canCollide: False - type: Physics - - inputs: - OrderReceiver: [] - type: SignalReceiver + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 3559 - type: ConveyorBelt + type: GasPipeStraight components: - - rot: 1.5707963267948966 rad - pos: -27.5,-13.5 + - pos: -30.5,-16.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 3560 - type: ConveyorBelt + type: GasPipeStraight components: - - rot: 1.5707963267948966 rad - pos: -28.5,-13.5 + - rot: 3.141592653589793 rad + pos: -33.5,-10.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 3561 - type: ConveyorBelt + type: GasPipeStraight components: - - rot: 1.5707963267948966 rad - pos: -29.5,-13.5 + - pos: -26.5,-19.5 parent: 106 type: Transform - - inputs: - Off: - - port: Middle - uid: 9045 - Forward: - - port: Left - uid: 9045 - Reverse: - - port: Right - uid: 9045 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3562 - type: AirlockCargoGlassLocked + type: DrinkBeer components: - - pos: -27.5,-16.5 + - pos: -38.4904,-13.393377 parent: 106 type: Transform + - canCollide: False + type: Physics + - solution: drink + type: DrainableSolution - uid: 3563 - type: PlasticFlapsClear - components: - - pos: -26.5,-16.5 - parent: 106 - type: Transform -- uid: 3564 - type: ComputerCargoOrders + type: DisposalTrunk components: - rot: 3.141592653589793 rad - pos: -31.5,-18.5 + pos: -36.5,-12.5 parent: 106 type: Transform - containers: - board: !type:Container + DisposalEntry: !type:Container ents: [] type: ContainerContainer +- uid: 3564 + type: PosterMapPacked + components: + - pos: 27.5,23.5 + parent: 106 + type: Transform - uid: 3565 type: FirelockEdge components: @@ -44988,44 +45095,69 @@ entities: - canCollide: False type: Physics - uid: 3566 - type: AirlockMaintCargoLocked + type: CableApcExtension components: - - pos: -36.5,-6.5 + - pos: -32.5,-14.5 parent: 106 type: Transform - uid: 3567 - type: WindoorSecureCargoLocked + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -32.5,-17.5 + - pos: -33.5,-9.5 parent: 106 type: Transform - uid: 3568 - type: WindoorCargoLocked + type: CableApcExtension components: - - pos: -35.5,-14.5 + - pos: -32.5,-18.5 parent: 106 type: Transform - uid: 3569 - type: WindoorCargoLocked + type: CableApcExtension components: - - pos: -34.5,-14.5 + - pos: -27.5,-11.5 parent: 106 type: Transform - uid: 3570 - type: WindowDirectional + type: AirlockGlassShuttle components: - - rot: 1.5707963267948966 rad - pos: -36.5,-15.5 + - pos: -30.5,-37.5 parent: 106 type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures - uid: 3571 - type: WindowDirectional + type: GasVentPump components: - - rot: -1.5707963267948966 rad - pos: -33.5,-15.5 + - pos: -27.5,-7.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 3572 type: ReinforcedWindow components: @@ -45078,9 +45210,9 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 3579 - type: CableApcExtension + type: Window components: - - pos: -29.5,-34.5 + - pos: -33.5,-12.5 parent: 106 type: Transform - uid: 3580 @@ -45091,6 +45223,8 @@ entities: - pos: -9.5,-28.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3581 type: GasPipeStraight components: @@ -46035,6 +46169,8 @@ entities: pos: 22.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -46528,6 +46664,8 @@ entities: pos: 19.5,10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -46594,6 +46732,8 @@ entities: - pos: -44.5,20.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -46623,31 +46763,21 @@ entities: parent: 106 type: Transform - uid: 3805 - type: ShuttersNormalOpen + type: GasVentScrubber components: - - pos: -35.5,-10.5 + - pos: -33.5,-15.5 parent: 106 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: - - port: Pressed - uid: 13192 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3806 - type: ShuttersNormalOpen + type: Paper components: - - pos: -33.5,-10.5 + - pos: -46.36865,13.705713 parent: 106 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: - - port: Pressed - uid: 13192 - type: SignalReceiver + - canCollide: False + type: Physics - uid: 3807 type: FoodCondimentBottleBBQ components: @@ -46669,22 +46799,11 @@ entities: - canCollide: False type: Physics - uid: 3809 - type: ShuttersWindowOpen + type: TableWood components: - - pos: -34.5,-10.5 + - pos: -38.5,-12.5 parent: 106 type: Transform - - canCollide: False - type: Physics - - airBlocked: False - type: Airtight - - inputs: - Open: [] - Close: [] - Toggle: - - port: Pressed - uid: 13192 - type: SignalReceiver - uid: 3810 type: ReagentContainerOliveoil components: @@ -46751,50 +46870,60 @@ entities: uid: 13190 type: SignalReceiver - uid: 3814 - type: filingCabinetDrawer + type: Paper components: - - pos: -29.5,-17.5 + - pos: -46.2749,13.565088 parent: 106 type: Transform - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer + - canCollide: False + type: Physics - uid: 3815 - type: PottedPlantRandom + type: DrinkBottleBeer components: - - pos: -29.5,-18.5 + - pos: -38.318523,-12.729455 parent: 106 type: Transform - - containers: - stash: !type:ContainerSlot {} - type: ContainerContainer + - canCollide: False + type: Physics + - solution: drink + type: RefillableSolution + - solution: drink + type: DrainableSolution - uid: 3816 - type: ChairOfficeDark + type: TableWood components: - - rot: -1.5707963267948966 rad - pos: -31.5,-17.5 + - pos: -31.5,-13.5 parent: 106 type: Transform - uid: 3817 - type: Windoor + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -32.5,-17.5 + - pos: -27.5,-9.5 parent: 106 type: Transform - uid: 3818 - type: Chair + type: PoweredSmallLight components: - rot: -1.5707963267948966 rad - pos: -33.5,-18.5 + pos: -29.5,-36.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 3819 - type: Chair + type: Window components: - - rot: -1.5707963267948966 rad - pos: -33.5,-19.5 + - pos: -36.5,-17.5 parent: 106 type: Transform - uid: 3820 @@ -46822,6 +46951,8 @@ entities: pos: 27.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -47112,6 +47243,8 @@ entities: - pos: -55.5,24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3864 type: GasPipeStraight components: @@ -47443,9 +47576,9 @@ entities: parent: 106 type: Transform - uid: 3901 - type: RandomSpawner + type: Rack components: - - pos: -33.5,-32.5 + - pos: -33.5,-11.5 parent: 106 type: Transform - uid: 3902 @@ -47461,86 +47594,66 @@ entities: parent: 106 type: Transform - uid: 3904 - type: Autolathe + type: WallSolid components: - - pos: -33.5,-6.5 + - pos: -35.5,-14.5 parent: 106 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer - uid: 3905 - type: ComputerCargoOrders + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -31.5,-13.5 + - pos: -37.5,-10.5 parent: 106 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - - outputs: - OrderSender: [] - type: SignalTransmitter - uid: 3906 - type: Table + type: WallSolid components: - - pos: -26.5,-11.5 + - pos: -31.5,-7.5 parent: 106 type: Transform - uid: 3907 - type: Table + type: LockerSalvageSpecialistFilled components: - - pos: -27.5,-11.5 + - pos: -37.5,-16.5 parent: 106 type: Transform - uid: 3908 - type: Table + type: CableApcExtension components: - - pos: -28.5,-11.5 + - pos: -36.5,-12.5 parent: 106 type: Transform - uid: 3909 - type: SignCargo + type: AirlockMaintCargoLocked components: - - pos: -36.5,-19.5 + - pos: -30.5,-5.5 parent: 106 type: Transform - uid: 3910 - type: ComputerCargoOrders + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -38.5,-12.5 + - pos: -36.5,-11.5 parent: 106 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - uid: 3911 - type: Table + type: AirlockMaintCargoLocked components: - - pos: -38.5,-14.5 + - pos: -26.5,-5.5 parent: 106 type: Transform - uid: 3912 - type: Table + type: GasPipeTJunction components: - - pos: -38.5,-13.5 + - rot: -1.5707963267948966 rad + pos: -26.5,-15.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 3913 - type: Rack + type: CableApcExtension components: - - pos: -38.5,-15.5 + - pos: -38.5,-18.5 parent: 106 type: Transform - uid: 3914 @@ -47672,6 +47785,8 @@ entities: - pos: -48.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3924 type: Table components: @@ -47762,6 +47877,8 @@ entities: - pos: -46.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 3933 type: Rack components: @@ -47775,17 +47892,15 @@ entities: parent: 106 type: Transform - uid: 3935 - type: ChairOfficeDark + type: HighSecCaptainLocked components: - - rot: 3.141592653589793 rad - pos: -27.5,-12.5 + - pos: 22.5,12.5 parent: 106 type: Transform - uid: 3936 - type: Chair + type: CrateEmptySpawner components: - - rot: -1.5707963267948966 rad - pos: -37.5,-13.5 + - pos: -29.5,-32.5 parent: 106 type: Transform - uid: 3937 @@ -47827,9 +47942,9 @@ entities: - canCollide: False type: Physics - uid: 3943 - type: HighSecCaptainLocked + type: CrateFilledSpawner components: - - pos: 22.5,12.5 + - pos: -29.5,-31.5 parent: 106 type: Transform - uid: 3944 @@ -48089,6 +48204,8 @@ entities: pos: -24.5,-13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -48106,6 +48223,8 @@ entities: pos: -24.5,-17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -48123,6 +48242,8 @@ entities: pos: -12.5,-14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49077,6 +49198,8 @@ entities: - pos: 21.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49094,6 +49217,8 @@ entities: pos: 15.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49148,60 +49273,40 @@ entities: - canCollide: False type: Physics - uid: 4082 - type: FirelockEdge + type: RandomSpawner components: - - rot: 3.141592653589793 rad - pos: -27.5,-20.5 + - pos: -29.5,-30.5 parent: 106 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics - uid: 4083 - type: FirelockEdge + type: RandomSpawner components: - - rot: 3.141592653589793 rad - pos: -26.5,-20.5 + - pos: -33.5,-32.5 parent: 106 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics - uid: 4084 - type: FirelockEdge + type: RandomSpawner components: - - rot: 3.141592653589793 rad - pos: -35.5,-20.5 + - pos: -33.5,-31.5 parent: 106 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics - uid: 4085 - type: FirelockEdge + type: Paper components: - - rot: 3.141592653589793 rad - pos: -34.5,-20.5 + - pos: -52.413204,6.3269243 parent: 106 type: Transform - - airBlocked: False - type: Airtight - canCollide: False type: Physics - uid: 4086 - type: FirelockEdge + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -33.5,-20.5 + - rot: 1.5707963267948966 rad + pos: -29.5,-32.5 parent: 106 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 4087 type: TableReinforcedGlass components: @@ -51467,6 +51572,8 @@ entities: - pos: -53.5,0.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 4363 type: Poweredlight components: @@ -52369,6 +52476,8 @@ entities: pos: 24.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -53436,14 +53545,13 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 4616 - type: GasVentScrubber + type: LampGold components: - - rot: 1.5707963267948966 rad - pos: -38.5,-18.5 + - pos: -32.234592,-13.318947 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4617 type: GasPipeStraight components: @@ -53587,6 +53695,8 @@ entities: pos: 20.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -55380,9 +55490,9 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 4863 - type: PlasticFlapsAirtightClear + type: CableApcExtension components: - - pos: -28.5,-35.5 + - pos: -30.5,-10.5 parent: 106 type: Transform - uid: 4864 @@ -55439,14 +55549,11 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 4870 - type: GasPipeTJunction + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -34.5,-18.5 + - pos: -33.5,-10.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 4871 type: GasPipeStraight components: @@ -55933,13 +56040,11 @@ entities: ents: [] type: ContainerContainer - uid: 4924 - type: GasVentScrubber + type: CableApcExtension components: - - pos: -34.5,-13.5 + - pos: -34.5,-7.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 4925 type: GasVentPump components: @@ -55958,123 +56063,107 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 4927 - type: GasPipeTJunction + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -34.5,-14.5 + - pos: -30.5,-7.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 4928 - type: GasPipeStraight + type: TableWood components: - - rot: 3.141592653589793 rad - pos: -34.5,-15.5 + - pos: -31.5,-17.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 4929 - type: GasPipeStraight + type: GasPipeFourway components: - - rot: 3.141592653589793 rad - pos: -34.5,-16.5 + - pos: -26.5,-20.5 parent: 106 type: Transform - color: '#FF0000FF' type: AtmosPipeColor - uid: 4930 - type: GasPipeStraight + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -34.5,-17.5 + - pos: -28.5,-14.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 4931 - type: GasPipeTJunction + type: Paper components: - - rot: 3.141592653589793 rad - pos: -34.5,-20.5 + - pos: -63.819843,-18.460655 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4932 - type: GasPipeStraight + type: Paper components: - - rot: 3.141592653589793 rad - pos: -34.5,-19.5 + - pos: -31.250217,-17.450312 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4933 - type: GasPipeStraight + type: Paper components: - - rot: 1.5707963267948966 rad - pos: -37.5,-18.5 + - pos: -29.718967,-13.252103 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4934 - type: GasPipeStraight + type: GasPipeTJunction components: - rot: 1.5707963267948966 rad - pos: -36.5,-18.5 + pos: -27.5,-17.5 parent: 106 type: Transform - - color: '#FF0000FF' + - color: '#0000FFFF' type: AtmosPipeColor - uid: 4935 - type: GasPipeStraight + type: GasPipeTJunction components: - - rot: 1.5707963267948966 rad - pos: -35.5,-18.5 + - rot: 3.141592653589793 rad + pos: -33.5,-11.5 parent: 106 type: Transform - - color: '#FF0000FF' + - color: '#0000FFFF' type: AtmosPipeColor - uid: 4936 - type: GasPipeBend + type: GasPipeTJunction components: - - rot: 1.5707963267948966 rad + - rot: -1.5707963267948966 rad pos: -30.5,-15.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4937 - type: GasPipeBend + type: GasPipeStraight components: - - pos: -27.5,-15.5 + - rot: 3.141592653589793 rad + pos: -33.5,-9.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4938 - type: GasPipeStraight + type: CrateEmptySpawner components: - - pos: -30.5,-16.5 + - pos: -32.5,-6.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4939 - type: GasPipeStraight + type: CrateEmptySpawner components: - - pos: -27.5,-16.5 + - pos: -27.5,-7.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4940 type: GasPipeStraight components: - - pos: -27.5,-17.5 + - pos: -30.5,-10.5 parent: 106 type: Transform - color: '#0000FFFF' @@ -56082,7 +56171,8 @@ entities: - uid: 4941 type: GasPipeStraight components: - - pos: -27.5,-18.5 + - rot: -1.5707963267948966 rad + pos: -31.5,-18.5 parent: 106 type: Transform - color: '#0000FFFF' @@ -56090,7 +56180,8 @@ entities: - uid: 4942 type: GasPipeStraight components: - - pos: -27.5,-19.5 + - rot: -1.5707963267948966 rad + pos: -28.5,-11.5 parent: 106 type: Transform - color: '#0000FFFF' @@ -56098,127 +56189,109 @@ entities: - uid: 4943 type: GasPipeStraight components: - - pos: -29.5,-14.5 + - rot: 3.141592653589793 rad + pos: -27.5,-13.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4944 - type: GasPipeStraight + type: Grille components: - - rot: -1.5707963267948966 rad - pos: -28.5,-15.5 + - pos: -32.5,-12.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4945 - type: GasPipeStraight + type: Window components: - - rot: 3.141592653589793 rad - pos: -29.5,-12.5 + - pos: -36.5,-15.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4946 - type: GasPipeStraight + type: Window components: - - rot: 1.5707963267948966 rad - pos: -31.5,-11.5 + - pos: -31.5,-12.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4947 - type: GasPipeStraight + type: GasVentScrubber components: - rot: 1.5707963267948966 rad - pos: -32.5,-11.5 + pos: -27.5,-15.5 parent: 106 type: Transform - - color: '#0000FFFF' + - color: '#FF0000FF' type: AtmosPipeColor - uid: 4948 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -33.5,-11.5 + - pos: -27.5,-5.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4949 - type: GasPipeTJunction + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -34.5,-11.5 + - rot: -1.5707963267948966 rad + pos: -32.5,-18.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4950 - type: GasPipeBend + type: GasPipeStraight components: - - pos: -29.5,-11.5 + - rot: 1.5707963267948966 rad + pos: -29.5,-14.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4951 - type: GasPipeTJunction + type: WallSolid components: - - rot: 3.141592653589793 rad - pos: -29.5,-15.5 + - pos: -36.5,-19.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4952 - type: GasPipeTJunction + type: GasVentScrubber components: - - rot: -1.5707963267948966 rad - pos: -29.5,-13.5 + - rot: 1.5707963267948966 rad + pos: -38.5,-16.5 parent: 106 type: Transform - - color: '#0000FFFF' + - color: '#FF0000FF' type: AtmosPipeColor - uid: 4953 - type: GasPipeTJunction + type: GasVentScrubber components: - - rot: 3.141592653589793 rad - pos: -30.5,-11.5 + - pos: -35.5,-13.5 parent: 106 type: Transform - - color: '#0000FFFF' + - color: '#FF0000FF' type: AtmosPipeColor - uid: 4954 - type: GasPipeStraight + type: SignCargo components: - - rot: 3.141592653589793 rad - pos: -34.5,-10.5 + - pos: -28.5,-19.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4955 type: GasPipeStraight components: - rot: 3.141592653589793 rad - pos: -34.5,-9.5 + pos: -27.5,-19.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 4956 - type: GasPipeStraight + type: Paper components: - - rot: 3.141592653589793 rad - pos: -34.5,-8.5 + - pos: -58.480175,-0.84224784 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4957 type: FirelockEdge components: @@ -56251,14 +56324,12 @@ entities: - solution: food type: DrainableSolution - uid: 4960 - type: GasVentPump + type: Chair components: - - rot: 1.5707963267948966 rad - pos: -30.5,-13.5 + - rot: -1.5707963267948966 rad + pos: -37.5,-12.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4961 type: GasVentPump components: @@ -56309,14 +56380,11 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 4967 - type: GasVentPump + type: Window components: - - rot: 1.5707963267948966 rad - pos: -38.5,-17.5 + - pos: -28.5,-17.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4968 type: GasPipeStraight components: @@ -56334,14 +56402,13 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 4970 - type: GasVentPump + type: Paper components: - - rot: 3.141592653589793 rad - pos: -30.5,-17.5 + - pos: -58.276752,-17.394016 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4971 type: Gauze components: @@ -56351,90 +56418,70 @@ entities: - canCollide: False type: Physics - uid: 4972 - type: GasVentPump + type: GasVentScrubber components: - - pos: -34.5,-7.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-10.5 parent: 106 type: Transform - - color: '#0000FFFF' + - color: '#FF0000FF' type: AtmosPipeColor - uid: 4973 - type: GasPipeBend + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -37.5,-17.5 + - pos: -29.5,-14.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4974 - type: GasPipeBend + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -35.5,-11.5 + - pos: -35.5,-18.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4975 - type: GasPipeBend + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -35.5,-12.5 + - pos: -35.5,-13.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4976 - type: GasPipeBend + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -37.5,-12.5 + - pos: -33.5,-13.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4977 - type: GasPipeStraight + type: CableApcExtension components: - - pos: -37.5,-16.5 + - pos: -38.5,-16.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4978 - type: GasPipeStraight + type: CableApcExtension components: - - pos: -37.5,-15.5 + - pos: -37.5,-18.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4979 - type: GasPipeStraight + type: CableApcExtension components: - - pos: -37.5,-14.5 + - pos: -32.5,-16.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4980 - type: GasPipeStraight + type: CableApcExtension components: - - pos: -37.5,-13.5 + - pos: -32.5,-32.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 4981 - type: GasPipeStraight + type: Pickaxe components: - - rot: -1.5707963267948966 rad - pos: -36.5,-12.5 + - pos: -24.590942,-25.31583 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 4982 type: GasPipeBend components: @@ -57963,23 +58010,11 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 5154 - type: ConveyorBelt + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -32.5,-37.5 + - pos: -33.5,-32.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver - uid: 5155 type: Window components: @@ -57987,9 +58022,9 @@ entities: parent: 106 type: Transform - uid: 5156 - type: WallSolid + type: Window components: - - pos: -26.5,-23.5 + - pos: -31.5,-23.5 parent: 106 type: Transform - uid: 5157 @@ -58015,11 +58050,37 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 5160 - type: PlasticFlapsAirtightClear + type: AirlockGlassShuttle components: - pos: -32.5,-37.5 parent: 106 type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures - uid: 5161 type: AirlockSalvageLocked components: @@ -58039,9 +58100,9 @@ entities: parent: 106 type: Transform - uid: 5164 - type: SignCargoDock + type: CableApcExtension components: - - pos: -31.5,-23.5 + - pos: -30.5,-36.5 parent: 106 type: Transform - uid: 5165 @@ -58054,14 +58115,11 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 5166 - type: GasPipeTJunction + type: PlasticFlapsAirtightClear components: - - rot: -1.5707963267948966 rad - pos: -29.5,-34.5 + - pos: -33.5,-37.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 5167 type: GasPipeTJunction components: @@ -58133,9 +58191,9 @@ entities: parent: 106 type: Transform - uid: 5177 - type: CableApcExtension + type: Rack components: - - pos: -31.5,-35.5 + - pos: -24.5,-26.5 parent: 106 type: Transform - uid: 5178 @@ -58234,21 +58292,33 @@ entities: - uid: 5190 type: WallReinforced components: - - pos: -33.5,-35.5 + - rot: 1.5707963267948966 rad + pos: -34.5,-37.5 parent: 106 type: Transform - uid: 5191 - type: TableWood + type: CableApcExtension components: - - pos: -27.5,-28.5 + - pos: -30.5,-34.5 parent: 106 type: Transform - uid: 5192 - type: LockerSalvageSpecialistFilled + type: ConveyorBelt components: - - pos: -24.5,-25.5 + - pos: -29.5,-35.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 5193 type: AirlockSalvageGlassLocked components: @@ -58256,9 +58326,10 @@ entities: parent: 106 type: Transform - uid: 5194 - type: Catwalk + type: ReinforcedWindow components: - - pos: -24.5,-36.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-36.5 parent: 106 type: Transform - uid: 5195 @@ -58639,6 +58710,8 @@ entities: pos: -17.5,20.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65732,6 +65805,8 @@ entities: pos: 25.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -66382,6 +66457,8 @@ entities: - pos: 25.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6139 type: Table components: @@ -67059,11 +67136,14 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 6231 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -31.5,-34.5 + - rot: -1.5707963267948966 rad + pos: -30.5,-34.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 6232 type: GasPipeStraight components: @@ -67488,11 +67568,14 @@ entities: - canCollide: False type: Physics - uid: 6287 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -30.5,-34.5 + - rot: 1.5707963267948966 rad + pos: -30.5,-32.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 6288 type: FirelockEdge components: @@ -67783,18 +67866,25 @@ entities: - pos: 19.5,8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6328 type: VendingMachineWallMedical components: - pos: 18.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6329 - type: CableApcExtension + type: GasVentPump components: - - pos: -29.5,-33.5 + - rot: -1.5707963267948966 rad + pos: -26.5,-17.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 6330 type: AirlockCargoGlassLocked components: @@ -67821,18 +67911,24 @@ entities: - pos: 7.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6334 type: VendingMachineSnack components: - pos: 6.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6335 type: VendingMachineClothing components: - pos: 5.5,3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6336 type: Table components: @@ -67884,6 +67980,8 @@ entities: - pos: -6.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6344 type: MaintenanceFluffSpawner components: @@ -67976,6 +68074,8 @@ entities: - pos: -21.5,-6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6358 type: PianoInstrument components: @@ -68101,6 +68201,8 @@ entities: - pos: -11.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6376 type: VendingMachineCigs components: @@ -68109,6 +68211,8 @@ entities: - pos: -12.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6377 type: Table components: @@ -68499,6 +68603,8 @@ entities: - pos: 15.5,-6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6433 type: WallSolid components: @@ -68605,6 +68711,8 @@ entities: - pos: -64.5,-10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6450 type: Grille components: @@ -69136,13 +69244,11 @@ entities: parent: 106 type: Transform - uid: 6532 - type: GasPipeTJunction + type: CableApcExtension components: - - pos: -29.5,-32.5 + - pos: -26.5,-30.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 6533 type: GasPipeTJunction components: @@ -69171,11 +69277,23 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 6536 - type: CableApcExtension + type: ConveyorBelt components: - - pos: -29.5,-31.5 + - rot: 3.141592653589793 rad + pos: -27.5,-35.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 11875 + Forward: + - port: Left + uid: 11875 + Off: + - port: Middle + uid: 11875 + type: SignalReceiver - uid: 6537 type: CableHV components: @@ -69676,6 +69794,8 @@ entities: - pos: -25.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6620 type: WallSolid components: @@ -71682,6 +71802,8 @@ entities: pos: -12.5,20.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -71789,12 +71911,16 @@ entities: - pos: -16.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6948 type: PoweredSmallLight components: - pos: -18.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -71812,6 +71938,8 @@ entities: pos: -18.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -71981,6 +72109,8 @@ entities: - pos: -19.5,18.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 6973 type: GasPipeTJunction components: @@ -72240,6 +72370,8 @@ entities: - pos: -24.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 7011 type: Window components: @@ -72995,6 +73127,8 @@ entities: - pos: -4.5,12.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -74400,6 +74534,8 @@ entities: pos: 14.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -74417,6 +74553,8 @@ entities: pos: 28.5,10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -74441,6 +74579,8 @@ entities: pos: 17.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -75168,6 +75308,8 @@ entities: - pos: 43.5,-19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 7460 type: LockerHeadOfSecurityFilled components: @@ -76817,6 +76959,8 @@ entities: - pos: -65.5,-10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 7730 type: SpawnPointAtmos components: @@ -77399,6 +77543,8 @@ entities: pos: 18.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77863,6 +78009,8 @@ entities: - pos: -54.5,0.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 7895 type: Poweredlight components: @@ -78470,6 +78618,8 @@ entities: pos: 30.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -78974,13 +79124,11 @@ entities: parent: 106 type: Transform - uid: 8066 - type: Pickaxe + type: TableWood components: - - pos: -26.393412,-28.45634 + - pos: -27.5,-24.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 8067 type: BoxFolderYellow components: @@ -78994,13 +79142,11 @@ entities: ents: [] type: ContainerContainer - uid: 8068 - type: Pen + type: Rack components: - - pos: -28.52679,-9.459045 + - pos: -24.5,-25.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 8069 type: CableApcExtension components: @@ -79029,15 +79175,16 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 8073 - type: PlasticFlapsAirtightClear + type: SalvageMagnet components: - - pos: -32.5,-35.5 + - pos: -23.5,-36.5 parent: 106 type: Transform - uid: 8074 - type: RandomSpawner + type: WallReinforced components: - - pos: -30.5,-32.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-35.5 parent: 106 type: Transform - uid: 8075 @@ -79053,27 +79200,20 @@ entities: parent: 106 type: Transform - uid: 8077 - type: OreProcessor + type: WallReinforced components: - - pos: -27.5,-24.5 + - rot: 1.5707963267948966 rad + pos: -34.5,-36.5 parent: 106 type: Transform - - containers: - - machine_parts - - machine_board - type: Construction - - containers: - machine_board: !type:Container - ents: [] - machine_parts: !type:Container - ents: [] - type: ContainerContainer - uid: 8078 - type: LockerSalvageSpecialistFilled + type: GasPipeStraight components: - - pos: -24.5,-24.5 + - pos: -26.5,-13.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 8079 type: AirlockMaintCargoLocked components: @@ -79081,9 +79221,9 @@ entities: parent: 106 type: Transform - uid: 8080 - type: Catwalk + type: CableApcExtension components: - - pos: -25.5,-37.5 + - pos: -32.5,-34.5 parent: 106 type: Transform - uid: 8081 @@ -79100,15 +79240,15 @@ entities: parent: 106 type: Transform - uid: 8083 - type: Catwalk + type: WallSolid components: - - pos: -25.5,-36.5 + - pos: -34.5,-10.5 parent: 106 type: Transform - uid: 8084 - type: Catwalk + type: WallSolid components: - - pos: -23.5,-37.5 + - pos: -35.5,-19.5 parent: 106 type: Transform - uid: 8085 @@ -79118,11 +79258,14 @@ entities: parent: 106 type: Transform - uid: 8086 - type: RandomSpawner + type: GasPipeStraight components: - - pos: -26.5,-19.5 + - rot: -1.5707963267948966 rad + pos: -36.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8087 type: Window components: @@ -79136,11 +79279,14 @@ entities: parent: 106 type: Transform - uid: 8089 - type: ReinforcedWindow + type: GasPipeStraight components: - - pos: -30.5,-36.5 + - rot: -1.5707963267948966 rad + pos: -37.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8090 type: CableApcExtension components: @@ -79646,12 +79792,12 @@ entities: parent: 106 type: Transform - uid: 8174 - type: GasVentScrubber + type: GasVentPump components: - - pos: -27.5,-8.5 + - pos: -31.5,-10.5 parent: 106 type: Transform - - color: '#FF0000FF' + - color: '#0000FFFF' type: AtmosPipeColor - uid: 8175 type: ReagentContainerMilkSoy @@ -79752,6 +79898,8 @@ entities: - pos: -10.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 8185 type: FoodCondimentBottleHotsauce components: @@ -79765,267 +79913,331 @@ entities: - solution: food type: DrainableSolution - uid: 8186 - type: CableApcExtension + type: GasVentPump components: - - pos: -30.5,-11.5 + - pos: -30.5,-7.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8187 - type: CableApcExtension + type: Window components: - - pos: -30.5,-12.5 + - pos: -28.5,-15.5 parent: 106 type: Transform - uid: 8188 - type: CableApcExtension + type: Window components: - - pos: -30.5,-13.5 + - pos: -28.5,-16.5 parent: 106 type: Transform - uid: 8189 - type: CableApcExtension + type: Window components: - - pos: -36.5,-6.5 + - pos: -28.5,-18.5 parent: 106 type: Transform - uid: 8190 - type: CableApcExtension + type: GasVentPump components: - - pos: -35.5,-6.5 + - rot: 1.5707963267948966 rad + pos: -35.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8191 - type: CableApcExtension + type: GasVentPump components: - - pos: -34.5,-6.5 + - rot: 1.5707963267948966 rad + pos: -38.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8192 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -34.5,-7.5 + - rot: -1.5707963267948966 rad + pos: -26.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 8193 type: CableApcExtension components: - - pos: -34.5,-8.5 + - pos: -27.5,-7.5 parent: 106 type: Transform - uid: 8194 type: CableApcExtension components: - - pos: -34.5,-9.5 + - pos: -29.5,-10.5 parent: 106 type: Transform - uid: 8195 type: CableApcExtension components: - - pos: -34.5,-10.5 + - pos: -27.5,-13.5 parent: 106 type: Transform - uid: 8196 - type: CableApcExtension + type: SurveillanceCameraSupply components: - - pos: -34.5,-11.5 + - rot: -1.5707963267948966 rad + pos: -36.5,-11.5 parent: 106 type: Transform - uid: 8197 - type: CableApcExtension + type: GasPipeBend components: - - pos: -34.5,-12.5 + - rot: -1.5707963267948966 rad + pos: -30.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8198 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -34.5,-13.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-14.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8199 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -33.5,-13.5 + - pos: -30.5,-8.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8200 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -32.5,-13.5 + - rot: -1.5707963267948966 rad + pos: -27.5,-10.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 8201 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -31.5,-13.5 + - rot: 3.141592653589793 rad + pos: -30.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8202 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -29.5,-13.5 + - rot: -1.5707963267948966 rad + pos: -27.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8203 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -28.5,-13.5 + - rot: 3.141592653589793 rad + pos: -33.5,-8.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8204 - type: CableApcExtension + type: ShuttersNormal components: - - pos: -27.5,-13.5 + - pos: -26.5,-9.5 parent: 106 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: [] + type: SignalReceiver - uid: 8205 - type: CableApcExtension + type: CrateEmptySpawner components: - - pos: -27.5,-14.5 + - pos: -29.5,-6.5 parent: 106 type: Transform - uid: 8206 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -27.5,-15.5 + - rot: 1.5707963267948966 rad + pos: -34.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8207 type: CableApcExtension components: - - pos: -27.5,-16.5 + - pos: -31.5,-14.5 parent: 106 type: Transform - uid: 8208 type: CableApcExtension components: - - pos: -27.5,-17.5 + - pos: -32.5,-17.5 parent: 106 type: Transform - uid: 8209 type: CableApcExtension components: - - pos: -27.5,-18.5 + - pos: -36.5,-18.5 parent: 106 type: Transform - uid: 8210 type: CableApcExtension components: - - pos: -27.5,-19.5 + - pos: -38.5,-17.5 parent: 106 type: Transform - uid: 8211 type: CableApcExtension components: - - pos: -35.5,-13.5 + - pos: -32.5,-13.5 parent: 106 type: Transform - uid: 8212 type: CableApcExtension components: - - pos: -36.5,-13.5 + - pos: -34.5,-13.5 parent: 106 type: Transform - uid: 8213 - type: CableApcExtension + type: Paper components: - - pos: -37.5,-13.5 + - pos: -29.543007,-25.832663 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 8214 - type: CableApcExtension + type: Paper components: - - pos: -37.5,-14.5 + - pos: -64.116714,-18.35128 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 8215 type: CableApcExtension components: - - pos: -37.5,-15.5 + - pos: -32.5,-10.5 parent: 106 type: Transform - uid: 8216 type: CableApcExtension components: - - pos: -37.5,-16.5 + - pos: -33.5,-7.5 parent: 106 type: Transform - uid: 8217 type: CableApcExtension components: - - pos: -37.5,-17.5 + - pos: -30.5,-8.5 parent: 106 type: Transform - uid: 8218 - type: CableApcExtension + type: TableWood components: - - pos: -37.5,-18.5 + - pos: -29.5,-13.5 parent: 106 type: Transform - uid: 8219 - type: CableApcExtension + type: VendingMachineCargoDrobe components: - - pos: -34.5,-14.5 + - pos: -35.5,-15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 8220 type: CableApcExtension components: - - pos: -34.5,-15.5 + - pos: -30.5,-4.5 parent: 106 type: Transform - uid: 8221 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -34.5,-16.5 + - rot: 3.141592653589793 rad + pos: -27.5,-16.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8222 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -34.5,-17.5 + - rot: 3.141592653589793 rad + pos: -27.5,-15.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8223 - type: CableApcExtension + type: GasPipeTJunction components: - - pos: -34.5,-18.5 + - rot: -1.5707963267948966 rad + pos: -27.5,-14.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 8224 - type: CableApcExtension + type: TableWood components: - - pos: -34.5,-19.5 + - pos: -38.5,-13.5 parent: 106 type: Transform - uid: 8225 - type: CableApcExtension + type: DrinkBottleBeer components: - - pos: -30.5,-14.5 + - pos: -36.48752,-11.23344 parent: 106 type: Transform + - canCollide: False + type: Physics + - solution: drink + type: RefillableSolution + - solution: drink + type: DrainableSolution - uid: 8226 - type: CableApcExtension + type: Grille components: - - pos: -30.5,-15.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-35.5 parent: 106 type: Transform - uid: 8227 - type: CableApcExtension + type: Pickaxe components: - - pos: -30.5,-16.5 + - pos: -24.200317,-25.456455 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 8228 type: CableApcExtension components: - - pos: -30.5,-17.5 + - pos: -28.5,-31.5 parent: 106 type: Transform - uid: 8229 - type: CableApcExtension + type: Window components: - - pos: -30.5,-18.5 + - pos: -28.5,-13.5 parent: 106 type: Transform - uid: 8230 @@ -80077,9 +80289,9 @@ entities: parent: 106 type: Transform - uid: 8238 - type: WallReinforced + type: LockerSalvageSpecialistFilled components: - - pos: -27.5,-37.5 + - pos: -37.5,-17.5 parent: 106 type: Transform - uid: 8239 @@ -80648,16 +80860,11 @@ entities: parent: 106 type: Transform - uid: 8329 - type: DisposalPipe + type: HighSecArmoryLocked components: - - rot: 3.141592653589793 rad - pos: -26.5,-22.5 + - pos: -44.5,26.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 8330 type: Table components: @@ -80665,13 +80872,13 @@ entities: parent: 106 type: Transform - uid: 8331 - type: GasVentPump + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -31.5,-36.5 + - rot: -1.5707963267948966 rad + pos: -34.5,-20.5 parent: 106 type: Transform - - color: '#0000FFFF' + - color: '#FF0000FF' type: AtmosPipeColor - uid: 8332 type: CableApcExtension @@ -81932,6 +82139,8 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/cigs.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 8538 type: Firelock components: @@ -82871,13 +83080,19 @@ entities: parent: 106 type: Transform - uid: 8692 - type: filingCabinetTall + type: OreProcessor components: - - pos: -34.5,-6.5 + - pos: -27.5,-29.5 parent: 106 type: Transform - containers: - storagebase: !type:Container + - machine_parts + - machine_board + type: Construction + - containers: + machine_board: !type:Container + ents: [] + machine_parts: !type:Container ents: [] type: ContainerContainer - uid: 8693 @@ -84638,6 +84853,8 @@ entities: pos: 24.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -85131,61 +85348,61 @@ entities: - uid: 9045 type: TwoWayLever components: - - pos: -27.5,-14.5 + - pos: -31.5,-34.5 parent: 106 type: Transform - outputs: Left: - port: Forward - uid: 3561 + uid: 1519 - port: Forward - uid: 3560 + uid: 9713 - port: Forward - uid: 3559 + uid: 1453 - port: Forward - uid: 3553 + uid: 2628 - port: Forward - uid: 3554 + uid: 12749 - port: Forward - uid: 3555 + uid: 3544 - port: Forward - uid: 3557 + uid: 5192 - port: Forward - uid: 3556 + uid: 10298 Right: - port: Reverse - uid: 3561 + uid: 1519 - port: Reverse - uid: 3560 + uid: 9713 - port: Reverse - uid: 3559 + uid: 1453 - port: Reverse - uid: 3553 + uid: 2628 - port: Reverse - uid: 3554 + uid: 12749 - port: Reverse - uid: 3555 + uid: 3544 - port: Reverse - uid: 3557 + uid: 5192 - port: Reverse - uid: 3556 + uid: 10298 Middle: - port: Off - uid: 3561 + uid: 1519 - port: Off - uid: 3560 + uid: 9713 - port: Off - uid: 3559 + uid: 1453 - port: Off - uid: 3553 + uid: 2628 - port: Off - uid: 3554 + uid: 12749 - port: Off - uid: 3555 + uid: 3544 - port: Off - uid: 3557 + uid: 5192 - port: Off - uid: 3556 + uid: 10298 type: SignalTransmitter - uid: 9046 type: AirlockMaintLocked @@ -85246,6 +85463,8 @@ entities: - pos: 30.5,18.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -85396,6 +85615,8 @@ entities: - pos: -21.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -85516,9 +85737,9 @@ entities: parent: 106 type: Transform - uid: 9091 - type: HighSecDoor + type: CrateEmptySpawner components: - - pos: -44.5,26.5 + - pos: -33.5,-30.5 parent: 106 type: Transform - uid: 9092 @@ -85796,6 +86017,8 @@ entities: - pos: 30.5,18.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86567,6 +86790,8 @@ entities: pos: -10.5,10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86814,6 +87039,8 @@ entities: pos: 38.5,-4.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86900,6 +87127,8 @@ entities: pos: 15.5,-14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -87037,6 +87266,8 @@ entities: - pos: 38.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 9318 type: BoxFolderWhite components: @@ -88348,6 +88579,8 @@ entities: - pos: -55.5,19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88365,6 +88598,8 @@ entities: pos: -53.5,23.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88382,6 +88617,8 @@ entities: pos: -49.5,23.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88437,6 +88674,8 @@ entities: pos: -71.5,-12.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88454,6 +88693,8 @@ entities: pos: -71.5,-2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88521,6 +88762,8 @@ entities: - pos: -67.5,-0.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88718,45 +88961,32 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 9508 - type: GasPipeTJunction + type: AirlockMaintCargoLocked components: - - pos: -26.5,-20.5 + - pos: -33.5,-5.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 9509 - type: DisposalPipe + type: Grille components: - - rot: 1.5707963267948966 rad - pos: -30.5,-20.5 + - pos: -28.5,-18.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 9510 - type: DisposalPipe + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -28.5,-20.5 + - pos: -33.5,-19.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 9511 - type: DisposalBend + type: GasPipeStraight components: - - pos: -26.5,-20.5 + - rot: 1.5707963267948966 rad + pos: -28.5,-16.5 parent: 106 type: Transform - - containers: - DisposalBend: !type:Container - ents: [] - type: ContainerContainer + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 9512 type: PoweredlightExterior components: @@ -88859,6 +89089,8 @@ entities: - pos: -40.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88875,6 +89107,8 @@ entities: - pos: -37.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88891,6 +89125,8 @@ entities: - pos: -34.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88907,6 +89143,8 @@ entities: - pos: -31.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89029,6 +89267,8 @@ entities: - pos: -35.5,34.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 9541 type: Carpet components: @@ -89099,6 +89339,8 @@ entities: pos: -10.5,4.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89205,6 +89447,8 @@ entities: - pos: -38.5,4.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89340,6 +89584,8 @@ entities: pos: -48.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89357,6 +89603,8 @@ entities: pos: -43.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89374,6 +89622,8 @@ entities: pos: -45.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89390,6 +89640,8 @@ entities: - pos: -45.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89624,19 +89876,17 @@ entities: parent: 106 type: Transform - uid: 9595 - type: Poweredlight + type: DrinkBottleBeer components: - - rot: 1.5707963267948966 rad - pos: -38.5,-14.5 + - pos: -36.409393,-11.592815 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver + - canCollide: False + type: Physics + - solution: drink + type: RefillableSolution + - solution: drink + type: DrainableSolution - uid: 9596 type: Poweredlight components: @@ -89680,58 +89930,44 @@ entities: Toggle: [] type: SignalReceiver - uid: 9599 - type: Poweredlight + type: BookDetective components: - - pos: -32.5,-11.5 + - pos: -24.96584,30.670073 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver + - canCollide: False + type: Physics - uid: 9600 - type: Grille + type: CableApcExtension components: - - pos: -30.5,-10.5 + - pos: -27.5,-17.5 parent: 106 type: Transform - uid: 9601 - type: Poweredlight + type: GasPipeStraight components: - - rot: -1.5707963267948966 rad - pos: -26.5,-13.5 + - pos: -27.5,-10.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 9602 - type: Poweredlight + type: Window components: - - pos: -31.5,-17.5 + - pos: -29.5,-12.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 9603 - type: Grille + type: DisposalJunction components: - rot: -1.5707963267948966 rad - pos: -32.5,-18.5 + pos: -32.5,-21.5 parent: 106 type: Transform + - containers: + DisposalJunction: !type:Container + ents: [] + type: ContainerContainer - uid: 9604 type: Poweredlight components: @@ -89747,49 +89983,26 @@ entities: Toggle: [] type: SignalReceiver - uid: 9605 - type: Poweredlight + type: RandomSpawner components: - - rot: 3.141592653589793 rad - pos: -32.5,-15.5 + - pos: -27.5,-30.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 9606 - type: Poweredlight + type: Paper components: - - rot: 3.141592653589793 rad - pos: -28.5,-15.5 + - pos: -29.562717,-13.361478 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver + - canCollide: False + type: Physics - uid: 9607 - type: PoweredSmallLight + type: Grille components: - - pos: -34.5,-6.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-37.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 9608 type: FirelockEdge components: @@ -89808,6 +90021,8 @@ entities: pos: -40.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89899,6 +90114,8 @@ entities: pos: 4.5,-25.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -89915,6 +90132,8 @@ entities: - pos: 5.5,-24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90009,6 +90228,8 @@ entities: - pos: 9.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90025,6 +90246,8 @@ entities: - pos: 11.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90052,6 +90275,8 @@ entities: pos: -7.5,24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90447,6 +90672,8 @@ entities: - pos: -41.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 9690 type: WindoorArmoryLocked components: @@ -90521,6 +90748,8 @@ entities: - pos: -10.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90537,6 +90766,8 @@ entities: - pos: -8.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90554,6 +90785,8 @@ entities: pos: -8.5,-5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90571,6 +90804,8 @@ entities: pos: -8.5,-7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90588,6 +90823,8 @@ entities: pos: -8.5,-9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90605,6 +90842,8 @@ entities: pos: -10.5,-9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90710,16 +90949,14 @@ entities: Toggle: [] type: SignalReceiver - uid: 9711 - type: DisposalPipe + type: GasPipeStraight components: - - rot: 1.5707963267948966 rad - pos: -32.5,-21.5 + - rot: 3.141592653589793 rad + pos: -30.5,-33.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 9712 type: DisposalPipe components: @@ -90732,17 +90969,22 @@ entities: ents: [] type: ContainerContainer - uid: 9713 - type: Poweredlight + type: ConveyorBelt components: - - pos: -36.5,-20.5 + - rot: 3.141592653589793 rad + pos: -33.5,-35.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - inputs: - On: [] - Off: [] - Toggle: [] + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 type: SignalReceiver - uid: 9714 type: Bookshelf @@ -90805,6 +91047,8 @@ entities: - pos: -10.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 9723 type: Table components: @@ -90827,6 +91071,8 @@ entities: pos: -7.5,-16.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -90844,6 +91090,8 @@ entities: pos: 2.5,-15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91216,6 +91464,8 @@ entities: pos: -69.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91233,6 +91483,8 @@ entities: pos: -69.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91250,6 +91502,8 @@ entities: pos: -69.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91267,6 +91521,8 @@ entities: pos: -69.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91284,6 +91540,8 @@ entities: pos: -69.5,9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91301,6 +91559,8 @@ entities: pos: -69.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91318,6 +91578,8 @@ entities: pos: -58.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91449,6 +91711,8 @@ entities: pos: 1.5,-4.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91466,6 +91730,8 @@ entities: pos: 4.5,-5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91528,6 +91794,8 @@ entities: - pos: 26.5,-24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91544,6 +91812,8 @@ entities: - pos: 26.5,-27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91560,6 +91830,8 @@ entities: - pos: 26.5,-30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91577,6 +91849,8 @@ entities: pos: 35.5,-31.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91943,6 +92217,8 @@ entities: pos: 6.5,-39.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91959,6 +92235,8 @@ entities: - pos: 2.5,-38.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -91976,6 +92254,8 @@ entities: pos: 2.5,-40.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92252,6 +92532,8 @@ entities: pos: 43.5,-26.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92269,6 +92551,8 @@ entities: pos: 43.5,-25.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92378,19 +92662,11 @@ entities: parent: 106 type: Transform - uid: 9876 - type: Poweredlight + type: TableWood components: - - rot: 1.5707963267948966 rad - pos: -35.5,-18.5 + - pos: -26.5,-24.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 9877 type: Poweredlight components: @@ -92575,6 +92851,8 @@ entities: pos: 6.5,29.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92592,6 +92870,8 @@ entities: pos: 9.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92609,6 +92889,8 @@ entities: pos: 11.5,24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92976,6 +93258,8 @@ entities: - pos: -39.5,-24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -92993,6 +93277,8 @@ entities: pos: -35.5,-29.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93009,6 +93295,8 @@ entities: - pos: -39.5,-33.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93032,6 +93320,8 @@ entities: pos: -48.5,-17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93049,6 +93339,8 @@ entities: pos: -48.5,-13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93066,6 +93358,8 @@ entities: pos: -48.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93082,6 +93376,8 @@ entities: - pos: -48.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93099,6 +93395,8 @@ entities: pos: -49.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93116,6 +93414,8 @@ entities: pos: -54.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93133,6 +93433,8 @@ entities: pos: -57.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93149,6 +93451,8 @@ entities: - pos: -56.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93165,6 +93469,8 @@ entities: - pos: -48.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93182,6 +93488,8 @@ entities: pos: -50.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93198,6 +93506,8 @@ entities: - pos: -50.5,19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93215,6 +93525,8 @@ entities: pos: -47.5,22.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93231,6 +93543,8 @@ entities: - pos: -47.5,25.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93279,6 +93593,8 @@ entities: pos: -41.5,8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93296,6 +93612,8 @@ entities: pos: -40.5,5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93312,6 +93630,8 @@ entities: - pos: -33.5,8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93371,6 +93691,8 @@ entities: - pos: -10.5,24.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93443,6 +93765,8 @@ entities: pos: -3.5,-25.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93460,6 +93784,8 @@ entities: pos: -3.5,-30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93476,6 +93802,8 @@ entities: - pos: -8.5,-30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93493,6 +93821,8 @@ entities: pos: -9.5,-32.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93510,6 +93840,8 @@ entities: pos: -6.5,-36.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93532,6 +93864,8 @@ entities: - pos: -11.5,-38.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93548,6 +93882,8 @@ entities: - pos: -18.5,-38.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93581,6 +93917,8 @@ entities: pos: -22.5,-30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93608,6 +93946,8 @@ entities: pos: -21.5,-25.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93625,6 +93965,8 @@ entities: pos: -0.5,-5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93641,6 +93983,8 @@ entities: - pos: 4.5,-7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93658,6 +94002,8 @@ entities: pos: -6.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93716,6 +94062,8 @@ entities: pos: 41.5,-26.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93750,6 +94098,8 @@ entities: pos: 48.5,-35.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93766,6 +94116,8 @@ entities: - pos: 51.5,-35.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93783,6 +94135,8 @@ entities: pos: 44.5,-35.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93811,6 +94165,8 @@ entities: - pos: 37.5,-35.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93828,6 +94184,8 @@ entities: pos: 31.5,-35.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93851,6 +94209,8 @@ entities: pos: 23.5,-32.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93868,6 +94228,8 @@ entities: pos: 23.5,-26.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93902,6 +94264,8 @@ entities: - pos: 3.5,20.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93924,6 +94288,8 @@ entities: - pos: 10.5,10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93941,6 +94307,8 @@ entities: pos: 6.5,15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93958,6 +94326,8 @@ entities: pos: 8.5,17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -93975,6 +94345,8 @@ entities: pos: 8.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94010,6 +94382,8 @@ entities: pos: 33.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94026,6 +94400,8 @@ entities: - pos: 40.5,2.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94042,6 +94418,8 @@ entities: - pos: 39.5,-0.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94065,6 +94443,8 @@ entities: pos: 40.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94082,6 +94462,8 @@ entities: pos: 40.5,-15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94099,6 +94481,8 @@ entities: pos: 41.5,-19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94122,6 +94506,8 @@ entities: pos: 37.5,-31.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94780,6 +95166,8 @@ entities: - pos: -22.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94796,6 +95184,8 @@ entities: - pos: -31.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94813,6 +95203,8 @@ entities: pos: -37.5,-8.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -94830,6 +95222,8 @@ entities: pos: -41.5,-16.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -95037,82 +95431,22 @@ entities: - canCollide: False type: Physics - uid: 10143 - type: TwoWayLever + type: FireAxeCabinet components: - - pos: -27.5,-34.5 + - rot: 1.5707963267948966 rad + pos: -64.5,2.5 parent: 106 type: Transform - - outputs: - Left: - - port: Forward - uid: 1451 - - port: Forward - uid: 1448 - - port: Forward - uid: 10144 - - port: Forward - uid: 12891 - - port: Forward - uid: 1450 - - port: Forward - uid: 1449 - - port: Forward - uid: 2870 - - port: Forward - uid: 5154 - Right: - - port: Reverse - uid: 1451 - - port: Reverse - uid: 1448 - - port: Reverse - uid: 10144 - - port: Reverse - uid: 12891 - - port: Reverse - uid: 1450 - - port: Reverse - uid: 1449 - - port: Reverse - uid: 2870 - - port: Reverse - uid: 5154 - Middle: - - port: Off - uid: 1451 - - port: Off - uid: 1448 - - port: Off - uid: 10144 - - port: Off - uid: 12891 - - port: Off - uid: 1450 - - port: Off - uid: 1449 - - port: Off - uid: 2870 - - port: Off - uid: 5154 - type: SignalTransmitter + - containers: + ItemCabinet: !type:ContainerSlot {} + type: ContainerContainer - uid: 10144 - type: ConveyorBelt + type: Grille components: - rot: 3.141592653589793 rad - pos: -28.5,-35.5 + pos: -26.5,-23.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver - uid: 10145 type: Catwalk components: @@ -95126,22 +95460,18 @@ entities: parent: 106 type: Transform - uid: 10147 - type: CableApcExtension + type: ReinforcedWindow components: - - pos: -29.5,-36.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-35.5 parent: 106 type: Transform - uid: 10148 - type: DisposalPipe + type: AirlockExternalGlass components: - - rot: 3.141592653589793 rad - pos: -26.5,-23.5 + - pos: -30.5,-35.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 10149 type: Catwalk components: @@ -95203,13 +95533,11 @@ entities: parent: 106 type: Transform - uid: 10159 - type: Pickaxe + type: WallSolid components: - - pos: -26.877787,-28.346966 + - pos: -38.5,-14.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 10160 type: Catwalk components: @@ -95489,13 +95817,11 @@ entities: parent: 106 type: Transform - uid: 10206 - type: Pickaxe + type: CableApcExtension components: - - pos: -26.659037,-28.346966 + - pos: -28.5,-32.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 10207 type: WallSolid components: @@ -95537,6 +95863,8 @@ entities: - pos: 4.5,-15.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -95554,6 +95882,8 @@ entities: pos: 6.5,-18.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -95571,9 +95901,9 @@ entities: parent: 106 type: Transform - uid: 10215 - type: AirCanister + type: CableApcExtension components: - - pos: -63.5,2.5 + - pos: -28.5,-34.5 parent: 106 type: Transform - uid: 10216 @@ -95714,6 +96044,8 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/chapel.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 10232 type: AirlockTheatreLocked components: @@ -96187,16 +96519,22 @@ entities: parent: 106 type: Transform - uid: 10298 - type: DisposalTrunk + type: ConveyorBelt components: - - rot: 3.141592653589793 rad - pos: -26.5,-24.5 + - pos: -29.5,-34.5 parent: 106 type: Transform - - containers: - DisposalEntry: !type:Container - ents: [] - type: ContainerContainer + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 10299 type: FigureSpawner components: @@ -96506,6 +96844,8 @@ entities: - pos: -44.5,22.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -96674,6 +97014,8 @@ entities: - pos: -37.5,-30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10362 type: PosterContrabandVoteWeh components: @@ -96769,6 +97111,8 @@ entities: - pos: 16.5,-28.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10375 type: VendingMachineCoffee components: @@ -96777,6 +97121,8 @@ entities: - pos: 15.5,-28.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10376 type: MaintenanceFluffSpawner components: @@ -96815,12 +97161,16 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/cigs.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 10382 type: VendingMachineCola components: - pos: -46.5,-11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10383 type: Grille components: @@ -96960,6 +97310,8 @@ entities: - pos: 36.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10404 type: StoolBar components: @@ -97106,15 +97458,16 @@ entities: parent: 106 type: Transform - uid: 10425 - type: CableApcExtension + type: WallSolid components: - - pos: -29.5,-32.5 + - pos: -36.5,-14.5 parent: 106 type: Transform - uid: 10426 - type: CableApcExtension + type: Grille components: - - pos: -29.5,-35.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-36.5 parent: 106 type: Transform - uid: 10427 @@ -97199,11 +97552,23 @@ entities: parent: 106 type: Transform - uid: 10439 - type: WaterTankFull + type: ConveyorBelt components: - - pos: -40.5,-15.5 + - rot: 3.141592653589793 rad + pos: -27.5,-36.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 11875 + Forward: + - port: Left + uid: 11875 + Off: + - port: Middle + uid: 11875 + type: SignalReceiver - uid: 10440 type: WaterTankFull components: @@ -97692,9 +98057,9 @@ entities: - canCollide: False type: Physics - uid: 10498 - type: CableApcExtension + type: WallSolid components: - - pos: -31.5,-36.5 + - pos: -39.5,-11.5 parent: 106 type: Transform - uid: 10499 @@ -97784,9 +98149,9 @@ entities: - canCollide: False type: Physics - uid: 10507 - type: CableApcExtension + type: WallSolid components: - - pos: -31.5,-33.5 + - pos: -39.5,-14.5 parent: 106 type: Transform - uid: 10508 @@ -97942,6 +98307,8 @@ entities: - pos: -31.5,5.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10527 type: ClosetL3JanitorFilled components: @@ -98108,6 +98475,8 @@ entities: - pos: 12.5,-31.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10546 type: Syringe components: @@ -98166,14 +98535,13 @@ entities: parent: 106 type: Transform - uid: 10553 - type: ComputerShuttleCargo + type: DisposalPipe components: - - rot: 3.141592653589793 rad - pos: -30.5,-34.5 + - pos: -32.5,-19.5 parent: 106 type: Transform - containers: - board: !type:Container + DisposalTransit: !type:Container ents: [] type: ContainerContainer - uid: 10554 @@ -98571,9 +98939,9 @@ entities: - canCollide: False type: Physics - uid: 10612 - type: Grille + type: SpawnPointCargoTechnician components: - - pos: -26.5,-10.5 + - pos: -32.5,-16.5 parent: 106 type: Transform - uid: 10613 @@ -98846,9 +99214,9 @@ entities: ents: [] type: ContainerContainer - uid: 10645 - type: WallReinforced + type: WallSolid components: - - pos: -27.5,-36.5 + - pos: -37.5,-11.5 parent: 106 type: Transform - uid: 10646 @@ -99179,9 +99547,9 @@ entities: parent: 106 type: Transform - uid: 10689 - type: RandomSpawner + type: WindoorSecureSalvageLocked components: - - pos: -27.5,-33.5 + - pos: -27.5,-28.5 parent: 106 type: Transform - uid: 10690 @@ -100765,27 +101133,19 @@ entities: ents: [] type: ContainerContainer - uid: 10886 - type: DisposalPipe + type: HandheldGPSBasic components: - - rot: 1.5707963267948966 rad - pos: -37.5,-10.5 + - pos: -27.680069,-24.435385 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer + - canCollide: False + type: Physics - uid: 10887 - type: DisposalPipe + type: PlasticFlapsAirtightClear components: - - rot: 1.5707963267948966 rad - pos: -38.5,-10.5 + - pos: -29.5,-37.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 10888 type: DisposalPipe components: @@ -100842,24 +101202,23 @@ entities: ents: [] type: ContainerContainer - uid: 10893 - type: DisposalTrunk + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -36.5,-11.5 + - pos: -30.5,-35.5 parent: 106 type: Transform - - containers: - DisposalEntry: !type:Container - ents: [] - type: ContainerContainer + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 10894 - type: DisposalBend + type: MedkitFilled components: - - pos: -36.5,-10.5 + - pos: -26.371939,-24.404135 parent: 106 type: Transform + - canCollide: False + type: Physics - containers: - DisposalBend: !type:Container + storagebase: !type:Container ents: [] type: ContainerContainer - uid: 10895 @@ -101900,6 +102259,8 @@ entities: - pos: -24.5,6.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 10994 type: AirlockGlass components: @@ -104778,6 +105139,8 @@ entities: - pos: 19.5,-16.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -104824,6 +105187,8 @@ entities: pos: 30.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -105506,6 +105871,8 @@ entities: - pos: 46.5,-21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 11378 type: ClosetEmergencyFilledRandom components: @@ -105532,9 +105899,9 @@ entities: parent: 106 type: Transform - uid: 11382 - type: ClosetMaintenanceFilledRandom + type: CableApcExtension components: - - pos: -40.5,-14.5 + - pos: -30.5,-5.5 parent: 106 type: Transform - uid: 11383 @@ -105587,9 +105954,9 @@ entities: parent: 106 type: Transform - uid: 11390 - type: WallSolid + type: TableWood components: - - pos: -27.5,-29.5 + - pos: -30.5,-17.5 parent: 106 type: Transform - uid: 11391 @@ -105631,13 +105998,11 @@ entities: - canCollide: False type: Physics - uid: 11396 - type: HandheldGPSBasic + type: TableWood components: - - pos: -27.272053,-28.386719 + - pos: -30.5,-13.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 11397 type: Firelock components: @@ -105706,16 +106071,11 @@ entities: parent: 106 type: Transform - uid: 11406 - type: DisposalPipe + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -32.5,-20.5 + - pos: -30.5,-9.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11407 type: TableWood components: @@ -105845,13 +106205,11 @@ entities: parent: 106 type: Transform - uid: 11422 - type: HandheldGPSBasic + type: CableApcExtension components: - - pos: -27.443928,-28.542969 + - pos: -33.5,-8.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 11423 type: AirlockEngineeringGlassLocked components: @@ -105921,13 +106279,11 @@ entities: ents: [] type: ContainerContainer - uid: 11433 - type: HandheldGPSBasic + type: CableApcExtension components: - - pos: -27.662678,-28.386719 + - pos: -31.5,-10.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 11434 type: ClothingHeadHatCone components: @@ -106196,9 +106552,9 @@ entities: parent: 106 type: Transform - uid: 11471 - type: WallReinforced + type: CableApcExtension components: - - pos: -33.5,-36.5 + - pos: -28.5,-10.5 parent: 106 type: Transform - uid: 11472 @@ -106323,22 +106679,11 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 11486 - type: PoweredSmallLight + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -28.5,-36.5 + - pos: -27.5,-8.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 11487 type: computerBodyScanner components: @@ -106406,26 +106751,17 @@ entities: parent: 106 type: Transform - uid: 11495 - type: DisposalPipe + type: MaintenanceToolSpawner components: - - rot: 1.5707963267948966 rad - pos: -33.5,-20.5 + - pos: -27.5,-6.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11496 - type: DisposalPipe + type: MaintenanceToolSpawner components: - - pos: -34.5,-19.5 + - pos: -35.5,-7.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11497 type: CableHV components: @@ -106485,35 +106821,24 @@ entities: parent: 106 type: Transform - uid: 11506 - type: DisposalPipe + type: SurveillanceCameraSupply components: - - pos: -34.5,-18.5 + - rot: -1.5707963267948966 rad + pos: -27.5,-27.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11507 - type: DisposalPipe + type: Window components: - - pos: -34.5,-17.5 + - pos: -32.5,-12.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11508 - type: DisposalPipe + type: Grille components: - - pos: -34.5,-16.5 + - pos: -28.5,-17.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11509 type: CableApcExtension components: @@ -106521,43 +106846,35 @@ entities: parent: 106 type: Transform - uid: 11510 - type: DisposalPipe + type: Grille components: - - pos: -34.5,-15.5 + - pos: -33.5,-12.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11511 - type: DisposalPipe + type: WallSolid components: - - pos: -34.5,-14.5 + - pos: -34.5,-19.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11512 - type: DisposalPipe + type: GasVentPump components: - - pos: -34.5,-13.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-15.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 11513 - type: DisposalPipe + type: ComputerCargoOrders components: - - pos: -34.5,-12.5 + - rot: -1.5707963267948966 rad + pos: -31.5,-24.5 parent: 106 type: Transform - containers: - DisposalTransit: !type:Container + board: !type:Container ents: [] type: ContainerContainer - uid: 11514 @@ -107033,6 +107350,8 @@ entities: - pos: 37.5,-41.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -107158,17 +107477,18 @@ entities: - canCollide: False type: Physics - uid: 11585 - type: Window + type: GasPipeStraight components: - rot: -1.5707963267948966 rad - pos: -28.5,-18.5 + pos: -34.5,-18.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 11586 - type: Window + type: Table components: - - rot: -1.5707963267948966 rad - pos: -28.5,-17.5 + - pos: -29.5,-25.5 parent: 106 type: Transform - uid: 11587 @@ -107178,10 +107498,9 @@ entities: parent: 106 type: Transform - uid: 11588 - type: Window + type: WallSolid components: - - rot: -1.5707963267948966 rad - pos: -31.5,-19.5 + - pos: -28.5,-9.5 parent: 106 type: Transform - uid: 11589 @@ -107197,16 +107516,11 @@ entities: parent: 106 type: Transform - uid: 11591 - type: DisposalPipe + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -33.5,-11.5 + - pos: -24.5,-36.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11592 type: ClosetMaintenanceFilledRandom components: @@ -107331,16 +107645,11 @@ entities: - canCollide: False type: Physics - uid: 11609 - type: DisposalPipe + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -32.5,-11.5 + - pos: -25.5,-35.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11610 type: ClosetFireFilled components: @@ -107371,27 +107680,23 @@ entities: - color: '#0000FFFF' type: AtmosPipeColor - uid: 11614 - type: DisposalPipe + type: DrinkBottleBeer components: - - rot: -1.5707963267948966 rad - pos: -31.5,-11.5 + - pos: -36.76877,-11.405315 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer + - canCollide: False + type: Physics + - solution: drink + type: RefillableSolution + - solution: drink + type: DrainableSolution - uid: 11615 - type: DisposalPipe + type: CableApcExtension components: - - rot: -1.5707963267948966 rad - pos: -30.5,-11.5 + - pos: -30.5,-14.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 11616 type: CableHV components: @@ -107570,6 +107875,8 @@ entities: - pos: 8.5,14.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 11644 type: Rack components: @@ -107595,27 +107902,20 @@ entities: ents: [] type: ContainerContainer - uid: 11647 - type: DisposalBend + type: GasPipeStraight components: - - rot: 1.5707963267948966 rad - pos: -34.5,-11.5 + - pos: -30.5,-9.5 parent: 106 type: Transform - - containers: - DisposalBend: !type:Container - ents: [] - type: ContainerContainer + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 11648 - type: DisposalBend + type: SurveillanceCameraSupply components: - - rot: 3.141592653589793 rad - pos: -34.5,-20.5 + - rot: -1.5707963267948966 rad + pos: -33.5,-26.5 parent: 106 type: Transform - - containers: - DisposalBend: !type:Container - ents: [] - type: ContainerContainer - uid: 11649 type: CableApcExtension components: @@ -107756,12 +108056,13 @@ entities: - canCollide: False type: Physics - uid: 11666 - type: Window + type: Paper components: - - rot: -1.5707963267948966 rad - pos: -29.5,-19.5 + - pos: -52.475704,6.4831743 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 11667 type: ClothingHandsGlovesBoxingRed components: @@ -108419,9 +108720,9 @@ entities: ents: [] type: ContainerContainer - uid: 11774 - type: Table + type: WallSolid components: - - pos: -29.5,-28.5 + - pos: -32.5,-19.5 parent: 106 type: Transform - uid: 11775 @@ -108513,6 +108814,8 @@ entities: pos: 38.5,-38.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -108560,16 +108863,11 @@ entities: parent: 106 type: Transform - uid: 11789 - type: DisposalTrunk + type: AirlockSalvageGlassLocked components: - - rot: -1.5707963267948966 rad - pos: -29.5,-11.5 + - pos: -36.5,-18.5 parent: 106 type: Transform - - containers: - DisposalEntry: !type:Container - ents: [] - type: ContainerContainer - uid: 11790 type: GasPipeStraight components: @@ -108637,6 +108935,8 @@ entities: - pos: 13.5,18.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 11799 type: Table components: @@ -108692,9 +108992,9 @@ entities: parent: 106 type: Transform - uid: 11807 - type: Catwalk + type: AirlockQuartermasterLocked components: - - pos: -26.5,-37.5 + - pos: -34.5,-13.5 parent: 106 type: Transform - uid: 11808 @@ -108888,9 +109188,9 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 11832 - type: Catwalk + type: WallSolid components: - - pos: -23.5,-36.5 + - pos: -38.5,-11.5 parent: 106 type: Transform - uid: 11833 @@ -109190,29 +109490,71 @@ entities: parent: 106 type: Transform - uid: 11872 - type: SpawnPointCargoTechnician + type: Pickaxe components: - - pos: -30.5,-18.5 + - pos: -24.623468,-26.34708 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 11873 - type: SpawnPointCargoTechnician + type: BoxFolderGrey components: - - pos: -35.5,-13.5 + - pos: -52.27258,5.6394243 parent: 106 type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 11874 - type: SpawnPointCargoTechnician + type: ShuttersNormal components: - - pos: -28.5,-12.5 + - pos: -27.5,-9.5 parent: 106 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: [] + type: SignalReceiver - uid: 11875 - type: SpawnPointCargoTechnician + type: TwoWayLever components: - - pos: -31.5,-15.5 + - pos: -26.5,-36.5 parent: 106 type: Transform + - outputs: + Left: + - port: Forward + uid: 10439 + - port: Forward + uid: 6536 + - port: Forward + uid: 1507 + - port: Forward + uid: 1506 + Right: + - port: Reverse + uid: 10439 + - port: Reverse + uid: 6536 + - port: Reverse + uid: 1507 + - port: Reverse + uid: 1506 + Middle: + - port: Off + uid: 10439 + - port: Off + uid: 6536 + - port: Off + uid: 1507 + - port: Off + uid: 1506 + type: SignalTransmitter - uid: 11876 type: SpawnPointChaplain components: @@ -109408,11 +109750,16 @@ entities: parent: 106 type: Transform - uid: 11906 - type: SpawnPointQuartermaster + type: DisposalPipe components: - - pos: -38.5,-18.5 + - rot: 3.141592653589793 rad + pos: -36.5,-11.5 parent: 106 type: Transform + - containers: + DisposalTransit: !type:Container + ents: [] + type: ContainerContainer - uid: 11907 type: Chair components: @@ -109531,9 +109878,9 @@ entities: parent: 106 type: Transform - uid: 11923 - type: Window + type: WallSolid components: - - pos: -30.5,-10.5 + - pos: -31.5,-8.5 parent: 106 type: Transform - uid: 11924 @@ -109671,25 +110018,30 @@ entities: Toggle: [] type: SignalReceiver - uid: 11943 - type: ToolboxMechanicalFilled + type: LockerDetectiveFilled components: - - pos: -38.471992,-13.512535 + - pos: -23.5,30.5 parent: 106 type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer - uid: 11944 - type: Crowbar + type: PoweredSmallLight components: - - pos: -38.5,-15.5 + - rot: 1.5707963267948966 rad + pos: -33.5,-36.5 parent: 106 type: Transform - - canCollide: False - type: Physics + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 11945 type: MouseTimedSpawner components: @@ -109934,6 +110286,8 @@ entities: - pos: 39.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -109957,6 +110311,8 @@ entities: pos: 41.5,7.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -109980,6 +110336,8 @@ entities: pos: 39.5,4.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -110712,9 +111070,10 @@ entities: parent: 106 type: Transform - uid: 12092 - type: LockerWeldingSuppliesFilled + type: Window components: - - pos: -40.5,-13.5 + - rot: 3.141592653589793 rad + pos: -26.5,-23.5 parent: 106 type: Transform - uid: 12093 @@ -111021,16 +111380,13 @@ entities: parent: 106 type: Transform - uid: 12134 - type: DisposalPipe + type: HandheldGPSBasic components: - - rot: 3.141592653589793 rad - pos: -26.5,-21.5 + - pos: -27.289444,-24.435385 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer + - canCollide: False + type: Physics - uid: 12135 type: SpawnMobMouse components: @@ -111113,9 +111469,9 @@ entities: parent: 106 type: Transform - uid: 12147 - type: SpawnMobRaccoonMorticia + type: AirlockExternalGlass components: - - pos: -39.5,-18.5 + - pos: -32.5,-35.5 parent: 106 type: Transform - uid: 12148 @@ -111197,11 +111553,16 @@ entities: parent: 106 type: Transform - uid: 12161 - type: RandomSpawner + type: ShuttersNormal components: - - pos: -27.5,-17.5 + - pos: -33.5,-9.5 parent: 106 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: [] + type: SignalReceiver - uid: 12162 type: MedkitBruteFilled components: @@ -111355,6 +111716,8 @@ entities: - pos: -46.5,-10.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12181 type: Railing components: @@ -111557,26 +111920,23 @@ entities: parent: 106 type: Transform - uid: 12212 - type: DisposalPipe + type: CableApcExtension components: - - rot: 1.5707963267948966 rad - pos: -29.5,-20.5 + - pos: -30.5,-33.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 12213 - type: RandomPosterContraband + type: GasPipeStraight components: - - pos: -36.5,-8.5 + - pos: -35.5,-15.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12214 - type: RandomPosterContraband + type: CableApcExtension components: - - pos: -29.5,-5.5 + - pos: -27.5,-14.5 parent: 106 type: Transform - uid: 12215 @@ -111633,6 +111993,8 @@ entities: - pos: -37.5,29.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12223 type: WallReinforced components: @@ -111694,6 +112056,8 @@ entities: - pos: -30.5,11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12231 type: BoxFolderBlack components: @@ -111719,15 +112083,11 @@ entities: parent: 106 type: Transform - uid: 12234 - type: filingCabinet + type: WallSolid components: - - pos: -23.5,30.5 + - pos: -34.5,-14.5 parent: 106 type: Transform - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer - uid: 12235 type: Table components: @@ -111807,26 +112167,17 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 12246 - type: DisposalPipe + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -27.5,-20.5 + - pos: -28.5,-7.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 12247 - type: DisposalUnit + type: WallSolid components: - - pos: -26.5,-24.5 + - pos: -31.5,-5.5 parent: 106 type: Transform - - containers: - DisposalUnit: !type:Container - ents: [] - type: ContainerContainer - uid: 12248 type: CableApcExtension components: @@ -112868,6 +113219,8 @@ entities: - pos: -23.5,27.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12410 type: SignSomethingOld2 components: @@ -113101,16 +113454,11 @@ entities: - canCollide: False type: Physics - uid: 12437 - type: DisposalPipe + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -31.5,-20.5 + - pos: -36.5,-8.5 parent: 106 type: Transform - - containers: - DisposalTransit: !type:Container - ents: [] - type: ContainerContainer - uid: 12438 type: DisposalPipe components: @@ -113370,13 +113718,11 @@ entities: - canCollide: False type: Physics - uid: 12464 - type: GasPipeStraight + type: WallSolid components: - - pos: -29.5,-35.5 + - pos: -37.5,-14.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 12465 type: FirelockEdge components: @@ -113698,13 +114044,14 @@ entities: - canCollide: False type: Physics - uid: 12505 - type: ClothingHandsGlovesColorYellowBudget + type: GasPipeStraight components: - - pos: -38.5,-14.5 + - rot: 1.5707963267948966 rad + pos: -32.5,-11.5 parent: 106 type: Transform - - canCollide: False - type: Physics + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 12506 type: ClothingHandsGlovesColorYellowBudget components: @@ -114174,9 +114521,9 @@ entities: parent: 106 type: Transform - uid: 12569 - type: ReinforcedWindow + type: RandomSpawner components: - - pos: -30.5,-37.5 + - pos: -26.5,-28.5 parent: 106 type: Transform - uid: 12570 @@ -114257,12 +114604,14 @@ entities: parent: 106 type: Transform - uid: 12581 - type: Window + type: GasPipeTJunction components: - - rot: -1.5707963267948966 rad - pos: -30.5,-19.5 + - rot: 3.141592653589793 rad + pos: -33.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12582 type: SignDirectionalEng components: @@ -114578,6 +114927,8 @@ entities: - pos: -12.5,13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12621 type: GasPipeStraight components: @@ -115078,6 +115429,8 @@ entities: pos: 41.5,-3.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -115273,13 +115626,11 @@ entities: - canCollide: False type: Physics - uid: 12718 - type: WarpPoint + type: WallSolid components: - - pos: -33.5,-13.5 + - pos: -34.5,-12.5 parent: 106 type: Transform - - location: Cargo - type: WarpPoint - uid: 12719 type: WarpPoint components: @@ -115351,7 +115702,7 @@ entities: - uid: 12727 type: WallSolid components: - - pos: -27.5,-5.5 + - pos: -35.5,-5.5 parent: 106 type: Transform - uid: 12728 @@ -115399,6 +115750,8 @@ entities: - pos: 18.5,-12.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12733 type: SignBiohazardMed components: @@ -115456,121 +115809,130 @@ entities: parent: 106 type: Transform - uid: 12740 - type: Window + type: WallSolid components: - - pos: -29.5,-10.5 + - pos: -28.5,-5.5 parent: 106 type: Transform - uid: 12741 - type: Window + type: Grille components: - - pos: -28.5,-10.5 + - pos: -36.5,-16.5 parent: 106 type: Transform - uid: 12742 - type: Window + type: WallSolid components: - - pos: -27.5,-10.5 + - pos: -38.5,-19.5 parent: 106 type: Transform - uid: 12743 - type: Window + type: WallSolid components: - - pos: -26.5,-10.5 + - pos: -34.5,-8.5 parent: 106 type: Transform - uid: 12744 - type: AirlockCargoGlassLocked + type: WallSolid components: - - pos: -31.5,-10.5 + - pos: -32.5,-5.5 parent: 106 type: Transform - uid: 12745 - type: AirlockMaintCargoLocked + type: GasPipeStraight components: - - pos: -26.5,-5.5 + - rot: 1.5707963267948966 rad + pos: -36.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12746 - type: ChairOfficeLight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -29.5,-9.5 + - pos: -36.5,-5.5 parent: 106 type: Transform - uid: 12747 - type: filingCabinet + type: GasPipeStraight components: - - pos: -27.5,-6.5 + - rot: 1.5707963267948966 rad + pos: -37.5,-16.5 parent: 106 type: Transform - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12748 - type: Table + type: CableApcExtension components: - - pos: -28.5,-6.5 + - pos: -32.5,-36.5 parent: 106 type: Transform - uid: 12749 - type: Table + type: ConveyorBelt components: - - pos: -29.5,-6.5 + - pos: -29.5,-37.5 parent: 106 type: Transform + - inputs: + Reverse: + - port: Right + uid: 9045 + Forward: + - port: Left + uid: 9045 + Off: + - port: Middle + uid: 9045 + type: SignalReceiver - uid: 12750 - type: Rack + type: WallSolid components: - - pos: -30.5,-6.5 + - pos: -39.5,-12.5 parent: 106 type: Transform - uid: 12751 - type: VendingMachineCargoDrobe + type: WallSolid components: - - pos: -31.5,-6.5 + - pos: -39.5,-13.5 parent: 106 type: Transform - uid: 12752 - type: Chair + type: WallSolid components: - - rot: -1.5707963267948966 rad - pos: -27.5,-9.5 + - pos: -40.5,-14.5 parent: 106 type: Transform - uid: 12753 - type: Table + type: WallSolid components: - - pos: -28.5,-9.5 + - pos: -40.5,-15.5 parent: 106 type: Transform - uid: 12754 - type: ChairOfficeDark + type: Catwalk components: - - pos: -28.5,-8.5 + - pos: -40.5,-10.5 parent: 106 type: Transform - uid: 12755 - type: KitchenMicrowave + type: VendingMachineCigs components: - - pos: -28.5,-6.5 + - name: cigarette machine + type: MetaData + - pos: -34.5,-15.5 parent: 106 type: Transform - - containers: - microwave_entity_container: !type:Container - ents: [] - type: ContainerContainer + - enabled: False + type: AmbientSound - uid: 12756 - type: FoodBoxDonkpocketGondola + type: KitchenMicrowave components: - - pos: -29.482113,-6.2935114 + - pos: -30.5,-13.5 parent: 106 type: Transform - - canCollide: False - type: Physics - containers: - storagebase: !type:Container + microwave_entity_container: !type:Container ents: [] type: ContainerContainer - uid: 12757 @@ -115652,17 +116014,19 @@ entities: parent: 106 type: Transform - uid: 12770 - type: Grille + type: SignCargoDock components: - - pos: -30.5,-37.5 + - pos: -34.5,-23.5 parent: 106 type: Transform - uid: 12771 - type: ReinforcedWindow + type: Pickaxe components: - - pos: -30.5,-35.5 + - pos: -24.248468,-26.456455 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 12772 type: Catwalk components: @@ -116078,11 +116442,14 @@ entities: parent: 106 type: Transform - uid: 12840 - type: Catwalk + type: GasPipeStraight components: - - pos: -40.5,-10.5 + - rot: -1.5707963267948966 rad + pos: -31.5,-34.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 12841 type: Catwalk components: @@ -116090,27 +116457,32 @@ entities: parent: 106 type: Transform - uid: 12842 - type: Catwalk + type: FireAxeFlaming components: - - pos: -38.5,-10.5 + - pos: 43.5,11.5 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 12843 - type: Catwalk + type: WallSolid components: - - pos: -38.5,-9.5 + - pos: -29.5,-19.5 parent: 106 type: Transform - uid: 12844 - type: Catwalk + type: GasPipeTJunction components: - - pos: -38.5,-8.5 + - rot: 3.141592653589793 rad + pos: -31.5,-11.5 parent: 106 type: Transform + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 12845 - type: Catwalk + type: WallSolid components: - - pos: -37.5,-8.5 + - pos: -30.5,-19.5 parent: 106 type: Transform - uid: 12846 @@ -116245,6 +116617,8 @@ entities: - pos: 31.5,-13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 12868 type: ClosetBase components: @@ -116282,6 +116656,8 @@ entities: pos: -13.5,23.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -116310,6 +116686,8 @@ entities: - pos: -7.5,21.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -116371,15 +116749,15 @@ entities: parent: 106 type: Transform - uid: 12883 - type: VendingMachineCola + type: WallSolid components: - - pos: -23.5,-20.5 + - pos: -31.5,-19.5 parent: 106 type: Transform - uid: 12884 - type: VendingMachineSnack + type: WallSolid components: - - pos: -24.5,-20.5 + - pos: -34.5,-9.5 parent: 106 type: Transform - uid: 12885 @@ -116416,9 +116794,9 @@ entities: parent: 106 type: Transform - uid: 12888 - type: Window + type: WallSolid components: - - pos: -31.5,-23.5 + - pos: -35.5,-8.5 parent: 106 type: Transform - uid: 12889 @@ -116428,29 +116806,19 @@ entities: parent: 106 type: Transform - uid: 12890 - type: CrateFilledSpawner + type: WallSolid components: - - pos: -33.5,-33.5 + - pos: -37.5,-9.5 parent: 106 type: Transform - uid: 12891 - type: ConveyorBelt + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -28.5,-34.5 + - pos: -26.5,-12.5 parent: 106 type: Transform - - inputs: - Reverse: - - port: Right - uid: 10143 - Forward: - - port: Left - uid: 10143 - Off: - - port: Middle - uid: 10143 - type: SignalReceiver + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12892 type: GasPipeStraight components: @@ -116461,17 +116829,13 @@ entities: - color: '#FF0000FF' type: AtmosPipeColor - uid: 12893 - type: MedkitFilled + type: GasPipeStraight components: - - pos: -26.537678,-28.371094 + - pos: -26.5,-11.5 parent: 106 type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 12894 type: CableApcExtension components: @@ -116542,15 +116906,13 @@ entities: - canCollide: False type: Physics - uid: 12903 - type: FireAxeCabinet + type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -59.5,1.5 + - pos: -27.5,-9.5 parent: 106 type: Transform - - containers: - ItemCabinet: !type:ContainerSlot {} - type: ContainerContainer + - color: '#0000FFFF' + type: AtmosPipeColor - uid: 12904 type: ClosetMaintenanceFilledRandom components: @@ -116608,139 +116970,120 @@ entities: ItemCabinet: !type:ContainerSlot {} type: ContainerContainer - uid: 12912 - type: GasVentPump + type: GasPipeStraight components: - - pos: -30.5,-8.5 + - pos: -30.5,-17.5 parent: 106 type: Transform - color: '#0000FFFF' type: AtmosPipeColor - uid: 12913 - type: GasPipeBend + type: GasPipeStraight components: - - rot: -1.5707963267948966 rad - pos: -27.5,-14.5 + - rot: 3.141592653589793 rad + pos: -27.5,-18.5 parent: 106 type: Transform - - color: '#FF0000FF' + - color: '#0000FFFF' type: AtmosPipeColor - uid: 12914 - type: GasPipeStraight + type: SurveillanceCameraRouterSupply components: - - rot: 3.141592653589793 rad - pos: -30.5,-9.5 + - pos: -35.5,-9.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor + - containers: + - machine_parts + - machine_board + type: Construction + - containers: + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] + type: ContainerContainer - uid: 12915 - type: GasPipeStraight + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -30.5,-10.5 + - pos: -27.5,-19.5 parent: 106 type: Transform - - color: '#0000FFFF' - type: AtmosPipeColor - uid: 12916 - type: GasPipeStraight + type: CableApcExtension components: - - rot: 3.141592653589793 rad - pos: -27.5,-9.5 + - pos: -27.5,-12.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12917 type: GasPipeStraight components: - - rot: 3.141592653589793 rad - pos: -27.5,-10.5 + - rot: 1.5707963267948966 rad + pos: -29.5,-16.5 parent: 106 type: Transform - color: '#FF0000FF' type: AtmosPipeColor - uid: 12918 - type: GasPipeStraight + type: ComputerCargoOrders components: - - rot: 3.141592653589793 rad - pos: -27.5,-11.5 + - rot: -1.5707963267948966 rad + pos: -29.5,-28.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 12919 - type: GasPipeStraight + type: Grille components: - - rot: 3.141592653589793 rad - pos: -27.5,-12.5 + - pos: -36.5,-17.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12920 - type: GasPipeStraight + type: Grille components: - - rot: 3.141592653589793 rad - pos: -27.5,-13.5 + - pos: -36.5,-15.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12921 - type: GasPipeStraight + type: Crowbar components: - - rot: 1.5707963267948966 rad - pos: -28.5,-14.5 + - pos: -33.5,-11.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor + - canCollide: False + type: Physics - uid: 12922 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -29.5,-14.5 + - pos: -39.5,-19.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12923 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -30.5,-14.5 + - pos: -28.5,-19.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12924 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -31.5,-14.5 + - pos: -28.5,-6.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12925 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -32.5,-14.5 + - pos: -34.5,-5.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12926 - type: GasPipeStraight + type: WallSolid components: - - rot: 1.5707963267948966 rad - pos: -33.5,-14.5 + - pos: -34.5,-11.5 parent: 106 type: Transform - - color: '#FF0000FF' - type: AtmosPipeColor - uid: 12927 type: MedicalTechFab components: @@ -118529,6 +118872,8 @@ entities: pos: -25.5,29.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -118574,6 +118919,8 @@ entities: pos: -21.5,30.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -118961,6 +119308,8 @@ entities: - pos: 7.5,-44.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -118989,6 +119338,8 @@ entities: - pos: 13.5,-43.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -119047,22 +119398,11 @@ entities: uid: 3989 type: SignalTransmitter - uid: 13192 - type: SignalButton + type: WallSolid components: - - pos: -32.5,-10.5 + - pos: -29.5,-5.5 parent: 106 type: Transform - - fixtures: [] - type: Fixtures - - outputs: - Pressed: - - port: Toggle - uid: 3806 - - port: Toggle - uid: 3809 - - port: Toggle - uid: 3805 - type: SignalTransmitter - uid: 13193 type: SpawnPointBartender components: @@ -119481,6 +119821,8 @@ entities: pos: 15.5,-39.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -119518,6 +119860,8 @@ entities: - pos: 20.5,-39.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -119535,6 +119879,8 @@ entities: pos: 20.5,-45.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120594,16 +120940,14 @@ entities: - canCollide: False type: Physics - uid: 13381 - type: ComputerCargoShuttle + type: GasPipeTJunction components: - - rot: -1.5707963267948966 rad - pos: -29.5,-25.5 + - rot: 3.141592653589793 rad + pos: -35.5,-16.5 parent: 106 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 13382 type: ChairWood components: @@ -120651,6 +120995,15 @@ entities: type: Physics - solution: drink type: DrainableSolution +- uid: 13387 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: -34.5,-16.5 + parent: 106 + type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 13388 type: CableHV components: @@ -120741,6 +121094,8 @@ entities: - pos: 38.5,-13.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - uid: 13403 type: Barricade components: @@ -120772,66 +121127,75 @@ entities: parent: 106 type: Transform - uid: 13408 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -31.5,-11.5 + - rot: 1.5707963267948966 rad + pos: -32.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 13409 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -31.5,-10.5 + - rot: 1.5707963267948966 rad + pos: -31.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 13410 - type: CableApcExtension + type: GasPipeStraight components: - - pos: -31.5,-9.5 + - rot: 1.5707963267948966 rad + pos: -30.5,-16.5 parent: 106 type: Transform + - color: '#FF0000FF' + type: AtmosPipeColor - uid: 13411 - type: CableApcExtension + type: ShuttersNormal components: - - pos: -31.5,-8.5 + - pos: -32.5,-9.5 parent: 106 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: [] + type: SignalReceiver - uid: 13412 - type: CableApcExtension + type: Paper components: - - pos: -30.5,-8.5 + - pos: -52.413204,8.764424 parent: 106 type: Transform + - canCollide: False + type: Physics - uid: 13413 - type: CableApcExtension + type: WallSolid components: - - pos: -29.5,-8.5 + - pos: -36.5,-7.5 parent: 106 type: Transform - uid: 13414 type: CableApcExtension components: - - pos: -28.5,-8.5 + - pos: -27.5,-18.5 parent: 106 type: Transform - uid: 13415 - type: CableApcExtension + type: LockerQuarterMasterFilled components: - - pos: -27.5,-8.5 + - pos: -36.5,-10.5 parent: 106 type: Transform - uid: 13416 - type: Poweredlight + type: PosterContrabandBeachStarYamamoto components: - - pos: -29.5,-6.5 + - pos: -37.5,-11.5 parent: 106 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 13417 type: WeaponSubMachineGunVector components: @@ -120958,57 +121322,41 @@ entities: parent: 106 type: Transform - uid: 13432 - type: BoxFolderYellow + type: RandomPosterContraband components: - - pos: -28.28831,-11.360335 + - pos: -39.5,-14.5 parent: 106 type: Transform - - canCollide: False - type: Physics - - containers: - storagebase: !type:Container - ents: [] - type: ContainerContainer - uid: 13433 - type: Paper + type: RandomPosterContraband components: - - pos: -27.831627,-11.360335 + - pos: -28.5,-12.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 13434 - type: Paper + type: RandomPosterContraband components: - - pos: -27.644127,-11.527002 + - pos: -28.5,-7.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 13435 - type: Paper + type: RandomPosterContraband components: - - pos: -27.560795,-11.402002 + - pos: -34.5,-5.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 13436 - type: Pen + type: RandomPosterAny components: - - pos: -26.644127,-11.381168 + - pos: -31.5,-8.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 13437 - type: Pen + type: RandomPosterAny components: - - pos: -38.501564,-14.069498 + - pos: -34.5,-8.5 parent: 106 type: Transform - - canCollide: False - type: Physics - uid: 13438 type: Pen components: @@ -121125,29 +121473,42 @@ entities: ents: [] type: ContainerContainer - uid: 13450 - type: SurveillanceCameraSupply + type: PosterContrabandWehWatches components: - - pos: -38.5,-18.5 + - pos: -36.5,-9.5 parent: 106 type: Transform - uid: 13451 - type: SurveillanceCameraSupply + type: PottedPlantRandom components: - - rot: 3.141592653589793 rad - pos: -28.5,-6.5 + - pos: -39.5,-15.5 parent: 106 type: Transform - uid: 13452 - type: SurveillanceCameraSupply + type: PottedPlantRandom components: - - pos: -32.5,-15.5 + - pos: -29.5,-18.5 parent: 106 type: Transform - uid: 13453 - type: SurveillanceCameraSupply + type: PottedPlant10 components: - - rot: 3.141592653589793 rad - pos: -29.5,-17.5 + - pos: -29.5,-7.5 + parent: 106 + type: Transform + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer +- uid: 13454 + type: PottedPlantRandom + components: + - pos: -59.5,-34.5 + parent: 106 + type: Transform +- uid: 13455 + type: PottedPlantRandom + components: + - pos: -48.5,-1.5 parent: 106 type: Transform - uid: 13456 @@ -121690,6 +122051,54 @@ entities: pos: 48.5,-15.5 parent: 106 type: Transform +- uid: 13538 + type: PottedPlantRandomPlastic + components: + - pos: -17.5,19.5 + parent: 106 + type: Transform +- uid: 13539 + type: PottedPlantRandomPlastic + components: + - pos: -17.5,20.5 + parent: 106 + type: Transform +- uid: 13540 + type: PottedPlantRandomPlastic + components: + - pos: -16.5,19.5 + parent: 106 + type: Transform +- uid: 13541 + type: PottedPlantRandomPlastic + components: + - pos: -16.5,20.5 + parent: 106 + type: Transform +- uid: 13542 + type: PottedPlantRandomPlastic + components: + - pos: -15.5,19.5 + parent: 106 + type: Transform +- uid: 13543 + type: PottedPlantRandomPlastic + components: + - pos: -15.5,20.5 + parent: 106 + type: Transform +- uid: 13544 + type: PottedPlantRandomPlastic + components: + - pos: -14.5,19.5 + parent: 106 + type: Transform +- uid: 13545 + type: PottedPlantRandomPlastic + components: + - pos: -14.5,20.5 + parent: 106 + type: Transform - uid: 13546 type: GasPipeStraight components: @@ -121911,6 +122320,8 @@ entities: - pos: 48.5,-9.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -121927,6 +122338,8 @@ entities: - pos: 48.5,-17.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -121944,6 +122357,8 @@ entities: pos: 48.5,-19.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -121961,6 +122376,8 @@ entities: pos: 48.5,-11.5 parent: 106 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -122091,4 +122508,429 @@ entities: board: !type:Container ents: [] type: ContainerContainer +- uid: 13585 + type: PottedPlantRandomPlastic + components: + - pos: -13.5,19.5 + parent: 106 + type: Transform +- uid: 13586 + type: PottedPlantRandomPlastic + components: + - pos: -13.5,20.5 + parent: 106 + type: Transform +- uid: 13587 + type: PottedPlantRandomPlastic + components: + - pos: -12.5,20.5 + parent: 106 + type: Transform +- uid: 13588 + type: PottedPlantRandomPlastic + components: + - pos: -15.5,21.5 + parent: 106 + type: Transform +- uid: 13589 + type: PottedPlantRandomPlastic + components: + - pos: -14.5,21.5 + parent: 106 + type: Transform +- uid: 13590 + type: RandomSpawner + components: + - pos: -37.5,-13.5 + parent: 106 + type: Transform +- uid: 13591 + type: RandomSpawner + components: + - pos: -36.5,-12.5 + parent: 106 + type: Transform +- uid: 13592 + type: RandomSpawner + components: + - pos: -35.5,-10.5 + parent: 106 + type: Transform +- uid: 13593 + type: RandomSpawner + components: + - pos: -35.5,-13.5 + parent: 106 + type: Transform +- uid: 13594 + type: RandomSpawner + components: + - pos: -32.5,-10.5 + parent: 106 + type: Transform +- uid: 13595 + type: RandomSpawner + components: + - pos: -30.5,-11.5 + parent: 106 + type: Transform +- uid: 13596 + type: RandomSpawner + components: + - pos: -29.5,-8.5 + parent: 106 + type: Transform +- uid: 13597 + type: RandomSpawner + components: + - pos: -30.5,-7.5 + parent: 106 + type: Transform +- uid: 13598 + type: RandomSpawner + components: + - pos: -33.5,-7.5 + parent: 106 + type: Transform +- uid: 13599 + type: RandomSpawner + components: + - pos: -26.5,-7.5 + parent: 106 + type: Transform +- uid: 13600 + type: RandomSpawner + components: + - pos: -37.5,-18.5 + parent: 106 + type: Transform +- uid: 13601 + type: RandomSpawner + components: + - pos: -28.5,-20.5 + parent: 106 + type: Transform +- uid: 13602 + type: RandomSpawner + components: + - pos: -32.5,-18.5 + parent: 106 + type: Transform +- uid: 13603 + type: RandomSpawner + components: + - pos: -33.5,-17.5 + parent: 106 + type: Transform +- uid: 13604 + type: RandomSpawner + components: + - pos: -36.5,-22.5 + parent: 106 + type: Transform +- uid: 13605 + type: ClothingOuterSuitFire + components: + - pos: 43.5,11.5 + parent: 106 + type: Transform + - canCollide: False + type: Physics +- uid: 13606 + type: ClothingHeadHelmetFire + components: + - pos: 43.5,11.5 + parent: 106 + type: Transform + - canCollide: False + type: Physics + - containers: + cell_slot: !type:ContainerSlot {} + type: ContainerContainer +- uid: 13607 + type: RubberStampDenied + components: + - pos: -57.5,24.5 + parent: 106 + type: Transform + - canCollide: False + type: Physics +- uid: 13608 + type: PoweredSmallLight + components: + - rot: 1.5707963267948966 rad + pos: -36.5,-11.5 + parent: 106 + type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13609 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -39.5,-17.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13610 + type: Poweredlight + components: + - rot: 1.5707963267948966 rad + pos: -33.5,-14.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13611 + type: Poweredlight + components: + - rot: 3.141592653589793 rad + pos: -31.5,-18.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13612 + type: Poweredlight + components: + - rot: -1.5707963267948966 rad + pos: -26.5,-15.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13613 + type: Poweredlight + components: + - pos: -34.5,-20.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13614 + type: Poweredlight + components: + - rot: 3.141592653589793 rad + pos: -28.5,-11.5 + parent: 106 + type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13615 + type: PoweredSmallLight + components: + - pos: -34.5,-6.5 + parent: 106 + type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13616 + type: PoweredSmallLight + components: + - rot: -1.5707963267948966 rad + pos: -29.5,-7.5 + parent: 106 + type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13617 + type: PoweredSmallLight + components: + - rot: -1.5707963267948966 rad + pos: -26.5,-7.5 + parent: 106 + type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver +- uid: 13618 + type: CableHV + components: + - pos: -35.5,-30.5 + parent: 106 + type: Transform +- uid: 13619 + type: CableHV + components: + - pos: -35.5,-31.5 + parent: 106 + type: Transform +- uid: 13620 + type: CableHV + components: + - pos: -35.5,-32.5 + parent: 106 + type: Transform +- uid: 13621 + type: CableHV + components: + - pos: -34.5,-32.5 + parent: 106 + type: Transform +- uid: 13622 + type: CableHV + components: + - pos: -33.5,-32.5 + parent: 106 + type: Transform +- uid: 13623 + type: CableHV + components: + - pos: -32.5,-32.5 + parent: 106 + type: Transform +- uid: 13624 + type: CableHV + components: + - pos: -31.5,-32.5 + parent: 106 + type: Transform +- uid: 13625 + type: CableHV + components: + - pos: -30.5,-32.5 + parent: 106 + type: Transform +- uid: 13626 + type: CableHV + components: + - pos: -29.5,-32.5 + parent: 106 + type: Transform +- uid: 13627 + type: CableHV + components: + - pos: -28.5,-32.5 + parent: 106 + type: Transform +- uid: 13628 + type: CableHV + components: + - pos: -27.5,-32.5 + parent: 106 + type: Transform +- uid: 13629 + type: CableHV + components: + - pos: -27.5,-31.5 + parent: 106 + type: Transform +- uid: 13630 + type: CableHV + components: + - pos: -27.5,-30.5 + parent: 106 + type: Transform +- uid: 13631 + type: CableHV + components: + - pos: -26.5,-30.5 + parent: 106 + type: Transform +- uid: 13632 + type: CableHV + components: + - pos: -25.5,-30.5 + parent: 106 + type: Transform +- uid: 13633 + type: CableHV + components: + - pos: -24.5,-30.5 + parent: 106 + type: Transform +- uid: 13634 + type: CableHV + components: + - pos: -24.5,-29.5 + parent: 106 + type: Transform +- uid: 13635 + type: CableHV + components: + - pos: -24.5,-28.5 + parent: 106 + type: Transform +- uid: 13636 + type: CableHV + components: + - pos: -24.5,-27.5 + parent: 106 + type: Transform +- uid: 13637 + type: CableHV + components: + - pos: -23.5,-27.5 + parent: 106 + type: Transform ... diff --git a/Resources/Maps/cargo_shuttle.yml b/Resources/Maps/cargo_shuttle.yml index b3b131014d8f..4707e5141eac 100644 --- a/Resources/Maps/cargo_shuttle.yml +++ b/Resources/Maps/cargo_shuttle.yml @@ -226,8 +226,8 @@ entities: -4,2: 1 -4,3: 1 -4,7: 0 - -4,8: 0 - -4,9: 0 + -4,8: 2 + -4,9: 3 -3,12: 0 -3,13: 0 -3,14: 0 @@ -238,8 +238,8 @@ entities: -2,4: 1 -2,5: 1 -2,7: 1 - -2,8: 1 - -2,9: 1 + -2,8: 4 + -2,9: 5 -2,10: 1 -1,0: 1 -1,1: 1 @@ -396,7 +396,7 @@ entities: -3,6: 1 -3,7: 1 -3,8: 1 - -3,9: 1 + -3,9: 6 -3,10: 1 -3,11: 1 -2,6: 1 @@ -513,6 +513,61 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 147.92499 + moles: + - 10.912439 + - 41.05156 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 184.23123 + moles: + - 13.64055 + - 51.31445 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 291.44815 + moles: + - 21.696999 + - 81.62205 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 286.34256 + moles: + - 21.313358 + - 80.178825 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 265.9203 + moles: + - 19.778797 + - 74.40595 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 type: GridAtmosphere - uid: 1 type: BlastDoor @@ -1339,33 +1394,33 @@ entities: parent: 0 type: Transform - uid: 68 - type: ReinforcedWindow + type: ShuttleWindow components: - - pos: -3.5,8.5 + - pos: -1.5,8.5 parent: 0 type: Transform - uid: 69 - type: ReinforcedWindow + type: ShuttleWindow components: - - pos: -3.5,9.5 + - pos: -1.5,9.5 parent: 0 type: Transform - uid: 70 - type: ReinforcedWindow + type: ShuttleWindow components: - pos: -2.5,9.5 parent: 0 type: Transform - uid: 71 - type: ReinforcedWindow + type: ShuttleWindow components: - - pos: -1.5,9.5 + - pos: -3.5,9.5 parent: 0 type: Transform - uid: 72 - type: ReinforcedWindow + type: ShuttleWindow components: - - pos: -1.5,8.5 + - pos: -3.5,8.5 parent: 0 type: Transform - uid: 73 diff --git a/Resources/Maps/lighthouse.yml b/Resources/Maps/lighthouse.yml index 78b9a493edcc..f4bea6b0b157 100644 --- a/Resources/Maps/lighthouse.yml +++ b/Resources/Maps/lighthouse.yml @@ -128,11 +128,11 @@ grids: - ind: 1,3 tiles: HgAAAB4AAAAeAAAANwAAADcAAAAyAAAAMgAAADcAAAA3AAAAKwAAACsAAAArAAAANwAAADcAAAA2AAAANgAAADcAAAArAAAAKwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAHgAAAB4AAAAeAAAANwAAADcAAAA3AAAANgAAADYAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAB4AAAAsAAAAHgAAACsAAAAMAAAANwAAADcAAAA2AAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAAB4AAAArAAAADAAAAAwAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAeAAAAHgAAACsAAAA3AAAANwAAACsAAAArAAAANwAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAAKwAAACsAAAArAAAANwAAADcAAAA2AAAANgAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAwAAAAMAAAANwAAADcAAAA2AAAANgAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAArAAAAKwAAADcAAAA2AAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAANgAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 1,-3 - tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAABQAAAAUAAAAUAAAAFAAAABQAAAAFAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAUAAAAFAAAAFAAAABQAAAAUAAAABQAAABQAAAAUAAAAFAAAABQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAFAAAABQAAABQAAAAUAAAAFAAAAAUAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAArAAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFwAAABQAAAAUAAAAKwAAADcAAAA3AAAANwAAADcAAAAXAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAACsAAAAUAAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAArAAAANwAAADcAAAA3AAAANwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAACEAAAAhAAAAIQAAACEAAAAhAAAAMQAAADEAAAAxAAAAIQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAA3AAAAKwAAACsAAAAxAAAAMQAAADEAAAA3AAAAAAAAAAAAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAADwAAADcAAAA3AAAAMQAAADEAAAAxAAAANwAAAAAAAAA2AAAANwAAABAAAAA3AAAAEwAAABMAAAATAAAAEwAAAA8AAAATAAAAEwAAAA== + tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAArAAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFwAAABQAAAAUAAAAKwAAADcAAAA3AAAANwAAADcAAAAXAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAACsAAAAUAAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAArAAAANwAAADcAAAA3AAAANwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAACEAAAAhAAAAIQAAACEAAAAhAAAAMQAAADEAAAAxAAAAIQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAA3AAAAKwAAACsAAAAxAAAAMQAAADEAAAA3AAAAAAAAAAAAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAADwAAADcAAAA3AAAAMQAAADEAAAAxAAAANwAAAAAAAAA2AAAANwAAABAAAAA3AAAAEwAAABMAAAATAAAAEwAAAA8AAAATAAAAEwAAAA== - ind: 2,-2 - tiles: EQAAABEAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAAAEQAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAArAAAANgAAADYAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAArAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAKwAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAACsAAAAAAAAAAAAAAAAAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: EQAAABEAAAArAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAARAAAAEQAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAEQAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAArAAAANgAAADYAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAArAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AAAAKwAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAACsAAAAAAAAAAAAAAAAAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 2,-3 - tiles: NgAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAACsAAAArAAAAKwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAADEAAAArAAAAKwAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAxAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAMQAAACsAAAArAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAACMAAAAjAAAAKwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAjAAAAIwAAACsAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAIwAAACMAAAArAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAADEAAAArAAAAKwAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAxAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAMQAAACsAAAArAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + tiles: NgAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAACsAAAArAAAAKwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAADEAAAArAAAAKwAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAxAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAMQAAACsAAAArAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAACMAAAAjAAAAKwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAjAAAAIwAAACsAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAIwAAACMAAAArAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEAAAAxAAAAMQAAADEAAAArAAAAKwAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAAAAMQAAADEAAAAxAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQAAADEAAAAxAAAAMQAAACsAAAArAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 2,-1 tiles: NwAAACsAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANgAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: -3,-2 @@ -168,7 +168,7 @@ grids: - ind: -1,-4 tiles: HgAAAAoAAAAKAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAAFAAAABQAAAAXAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAAKwAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAA3AAAANwAAACsAAAAUAAAAFAAAABQAAAArAAAAKwAAACsAAAArAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAArAAAAFAAAABQAAAAUAAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAAKwAAABQAAAAUAAAAFAAAACsAAAArAAAAKwAAACsAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAA3AAAANwAAACsAAAAUAAAAFAAAABQAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAANwAAADcAAAArAAAAFAAAABQAAAAUAAAAKwAAACsAAAArAAAAKwAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAADcAAAA3AAAAKwAAABQAAAAXAAAAFAAAADcAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAA3AAAANwAAACsAAAAUAAAAFAAAABQAAAArAAAAKwAAACsAAAArAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAANwAAADcAAAA3AAAABQAAAAUAAAA3AAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAAA== - ind: 0,-4 - tiles: FAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA== + tiles: FAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADcAAAA3AAAANwAAADcAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABcAAAAyAAAAKwAAADIAAAAyAAAAMgAAADIAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAMgAAACsAAAAyAAAAMgAAADIAAAAyAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAADIAAAAyAAAANwAAADcAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAABkAAAAZAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABkAAAAZAAAAGQAAABkAAAAZAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAZAAAAGQAAABkAAAAZAAAAGQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAGQAAABkAAAAZAAAAGQAAABkAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA== - ind: -4,4 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAAeAAAANwAAAB4AAAAeAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAAB4AAAAeAAAAHgAAADcAAAAeAAAAHgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 0,4 @@ -206,7 +206,7 @@ grids: - ind: 1,-5 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 1,-4 - tiles: FAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABcAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAFAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAFAAAAAAAAABQAAAAUAAAAFAAAABcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAFAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAABQAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAUAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAFAAAAFAAAABQAAAAUAAAAFAAAAA== + tiles: FAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABcAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADIAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAyAAAAMgAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAAMgAAADcAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAADIAAAAyAAAAMgAAADIAAAA3AAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACsAAAArAAAANwAAADcAAAA3AAAANwAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAFAAAAAAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAAA== - ind: 2,3 tiles: NgAAADYAAAA2AAAANgAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 0,5 @@ -301,7 +301,7 @@ entities: parent: 100 type: Transform - uid: 12 - type: WallMetal + type: WallSolid components: - pos: -0.5,-5.5 parent: 100 @@ -391,7 +391,7 @@ entities: parent: 100 type: Transform - uid: 27 - type: WallMetal + type: WallSolid components: - pos: 0.5,-5.5 parent: 100 @@ -675,7 +675,7 @@ entities: parent: 100 type: Transform - uid: 72 - type: WallMetal + type: WallSolid components: - pos: 1.5,-5.5 parent: 100 @@ -1372,195 +1372,195 @@ entities: color: '#D4D4D4FF' id: DirtMedium coordinates: -15,67 - 1080: + 1079: color: '#835432FF' id: Dirt coordinates: -21,71 - 1081: + 1080: color: '#835432FF' id: Dirt coordinates: -21,70 - 1082: + 1081: color: '#835432FF' id: Dirt coordinates: -21,69 - 1083: + 1082: color: '#835432FF' id: Dirt coordinates: -21,68 - 1084: + 1083: color: '#835432FF' id: Dirt coordinates: -21,67 - 1085: + 1084: color: '#835432FF' id: Dirt coordinates: -21,66 - 1086: + 1085: color: '#835432FF' id: Dirt coordinates: -20,66 - 1087: + 1086: color: '#835432FF' id: Dirt coordinates: -19,66 - 1088: + 1087: color: '#835432FF' id: Dirt coordinates: -21,73 - 1089: + 1088: color: '#835432FF' id: Dirt coordinates: -21,72 - 1090: + 1089: color: '#835432FF' id: Dirt coordinates: -18,66 - 1212: + 1211: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -24,66 - 1213: + 1212: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -23,66 - 1214: + 1213: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -24,67 - 1224: + 1223: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -22,66 - 1506: + 1505: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -31,64 - 1507: + 1506: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -32,64 - 1508: + 1507: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -31,65 - 1509: + 1508: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -32,65 - 1829: + 1828: color: '#A49F9B4D' id: Flowersbr2 coordinates: -11.663277,64.270386 - 1830: + 1829: color: '#A4669BA4' id: Flowersbr2 coordinates: -12.803902,64.864136 - 1831: + 1830: color: '#A4669BA4' id: Flowersbr2 coordinates: -12.319527,64.145386 - 1832: + 1831: color: '#A4669BA4' id: Flowersy4 coordinates: -11.819527,64.87976 - 1833: + 1832: color: '#A4669BA4' id: Flowerspv2 coordinates: -12.913277,64.051636 - 1834: + 1833: color: '#A4BF9BA4' id: Bushi4 coordinates: -12.475777,64.41101 - 1835: + 1834: color: '#A4BF9BA4' id: Bushi4 coordinates: -13.210152,64.770386 - 1836: + 1835: color: '#A4BF9BA4' id: Bushi4 coordinates: -12.100777,65.114136 - 1839: + 1838: color: '#A4BF9BEC' id: Flowersy1 coordinates: -12.147652,64.37976 - 1840: + 1839: color: '#A4BF9BEC' id: Flowersy1 coordinates: -13.085152,65.020386 - 1841: + 1840: color: '#A4BF9BEC' id: Flowerspv2 coordinates: -12.88811,64.30989 - 1842: + 1841: color: '#A4BF9BEC' id: Flowerspv2 coordinates: -6.9868712,70.03502 - 1843: + 1842: color: '#A4BF9BEC' id: Flowerspv2 coordinates: -5.1587462,70.925644 - 1844: + 1843: color: '#A4BF9BEC' id: Flowersbr2 coordinates: -5.9556212,70.44127 - 1845: + 1844: color: '#A4BF9BEC' id: Flowersbr2 coordinates: -6.9868712,71.050644 - 1846: + 1845: color: '#A4BF9BEC' id: Bushi3 coordinates: -5.3774962,69.97252 - 1847: + 1846: color: '#A4BF9BEC' id: Bushi3 coordinates: -6.5806212,70.78502 - 1848: + 1847: color: '#A4924DA4' id: Flowersbr2 coordinates: -6.4712462,70.22252 - 1849: + 1848: color: '#A4924DA4' id: Flowersbr2 coordinates: -5.0181212,70.394394 - 1850: + 1849: color: '#A4924DA4' id: Flowersbr2 coordinates: -5.7681212,71.16002 - 1851: + 1850: color: '#A4924DA4' id: Flowersy1 coordinates: -5.9712462,70.081894 - 1852: + 1851: color: '#A4924DA4' id: Flowersy1 coordinates: -7.0181212,70.69127 - 1853: + 1852: color: '#A4924DA4' id: Flowersy1 coordinates: -4.9087462,70.863144 - 1854: + 1853: color: '#A4924D82' id: Bushj1 coordinates: -5.9399962,70.519394 - 1855: + 1854: color: '#A4924D82' id: Bushj1 coordinates: -4.9556212,70.019394 - 1856: + 1855: color: '#A4924D82' id: Bushj1 coordinates: -7.0649962,69.81627 - 1857: + 1856: color: '#A4924D82' id: Bushj1 coordinates: -6.8931212,71.03502 - 1858: + 1857: color: '#334E6DC8' id: FullTileOverlayGreyscale coordinates: -11,73 - 1859: + 1858: color: '#334E6DC8' id: FullTileOverlayGreyscale coordinates: -10,73 @@ -2136,1236 +2136,1236 @@ entities: color: '#D4D4D4FF' id: Dirt coordinates: -1,39 - 1273: + 1272: color: '#334E6DC8' id: Flowersy2 coordinates: -32,57 - 1275: + 1274: color: '#334E6DC8' id: Flowersy2 coordinates: -31,58 - 1280: + 1279: color: '#319F6DC8' id: Flowerspv3 coordinates: -31.250128,56.24909 - 1283: + 1282: color: '#319F6DC8' id: Flowersy2 coordinates: -31.797003,57.56159 - 1286: + 1285: color: '#319F6D5A' id: Grasse2 coordinates: -31.422003,55.920963 - 1289: + 1288: color: '#319F6D5A' id: Grasse2 coordinates: -31.922003,58.09284 - 1290: + 1289: color: '#319F6D5A' id: Grasse2 coordinates: -31.047003,58.09284 - 1291: + 1290: color: '#319F6D5A' id: Grasse2 coordinates: -30.968878,55.99909 - 1298: + 1297: color: '#319F6DF2' id: Flowersy4 coordinates: -30.984503,57.202213 - 1350: + 1349: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,34 - 1351: + 1350: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -7,33 - 1352: + 1351: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -6,33 - 1353: + 1352: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -10,35 - 1354: + 1353: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -11,35 - 1355: + 1354: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -10,34 - 1356: + 1355: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -9,35 - 1357: + 1356: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -10,36 - 1360: + 1359: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,56 - 1361: + 1360: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,56 - 1362: + 1361: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,57 - 1363: + 1362: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,57 - 1364: + 1363: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,59 - 1365: + 1364: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,59 - 1366: + 1365: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,60 - 1367: + 1366: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,60 - 1368: + 1367: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,61 - 1369: + 1368: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,61 - 1370: + 1369: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -29,62 - 1371: + 1370: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -28,62 - 1372: + 1371: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,62 - 1373: + 1372: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,62 - 1374: + 1373: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,62 - 1375: + 1374: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -27,62 - 1376: + 1375: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -27,61 - 1377: + 1376: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -27,60 - 1378: + 1377: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -27,59 - 1379: + 1378: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -27,58 - 1380: + 1379: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,56 - 1381: + 1380: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,57 - 1382: + 1381: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,58 - 1383: + 1382: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,59 - 1384: + 1383: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,60 - 1385: + 1384: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -26,61 - 1386: + 1385: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,61 - 1387: + 1386: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,60 - 1388: + 1387: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,59 - 1389: + 1388: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,58 - 1390: + 1389: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,57 - 1391: + 1390: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -25,56 - 1392: + 1391: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,56 - 1393: + 1392: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,57 - 1394: + 1393: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,58 - 1395: + 1394: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,59 - 1396: + 1395: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,60 - 1397: + 1396: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -24,61 - 1402: + 1401: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -32,60 - 1403: + 1402: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -32,61 - 1404: + 1403: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -31,61 - 1405: + 1404: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -31,60 - 1504: + 1503: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -32,63 - 1505: + 1504: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -31,63 - 1512: + 1511: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -31.206165,60.99104 - 1517: + 1516: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -28,56 - 1518: + 1517: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -29,56 - 1519: + 1518: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -26,62 - 1526: + 1525: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -28,59 - 1622: + 1621: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -15,37 - 1623: + 1622: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -10,33 - 1624: + 1623: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -9,33 - 1625: + 1624: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,35 - 1626: + 1625: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,36 - 1627: + 1626: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,37 - 1628: + 1627: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -15,38 - 1629: + 1628: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -6,38 - 1630: + 1629: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -14,38 - 1631: + 1630: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -13,38 - 1632: + 1631: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -12,38 - 1633: + 1632: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -11,38 - 1634: + 1633: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -10,38 - 1635: + 1634: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -9,38 - 1636: + 1635: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -8,38 - 1637: + 1636: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -7,38 - 1638: + 1637: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -7,46 - 1639: + 1638: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -9,41 - 1640: + 1639: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -10,41 - 1641: + 1640: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -11,41 - 1642: + 1641: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -12,41 - 1643: + 1642: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -13,41 - 1644: + 1643: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -17,40 - 1645: + 1644: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -16,40 - 1646: + 1645: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -15,39 - 1647: + 1646: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -14,39 - 1648: + 1647: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -8,39 - 1649: + 1648: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -7,39 - 1650: + 1649: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -5,36 - 1651: + 1650: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -5,35 - 1652: + 1651: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -9,32 - 1653: + 1652: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -10,32 - 1654: + 1653: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -13,44 - 1655: + 1654: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -15,47 - 1656: + 1655: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -17,47 - 1657: + 1656: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -23,47 - 1658: + 1657: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -27,45 - 1659: + 1658: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -25,43 - 1660: + 1659: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -25,39 - 1661: + 1660: color: '#52B4E996' id: FullTileOverlayGreyscale coordinates: -24,39 - 1662: + 1661: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -24,40 - 1663: + 1662: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -23,40 - 1664: + 1663: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -24,41 - 1665: + 1664: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -15,41 - 1666: + 1665: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -16,43 - 1667: + 1666: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -16,44 - 1668: + 1667: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -24,42 - 1669: + 1668: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -24,43 - 1670: + 1669: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -24,44 - 1671: + 1670: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -8,42 - 1672: + 1671: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -8,43 - 1673: + 1672: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -8,44 - 1674: + 1673: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -8,45 - 1675: + 1674: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: -24,45 - 1676: + 1675: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -26,45 - 1677: + 1676: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -15,40 - 1678: + 1677: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -14,46 - 1679: + 1678: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -6,46 - 1680: + 1679: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -26,46 - 1681: + 1680: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -8,46 - 1682: + 1681: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -6,40 - 1683: + 1682: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -25,46 - 1684: + 1683: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -24,46 - 1685: + 1684: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -23,46 - 1686: + 1685: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -22,46 - 1687: + 1686: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -21,46 - 1688: + 1687: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -20,46 - 1689: + 1688: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -19,46 - 1690: + 1689: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -17,46 - 1691: + 1690: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -16,46 - 1692: + 1691: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -15,46 - 1693: + 1692: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -25,45 - 1694: + 1693: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -22,45 - 1695: + 1694: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -21,45 - 1696: + 1695: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -20,45 - 1697: + 1696: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -19,45 - 1698: + 1697: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -17,45 - 1699: + 1698: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -7,40 - 1700: + 1699: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -8,40 - 1701: + 1700: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -9,40 - 1702: + 1701: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -10,40 - 1703: + 1702: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -11,40 - 1704: + 1703: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -12,40 - 1705: + 1704: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -13,40 - 1706: + 1705: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -14,40 - 1707: + 1706: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -16,42 - 1708: + 1707: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -14,45 - 1709: + 1708: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -14,44 - 1710: + 1709: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -14,42 - 1711: + 1710: color: '#52B4E996' id: QuarterTileOverlayGreyscale90 coordinates: -14,41 - 1712: + 1711: color: '#52B4E996' id: QuarterTileOverlayGreyscale coordinates: -8,41 - 1713: + 1712: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,45 - 1714: + 1713: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,44 - 1715: + 1714: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,43 - 1716: + 1715: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,42 - 1717: + 1716: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -6,41 - 1718: + 1717: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -23,41 - 1719: + 1718: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -23,42 - 1720: + 1719: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -23,43 - 1721: + 1720: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -23,44 - 1722: + 1721: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 coordinates: -23,45 - 1723: + 1722: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: -16,45 - 1724: + 1723: color: '#52B4E996' id: CheckerNESW coordinates: -30,49 - 1725: + 1724: color: '#52B4E996' id: CheckerNESW coordinates: -30,50 - 1726: + 1725: color: '#52B4E996' id: CheckerNESW coordinates: -29,50 - 1727: + 1726: color: '#52B4E996' id: CheckerNESW coordinates: -29,49 - 1728: + 1727: color: '#52B4E996' id: CheckerNESW coordinates: -28,50 - 1729: + 1728: color: '#52B4E996' id: CheckerNESW coordinates: -28,49 - 1730: + 1729: color: '#52B4E996' id: CheckerNESW coordinates: -27,50 - 1731: + 1730: color: '#52B4E996' id: CheckerNESW coordinates: -27,49 - 1732: + 1731: color: '#52B4E996' id: CheckerNESW coordinates: -26,50 - 1733: + 1732: color: '#52B4E996' id: CheckerNESW coordinates: -26,49 - 1734: + 1733: color: '#52B4E996' id: CheckerNESW coordinates: -26,48 - 1735: + 1734: color: '#52B4E996' id: CheckerNESW coordinates: -25,48 - 1736: + 1735: color: '#52B4E996' id: CheckerNESW coordinates: -25,49 - 1737: + 1736: color: '#52B4E996' id: CheckerNESW coordinates: -25,50 - 1738: + 1737: color: '#52B4E996' id: CheckerNESW coordinates: -24,50 - 1739: + 1738: color: '#52B4E996' id: CheckerNESW coordinates: -24,49 - 1740: + 1739: color: '#52B4E996' id: CheckerNESW coordinates: -24,48 - 1741: + 1740: color: '#52B4E996' id: CheckerNESW coordinates: -23,48 - 1742: + 1741: color: '#52B4E996' id: CheckerNESW coordinates: -23,49 - 1743: + 1742: color: '#52B4E996' id: CheckerNESW coordinates: -23,50 - 1744: + 1743: color: '#52B4E996' id: StandClearGreyscale coordinates: -20,50 - 1745: + 1744: color: '#52B4E996' id: StandClearGreyscale coordinates: -17,50 - 1746: + 1745: color: '#52B4E996' id: BotGreyscale coordinates: -13,50 - 1747: + 1746: color: '#52B4E996' id: BotGreyscale coordinates: -12,50 - 1748: + 1747: color: '#52B4E996' id: BotGreyscale coordinates: -11,50 - 1749: + 1748: color: '#52B4E996' id: BotGreyscale coordinates: -10,50 - 1750: + 1749: color: '#52B4E996' id: BotGreyscale coordinates: -9,50 - 1751: + 1750: color: '#52B4E996' id: BotGreyscale coordinates: -8,50 - 1752: + 1751: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -11,44 - 1753: + 1752: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -10,44 - 1754: + 1753: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -10,45 - 1755: + 1754: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -10,46 - 1756: + 1755: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -11,46 - 1757: + 1756: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -12,46 - 1758: + 1757: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -12,45 - 1759: + 1758: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -11,45 - 1760: + 1759: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -12,44 - 1761: + 1760: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -12,43 - 1762: + 1761: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -11,43 - 1763: + 1762: color: '#C3BCFF47' id: FullTileOverlayGreyscale coordinates: -10,43 - 1764: + 1763: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -18,43 - 1765: + 1764: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -18,42 - 1766: + 1765: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -19,42 - 1767: + 1766: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -19,43 - 1768: + 1767: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -20,43 - 1769: + 1768: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -21,43 - 1770: + 1769: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -21,42 - 1771: + 1770: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -20,42 - 1772: + 1771: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -20,41 - 1773: + 1772: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -21,41 - 1774: + 1773: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -19,41 - 1775: + 1774: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -19,40 - 1776: + 1775: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -20,40 - 1777: + 1776: color: '#BDFFD347' id: FullTileOverlayGreyscale coordinates: -21,40 - 1778: + 1777: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -18,49 - 1779: + 1778: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -19,49 - 1780: + 1779: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -19,48 - 1781: + 1780: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -18,48 - 1782: + 1781: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -17,48 - 1783: + 1782: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -17,49 - 1784: + 1783: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -17,50 - 1785: + 1784: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -18,50 - 1786: + 1785: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -19,50 - 1787: + 1786: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -20,50 - 1788: + 1787: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -21,50 - 1789: + 1788: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -21,49 - 1790: + 1789: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -20,49 - 1791: + 1790: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -20,48 - 1792: + 1791: color: '#BDBFD376' id: FullTileOverlayGreyscale coordinates: -21,48 - 1793: + 1792: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -14,49 - 1794: + 1793: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -15,49 - 1795: + 1794: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -15,48 - 1796: + 1795: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -14,48 - 1797: + 1796: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -13,48 - 1798: + 1797: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -12,48 - 1799: + 1798: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -11,48 - 1800: + 1799: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -10,48 - 1801: + 1800: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -9,48 - 1802: + 1801: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -8,48 - 1803: + 1802: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -8,49 - 1804: + 1803: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -9,49 - 1805: + 1804: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -9,50 - 1806: + 1805: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -8,50 - 1807: + 1806: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -10,50 - 1808: + 1807: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -10,49 - 1809: + 1808: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -11,49 - 1810: + 1809: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -11,50 - 1811: + 1810: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -12,50 - 1812: + 1811: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -12,49 - 1813: + 1812: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -13,49 - 1814: + 1813: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -13,50 - 1815: + 1814: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -14,50 - 1816: + 1815: color: '#A49F9B76' id: FullTileOverlayGreyscale coordinates: -15,50 - 1837: + 1836: color: '#A4BF9BEC' id: Bushi3 coordinates: -12.928902,63.97351 - 1838: + 1837: color: '#A4BF9BEC' id: Bushi3 coordinates: -11.678902,63.864136 - 1912: + 1911: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -14,43 - 1913: + 1912: color: '#52B4E996' id: QuarterTileOverlayGreyscale270 coordinates: -15,42 - 1914: + 1913: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -18,46 - 1915: + 1914: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -18,45 - 1916: + 1915: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -23,46 - 1917: + 1916: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -24,39 - 1918: + 1917: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -20,43 - 1919: + 1918: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,41 - 1920: + 1919: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -13,40 - 1921: + 1920: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -7,44 - 1922: + 1921: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -7,40 - 1923: + 1922: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -6,38 - 1924: + 1923: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,37 - 1925: + 1924: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -26,45 - 1926: + 1925: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -29,45 - 1927: + 1926: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -28,41 - 1928: + 1927: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -26,43 - 1929: + 1928: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -27,50 - 1930: + 1929: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -18,49 - 1931: + 1930: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -13,48 - 1932: + 1931: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -10,46 - 1958: + 1957: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -4,55 - 1959: + 1958: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -5,54 - 1960: + 1959: color: '#0000D3FF' id: WarnFull coordinates: -32,62 - 1978: + 1977: color: '#FFFFFF98' id: Flowerspv3 coordinates: -2.678711,52.385723 - 1979: + 1978: color: '#FFFFFF98' id: Bushi2 coordinates: -2.741211,53.6201 - 1980: + 1979: color: '#FFFFFF98' id: Bushi2 coordinates: -2.944336,54.1826 - 1981: + 1980: color: '#FFFFFF98' id: Bushd3 coordinates: -2.866211,51.8701 - 1982: + 1981: color: '#FFFFFF98' id: Bushd3 coordinates: -3.100586,53.073223 - 1983: + 1982: color: '#FFFFFF12' id: FullTileOverlayGreyscale coordinates: -6,59 - 1984: + 1983: color: '#FFFFFF12' id: FullTileOverlayGreyscale coordinates: -7,59 - 1985: + 1984: color: '#FFFFFF41' id: FullTileOverlayGreyscale coordinates: -7,58 - 1986: + 1985: color: '#FFFFFF41' id: FullTileOverlayGreyscale coordinates: -6,58 - 1987: + 1986: color: '#FFFFFF60' id: FullTileOverlayGreyscale coordinates: -7,57 - 1988: + 1987: color: '#FFFFFF60' id: FullTileOverlayGreyscale coordinates: -6,57 - 1989: + 1988: color: '#FFFFFF85' id: FullTileOverlayGreyscale coordinates: -7,56 - 1990: + 1989: color: '#FFFFFF85' id: FullTileOverlayGreyscale coordinates: -6,56 - 2067: + 2066: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -32,51 - 2069: + 2068: cleanable: True color: '#FFFFFFFF' id: DirtMedium @@ -3952,267 +3952,267 @@ entities: color: '#D4D4D4FF' id: DirtHeavy coordinates: 23,47 - 1991: + 1990: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 15,50 - 1992: + 1991: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 16,50 - 1993: + 1992: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 17,50 - 1994: + 1993: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 17,51 - 1995: + 1994: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 17,52 - 1996: + 1995: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 16,52 - 1997: + 1996: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 15,52 - 1998: + 1997: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 15,51 - 1999: + 1998: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 14,52 - 2000: + 1999: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 13,51 - 2001: + 2000: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 14,50 - 2002: + 2001: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 18,50 - 2003: + 2002: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 19,51 - 2004: + 2003: color: '#7900009C' id: FullTileOverlayGreyscale coordinates: 18,52 - 2005: + 2004: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 16,53 - 2006: + 2005: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 15,53 - 2007: + 2006: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 13,52 - 2008: + 2007: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 19,52 - 2009: + 2008: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 19,50 - 2010: + 2009: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 13,50 - 2011: + 2010: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 17,53 - 2012: + 2011: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 14,47 - 2013: + 2012: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 14,48 - 2014: + 2013: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 15,48 - 2015: + 2014: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 15,47 - 2016: + 2015: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 16,47 - 2017: + 2016: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 16,48 - 2018: + 2017: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 17,48 - 2019: + 2018: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 17,47 - 2020: + 2019: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 18,47 - 2021: + 2020: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 18,48 - 2022: + 2021: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 15,49 - 2023: + 2022: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 17,49 - 2024: + 2023: color: '#7900003C' id: FullTileOverlayGreyscale coordinates: 15,46 - 2025: + 2024: color: '#FF4C63FF' id: Flowerspv2 coordinates: 11,52 - 2026: + 2025: color: '#FF4C63FF' id: Flowerspv2 coordinates: 17,55 - 2027: + 2026: color: '#FF4C63FF' id: Flowerspv2 coordinates: 21,51 - 2028: + 2027: color: '#FF4C63FF' id: Flowersy2 coordinates: 10,52 - 2029: + 2028: color: '#FF4C63FF' id: Flowersy2 coordinates: 17,55 - 2030: + 2029: color: '#FF8263FF' id: Flowersy4 coordinates: 15,55 - 2031: + 2030: color: '#FF8263FF' id: Flowersy4 coordinates: 11,51 - 2032: + 2031: color: '#FF8263FF' id: Flowersbr2 coordinates: 21,52 - 2033: + 2032: color: '#FF3FA7FF' id: Flowerspv3 coordinates: 16,55 - 2034: + 2033: color: '#FF3FA7FF' id: Flowerspv3 coordinates: 21,52 - 2035: + 2034: color: '#CA3FA7FF' id: Flowersy2 coordinates: 22,52 - 2036: + 2035: color: '#FF9F76FF' id: Flowersbr2 coordinates: 21,51 - 2037: + 2036: color: '#FF9F76FF' id: Flowersbr2 coordinates: 11,52 - 2038: + 2037: color: '#FF9F76FF' id: Flowerspv2 coordinates: 11,51 - 2039: + 2038: color: '#FF9F7679' id: Bushi1 coordinates: 10.600306,51.86295 - 2040: + 2039: color: '#FF9F7679' id: Bushi1 coordinates: 11.225306,51.4567 - 2041: + 2040: color: '#FF9F7679' id: Bushi1 coordinates: 15.522181,54.86295 - 2042: + 2041: color: '#FF9F7679' id: Bushi1 coordinates: 16.475306,55.11295 - 2043: + 2042: color: '#FF9F7679' id: Bushi1 coordinates: 21.537806,51.847324 - 2044: + 2043: color: '#FF9F7679' id: Bushi1 coordinates: 20.86593,51.441074 - 2045: + 2044: color: '#FF9F7679' id: Bushi1 coordinates: 21.194056,50.7692 - 2046: + 2045: color: '#FF9F7679' id: Bushi1 coordinates: 9.740931,52.222324 - 2047: + 2046: color: '#FF9F7679' id: Flowersbr1 coordinates: 10.475306,51.909824 - 2048: + 2047: color: '#FF9F7679' id: Flowersbr1 coordinates: 15.522181,54.972324 - 2049: + 2048: color: '#FF9F7679' id: Flowersbr1 coordinates: 16.537806,54.9567 - 2050: + 2049: color: '#FF9F7679' id: Flowersbr1 coordinates: 21.069056,51.42545 - 2051: + 2050: color: '#FF9F7679' id: Flowersbr1 coordinates: 21.537806,52.0192 - 2052: + 2051: color: '#FF9F7679' id: Bushi4 coordinates: 10.772181,50.8942 - 2053: + 2052: color: '#FF9F7679' id: Bushi4 coordinates: 22.02218,52.222324 - 2054: + 2053: color: '#FF9F7679' id: Bushi4 coordinates: 17.162806,54.941074 - 2055: + 2054: color: '#FF9F7679' id: Bushi4 coordinates: 14.803431,54.784824 - 2056: + 2055: color: '#FF9F7679' id: Bushi4 coordinates: 11.209681,52.159824 @@ -4286,705 +4286,705 @@ entities: color: '#D4D4D4FF' id: DirtMedium coordinates: -37,32 - 1091: + 1090: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -40,37 - 1092: + 1091: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -40,38 - 1093: + 1092: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -39,38 - 1094: + 1093: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -39,37 - 1095: + 1094: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -38,37 - 1096: + 1095: color: '#3AB3DAFF' id: FullTileOverlayGreyscale coordinates: -38,38 - 1097: + 1096: color: '#474F52FF' id: FullTileOverlayGreyscale coordinates: -46,37 - 1098: + 1097: color: '#474F52FF' id: FullTileOverlayGreyscale coordinates: -46,38 - 1099: + 1098: color: '#474F52FF' id: FullTileOverlayGreyscale coordinates: -46,39 - 1100: + 1099: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -48,40 - 1101: + 1100: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -48,41 - 1102: + 1101: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -47,41 - 1103: + 1102: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -46,41 - 1104: + 1103: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -46,42 - 1105: + 1104: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -47,42 - 1106: + 1105: color: '#C3AF3DD3' id: FullTileOverlayGreyscale coordinates: -48,42 - 1127: + 1126: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,40 - 1128: + 1127: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,41 - 1129: + 1128: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,40 - 1130: + 1129: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,41 - 1272: + 1271: color: '#334E6DC8' id: Flowersy2 coordinates: -33,56 - 1274: + 1273: color: '#334E6DC8' id: Flowersy2 coordinates: -34,58 - 1276: + 1275: color: '#334E6DC8' id: bushsnowa1 coordinates: -33,57 - 1277: + 1276: color: '#334E6DC8' id: Bushm3 coordinates: -33,58 - 1278: + 1277: color: '#319F6DC8' id: bushsnowa3 coordinates: -33.4845,56.795963 - 1279: + 1278: color: '#319F6DC8' id: Flowerspv3 coordinates: -32.31263,57.358463 - 1281: + 1280: color: '#319F6DC8' id: Flowersy2 coordinates: -33.812626,57.202213 - 1282: + 1281: color: '#319F6DC8' id: Flowersy2 coordinates: -33.51575,56.452213 - 1284: + 1283: color: '#319F6D5A' id: Grasse2 coordinates: -33.687626,56.139713 - 1285: + 1284: color: '#319F6D5A' id: Grasse2 coordinates: -34.125126,55.99909 - 1287: + 1286: color: '#319F6D5A' id: Grasse2 coordinates: -32.562626,55.920963 - 1288: + 1287: color: '#319F6D5A' id: Grasse2 coordinates: -33.70325,58.108463 - 1292: + 1291: color: '#319F6D5A' id: Grassd1 coordinates: -32.297005,57.84284 - 1293: + 1292: color: '#319F6DC0' id: Grassd1 coordinates: -32.70325,56.420963 - 1294: + 1293: color: '#319F6DC0' id: Grassd1 coordinates: -33.89075,57.358463 - 1295: + 1294: color: '#319F6DF2' id: Bushj2 coordinates: -33.625126,56.295963 - 1296: + 1295: color: '#319F6DF2' id: Bushk1 coordinates: -32.15638,57.56159 - 1297: + 1296: color: '#319F6DF2' id: Bushl1 coordinates: -33.7345,57.608463 - 1299: + 1298: color: '#31B8ABB1' id: Flowerspv1 coordinates: -32.172005,56.31159 - 1300: + 1299: color: '#31B8ABB1' id: Flowerspv1 coordinates: -34.14075,56.139713 - 1301: + 1300: color: '#31B8ABB1' id: Flowerspv1 coordinates: -32.28138,58.077213 - 1359: + 1358: color: '#52B4E918' id: FullTileOverlayGreyscale coordinates: -44,62 - 1398: + 1397: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -34,60 - 1399: + 1398: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -34,61 - 1400: + 1399: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -33,61 - 1401: + 1400: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -33,60 - 1406: + 1405: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -39,61 - 1407: + 1406: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -39,60 - 1408: + 1407: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -38,60 - 1409: + 1408: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -38,61 - 1410: + 1409: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -37,61 - 1411: + 1410: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -37,60 - 1412: + 1411: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -36,60 - 1413: + 1412: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -36,61 - 1414: + 1413: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -48,61 - 1415: + 1414: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -49,61 - 1416: + 1415: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -49,60 - 1417: + 1416: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -48,60 - 1418: + 1417: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,60 - 1419: + 1418: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,61 - 1420: + 1419: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,61 - 1421: + 1420: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,60 - 1422: + 1421: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,62 - 1423: + 1422: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,62 - 1424: + 1423: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,63 - 1425: + 1424: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,63 - 1435: + 1434: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -45,63 - 1436: + 1435: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -45,62 - 1437: + 1436: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,62 - 1438: + 1437: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,63 - 1444: + 1443: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,63 - 1445: + 1444: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,62 - 1446: + 1445: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,61 - 1447: + 1446: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,60 - 1448: + 1447: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,60 - 1449: + 1448: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,61 - 1450: + 1449: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -42,61 - 1451: + 1450: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -42,60 - 1452: + 1451: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -41,60 - 1453: + 1452: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -41,61 - 1454: + 1453: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -54,61 - 1455: + 1454: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -54,60 - 1456: + 1455: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -53,60 - 1457: + 1456: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -53,61 - 1458: + 1457: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -52,61 - 1459: + 1458: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -52,60 - 1460: + 1459: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -51,60 - 1461: + 1460: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -51,61 - 1463: + 1462: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -51,63 - 1464: + 1463: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -51,62 - 1465: + 1464: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -50,63 - 1466: + 1465: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -49,63 - 1472: + 1471: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -53,63 - 1473: + 1472: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -54,63 - 1474: + 1473: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -53,62 - 1479: + 1478: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -55,63 - 1482: + 1481: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -39,62 - 1483: + 1482: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -39,63 - 1484: + 1483: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -40,63 - 1485: + 1484: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -41,63 - 1492: + 1491: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -35,62 - 1493: + 1492: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -35,63 - 1494: + 1493: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -36,63 - 1495: + 1494: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -37,63 - 1502: + 1501: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -33,62 - 1503: + 1502: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -33,63 - 1513: + 1512: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -36,61 - 1514: + 1513: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -43,63 - 1515: + 1514: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -49,60 - 1520: + 1519: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -33,62 - 1521: + 1520: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -47,61 - 1522: + 1521: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -53,63 - 1523: + 1522: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -54,60 - 1524: + 1523: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -42,60 - 1525: + 1524: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,63 - 1527: + 1526: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -46,56 - 1817: + 1816: color: '#FFFFFFFF' id: Flowersy1 coordinates: -47.813503,50.67336 - 1818: + 1817: color: '#FFFFFFFF' id: Flowersy3 coordinates: -46.313503,51.032734 - 1819: + 1818: color: '#FFFFFFFF' id: Flowerspv1 coordinates: -47.001003,50.11086 - 1820: + 1819: color: '#FFFFFFFF' id: Flowerspv1 coordinates: -46.001003,50.01711 - 1821: + 1820: color: '#FFFFFFFF' id: Flowerspv1 coordinates: -47.89163,50.032734 - 1822: + 1821: color: '#FFFFFFFF' id: Flowerspv1 coordinates: -47.094753,51.11086 - 1823: + 1822: color: '#FFFFFFFF' id: Flowerspv1 coordinates: -48.063503,51.01711 - 1824: + 1823: color: '#FFFFFFFF' id: Flowersbr1 coordinates: -46.01663,50.79836 - 1825: + 1824: color: '#FFFFFFFF' id: Flowersbr1 coordinates: -47.04788,50.61086 - 1826: + 1825: color: '#FFFFFFFF' id: Flowersbr1 coordinates: -47.876003,50.095234 - 1827: + 1826: color: '#FFFFFFFF' id: Flowersbr1 coordinates: -47.532253,49.86086 - 1828: + 1827: color: '#FFFFFFFF' id: Flowersbr1 coordinates: -46.657253,50.07961 - 1961: + 1960: color: '#0000D3FF' id: WarnFull coordinates: -36,62 - 1962: + 1961: color: '#0000D3FF' id: WarnFull coordinates: -40,62 - 1963: + 1962: color: '#0000D3FF' id: WarnFull coordinates: -50,62 - 1964: + 1963: color: '#0000D3FF' id: WarnFull coordinates: -54,62 - 1973: + 1972: color: '#534F53FF' id: brush coordinates: -41,38 - 1974: + 1973: color: '#534F53FF' id: brush coordinates: -45,37 - 1975: + 1974: color: '#534F53FF' id: brush coordinates: -46,40 - 1976: + 1975: color: '#534F53FF' id: brush coordinates: -41,41 - 2064: + 2063: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -33,44 - 2065: + 2064: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -35,37 - 2066: + 2065: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -35,45 - 2068: + 2067: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -34,53 - 2076: + 2075: color: '#0F1637F2' id: largebrush coordinates: -54,59 - 2077: + 2076: color: '#A46106E9' id: Flowersbr1 coordinates: -54.87331,58.008385 - 2078: + 2077: color: '#A46106E9' id: Flowersbr1 coordinates: -54.15456,58.039635 - 2079: + 2078: color: '#A46106E9' id: Flowersbr1 coordinates: -55.076435,57.99276 - 2080: + 2079: color: '#A46106E9' id: Flowersy3 coordinates: -53.84206,58.11776 - 2081: + 2080: color: '#A46106E9' id: Flowersy3 coordinates: -54.638935,57.977135 - 2082: + 2081: color: '#A46106E9' id: Flowersy4 coordinates: -55.045185,58.02401 - 2083: + 2082: color: '#A46106E9' id: Flowerspv2 coordinates: -53.90456,58.008385 - 2084: + 2083: color: '#82828F5D' id: Bushi1 coordinates: -55.15456,57.83651 - 2085: + 2084: color: '#82828F5D' id: Bushi1 coordinates: -54.52956,57.852135 - 2086: + 2085: color: '#82828F5D' id: Bushi1 coordinates: -53.84206,57.80526 - 2087: + 2086: color: '#82828F5D' id: Bushi1 coordinates: -53.951435,58.133385 - 2088: + 2087: color: '#82828F5D' id: Bushi1 coordinates: -54.826435,58.227135 - 2089: + 2088: color: '#82828F5D' id: Bushi1 coordinates: -55.076435,58.21151 - 2090: + 2089: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -55,57 - 2091: + 2090: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -54,57 - 2092: + 2091: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -54,56 - 2093: + 2092: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -55,56 - 2094: + 2093: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -53,56 - 2095: + 2094: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -53,57 - 2096: + 2095: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -53,58 - 2097: + 2096: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -53,55 - 2098: + 2097: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -54,55 - 2099: + 2098: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -55,55 - 2100: + 2099: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -56,55 - 2101: + 2100: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -57,55 - 2102: + 2101: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -57,56 - 2103: + 2102: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -56,56 - 2104: + 2103: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -56,57 - 2105: + 2104: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -57,57 - 2106: + 2105: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -57,58 - 2107: + 2106: color: '#534E76C8' id: FullTileOverlayGreyscale coordinates: -56,58 @@ -5312,317 +5312,317 @@ entities: color: '#D4D4D4FF' id: safe coordinates: -40,12 - 1107: + 1106: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,29 - 1108: + 1107: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,30 - 1109: + 1108: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -39,30 - 1110: + 1109: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -38,30 - 1111: + 1110: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -39,31 - 1112: + 1111: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,31 - 1113: + 1112: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,27 - 1114: + 1113: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,26 - 1115: + 1114: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,28 - 1116: + 1115: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,28 - 1117: + 1116: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,29 - 1118: + 1117: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,29 - 1119: + 1118: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,27 - 1120: + 1119: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,26 - 1121: + 1120: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,24 - 1122: + 1121: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,24 - 1123: + 1122: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,23 - 1124: + 1123: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,23 - 1125: + 1124: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,22 - 1126: + 1125: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,22 - 1131: + 1130: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,5 - 1132: + 1131: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,6 - 1133: + 1132: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -39,6 - 1134: + 1133: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,7 - 1135: + 1134: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,8 - 1136: + 1135: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -48,9 - 1137: + 1136: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -47,9 - 1138: + 1137: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,9 - 1139: + 1138: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,10 - 1140: + 1139: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,11 - 1141: + 1140: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -46,12 - 1142: + 1141: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,12 - 1143: + 1142: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,11 - 1144: + 1143: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -40,10 - 1145: + 1144: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -39,10 - 1146: + 1145: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -39,11 - 1147: + 1146: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -38,11 - 1148: + 1147: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,11 - 1149: + 1148: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -37,10 - 1150: + 1149: color: '#604628CA' id: FullTileOverlayGreyscale coordinates: -38,10 - 1151: + 1150: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -48,5 - 1152: + 1151: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -47,6 - 1153: + 1152: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -47,5 - 1154: + 1153: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -47,4 - 1155: + 1154: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -47,3 - 1156: + 1155: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -48,6 - 1157: + 1156: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -48,7 - 1158: + 1157: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -47,7 - 1159: + 1158: color: '#9B3FABB1' id: FullTileOverlayGreyscale coordinates: -46,7 - 1215: + 1214: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -40,27 - 1216: + 1215: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -40,26 - 1217: + 1216: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -40,25 - 1218: + 1217: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -39,25 - 1219: + 1218: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -39,26 - 1220: + 1219: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -38,26 - 1221: + 1220: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -38,25 - 1222: + 1221: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -38,27 - 1223: + 1222: color: '#EFF2F595' id: FullTileOverlayGreyscale coordinates: -38,28 - 1307: + 1306: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -39,25 - 1308: + 1307: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,27 - 1309: + 1308: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -38,26 - 1310: + 1309: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -39,26 - 1311: + 1310: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,26 - 1312: + 1311: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,25 - 1313: + 1312: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -38,25 - 1314: + 1313: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -38,27 - 1315: + 1314: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -38,28 - 1966: + 1965: color: '#534F53FF' id: brush coordinates: -41,11 - 1967: + 1966: color: '#534F53FF' id: brush coordinates: -41,6 - 1968: + 1967: color: '#534F53FF' id: brush coordinates: -46,5 - 1969: + 1968: color: '#534F53FF' id: brush coordinates: -45,11 - 1970: + 1969: color: '#534F53FF' id: brush coordinates: -45,23 - 1971: + 1970: color: '#534F53FF' id: brush coordinates: -45,27 - 1972: + 1971: color: '#534F53FF' id: brush coordinates: -41,30 @@ -6016,233 +6016,233 @@ entities: color: '#D4D4D4FF' id: Dirt coordinates: -2,16 - 993: + 992: color: '#D4D4D496' id: Flowerspv3 coordinates: -6,4 - 996: + 995: color: '#DE3A3A96' id: Flowersy1 coordinates: -5,4 - 999: + 998: color: '#DE3A3A96' id: Flowersy1 coordinates: -2,4 - 1000: + 999: color: '#DEF23A96' id: Flowersbr2 coordinates: -4,4 - 1001: + 1000: color: '#DEF23A96' id: Flowersbr2 coordinates: -1,4 - 1003: + 1002: color: '#DE00C096' id: Flowersy1 coordinates: -3,4 - 1005: + 1004: color: '#6FF84A96' id: Flowersy1 coordinates: -3.50741,4.0641594 - 1006: + 1005: color: '#6FF84A96' id: Flowersy1 coordinates: -5.523035,3.9860344 - 1007: + 1006: color: '#6FF84A96' id: Flowersy1 coordinates: -1.47616,3.9547844 - 1010: + 1009: color: '#66B5D3CD' id: Flowersbr2 coordinates: -4.304285,4.0329094 - 1011: + 1010: color: '#66B5D3CD' id: Flowersbr2 coordinates: -2.41366,4.0485344 - 1028: + 1027: color: '#536250CA' id: Rock05 coordinates: -3.081524,0.038562536 - 1030: + 1029: color: '#536250CA' id: Rock05 coordinates: -2.097149,0.16356254 - 1160: + 1159: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -1,12 - 1161: + 1160: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -1,14 - 1163: + 1162: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -2,13 - 1165: + 1164: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -2,15 - 1166: + 1165: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -4,13 - 1167: + 1166: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -5,12 - 1168: + 1167: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -5,14 - 1169: + 1168: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -6,13 - 1170: + 1169: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -4,15 - 1171: + 1170: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -6,15 - 1172: + 1171: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -8,13 - 1173: + 1172: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -9,12 - 1174: + 1173: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -9,14 - 1175: + 1174: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -10,13 - 1176: + 1175: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -8,15 - 1177: + 1176: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -10,15 - 1178: + 1177: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -9,10 - 1179: + 1178: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -8,11 - 1180: + 1179: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -10,11 - 1181: + 1180: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -9,8 - 1182: + 1181: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -8,9 - 1188: + 1187: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -13,14 - 1189: + 1188: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -12,15 - 1190: + 1189: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -14,13 - 1191: + 1190: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -13,12 - 1192: + 1191: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -14,11 - 1193: + 1192: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -13,10 - 1194: + 1193: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -12,11 - 1195: + 1194: color: '#79150096' id: FullTileOverlayGreyscale coordinates: -12,13 - 1196: + 1195: cleanable: True color: '#79150096' id: DirtHeavy coordinates: -12,13 - 1197: + 1196: cleanable: True color: '#79150096' id: DirtHeavy coordinates: -2,15 - 1198: + 1197: cleanable: True color: '#79150096' id: DirtLight coordinates: -8,11 - 1199: + 1198: cleanable: True color: '#79150096' id: DirtMedium coordinates: -1,12 - 1200: + 1199: cleanable: True color: '#79150096' id: DirtHeavy coordinates: -9,14 - 1201: + 1200: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -10,12 - 1203: + 1202: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,14 - 1208: + 1207: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -13,19 - 1211: + 1210: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -7,17 - 1934: + 1933: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -6,13 - 1965: + 1964: color: '#0000D3FF' id: WarnFull coordinates: -29,9 - 2074: + 2073: color: '#000000FF' id: WarnFull coordinates: -15,8 - 2075: + 2074: color: '#000000FF' id: WarnFull coordinates: -15,7 @@ -6550,279 +6550,283 @@ entities: color: '#D4D4D4FF' id: DirtMedium coordinates: 14,-23 - 1014: + 1013: color: '#66B5D3CD' id: Flowersbr2 coordinates: 0.7934761,-4.977062 - 1017: + 1016: color: '#53625069' id: Bushi3 coordinates: 3.699726,-1.2270625 - 1018: + 1017: color: '#53625069' id: Bushi3 coordinates: 4.152851,-1.3364375 - 1019: + 1018: color: '#536250CA' id: Bushl4 coordinates: 4.918476,-0.75831246 - 1020: + 1019: color: '#536250CA' id: Bushl4 coordinates: 5.215351,-1.0395625 - 1021: + 1020: color: '#536250CA' id: Bushm1 coordinates: 4.762226,-1.3989375 - 1022: + 1021: color: '#536250CA' id: Bushm4 coordinates: 5.168476,-1.5864375 - 1023: + 1022: color: '#536250CA' id: Rock05 coordinates: 5.027851,-2.8208125 - 1024: + 1023: color: '#536250CA' id: Rock05 coordinates: 5.059101,-2.1801875 - 1026: + 1025: color: '#536250CA' id: Rock05 coordinates: 2.324726,-0.10206249 - 1027: + 1026: color: '#536250CA' id: Rock05 coordinates: 3.246601,-0.07081249 - 1044: + 1043: color: '#536250CA' id: grasssnowc2 coordinates: 2.918476,-0.3208125 - 1046: + 1045: color: '#536250CA' id: grasssnowc2 coordinates: 4.809101,-1.1489375 - 1047: + 1046: color: '#536250CA' id: grasssnowc2 coordinates: 5.340351,-0.69581246 - 1048: + 1047: color: '#536250CA' id: grasssnowc2 coordinates: 5.184101,-1.3989375 - 1049: + 1048: color: '#536250CA' id: grasssnowc2 coordinates: 4.590351,-1.6958125 - 1050: + 1049: color: '#536250CA' id: grasssnowc2 coordinates: 4.621601,-2.3989375 - 1051: + 1050: color: '#536250CA' id: grasssnowc2 coordinates: 5.324726,-3.2426875 - 1052: + 1051: color: '#536250CA' id: grasssnowc2 coordinates: 4.637226,-3.2426875 - 1053: + 1052: color: '#536250CA' id: grasssnowc2 coordinates: 5.199726,-2.1801875 - 1055: + 1054: color: '#536250CA' id: grasssnow05 coordinates: 4.074726,-2.9614375 - 1060: + 1059: color: '#536250CA' id: Grasse3 coordinates: 1.9966011,-0.039562494 - 1062: + 1061: color: '#536250CA' id: Flowersy1 coordinates: 3.027851,-1.0551875 - 1063: + 1062: color: '#536250CA' id: Flowersy1 coordinates: 3.949726,-2.0083125 - 1067: + 1066: color: '#C362CACA' id: Flowersy3 coordinates: 0.9184761,-3.9770625 - 1069: + 1068: color: '#C362CACA' id: Flowersy3 coordinates: 2.996601,-1.0083125 - 1073: + 1072: color: '#4ADFCACA' id: Flowersy1 coordinates: 4.980976,-3.9770625 - 1076: + 1075: color: '#4ADFCACA' id: Grasse2 coordinates: 3.934101,-3.1801875 - 1077: + 1076: color: '#4ADFCACA' id: Grasse2 coordinates: 3.980976,-3.9458125 - 1078: + 1077: color: '#4ADFCACA' id: Flowerspv1 coordinates: 3.949726,-3.5551875 - 1079: + 1078: color: '#4ADFCACA' id: Bushi2 coordinates: 1.0747261,-5.039562 - 1550: + 1549: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 0,-28 - 1551: + 1550: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 1,-28 - 1552: + 1551: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 2,-28 - 1553: + 1552: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 3,-28 - 1554: + 1553: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 4,-28 - 1555: + 1554: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-28 - 1556: + 1555: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-27 - 1557: + 1556: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-26 - 1558: + 1557: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 6,-28 - 1559: + 1558: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 6,-29 - 1560: + 1559: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-29 - 1561: + 1560: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 4,-29 - 1562: + 1561: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 3,-29 - 1563: + 1562: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 2,-29 - 1564: + 1563: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 1,-29 - 1565: + 1564: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 0,-29 - 1566: + 1565: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 0,-30 - 1567: + 1566: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 0,-31 - 1568: + 1567: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 1,-31 - 1569: + 1568: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 1,-30 - 1570: + 1569: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 2,-30 - 1571: + 1570: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 2,-31 - 1572: + 1571: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 3,-31 - 1573: + 1572: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 3,-30 - 1574: + 1573: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 4,-30 - 1575: + 1574: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 4,-31 - 1576: + 1575: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-31 - 1577: + 1576: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 5,-30 - 1578: + 1577: color: '#F5B26637' id: FullTileOverlayGreyscale coordinates: 6,-30 - 1953: + 1952: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 5,-29 - 1954: + 1953: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 0,-28 - 1955: + 1954: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 3,-31 - 1956: + 1955: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 16,-21 - 1957: + 1956: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 23,-26 - 2108: + 2107: color: '#FFFFFFFF' id: Grassc1 coordinates: 0,-4 - 2109: + 2108: color: '#D3BC37C8' id: Grassc2 coordinates: 0,-3 + 2228: + color: '#A46106FF' + id: Remains + coordinates: 23,-30 -1,-1: 231: color: '#63626C98' @@ -7319,368 +7323,368 @@ entities: color: '#D4D4D4FF' id: DirtHeavy coordinates: -28,-7 - 1013: + 1012: color: '#66B5D3CD' id: Flowersbr2 coordinates: -4.472149,-4.8676877 - 1015: + 1014: color: '#53625069' id: Bushi3 coordinates: -3.972149,-1.1958125 - 1016: + 1015: color: '#53625069' id: Bushi3 coordinates: -3.503399,-1.2270625 - 1029: + 1028: color: '#536250CA' id: Rock05 coordinates: -2.112774,-0.08643749 - 1031: + 1030: color: '#536250CA' id: Rock05 coordinates: -5.362774,-2.2583125 - 1032: + 1031: color: '#536250CA' id: Rock05 coordinates: -5.034649,-2.9145625 - 1033: + 1032: color: '#536250CA' id: Bushi3 coordinates: -4.862774,-1.0083125 - 1034: + 1033: color: '#536250CA' id: Bushj1 coordinates: -4.909649,-1.3676875 - 1035: + 1034: color: '#536250CA' id: Rock01 coordinates: -4.940899,-1.1645625 - 1036: + 1035: color: '#536250CA' id: Rock01 coordinates: -4.940899,-1.8676875 - 1037: + 1036: color: '#536250CA' id: grasssnowc2 coordinates: -5.159649,-0.97706246 - 1038: + 1037: color: '#536250CA' id: grasssnowc2 coordinates: -4.706524,-0.93018746 - 1039: + 1038: color: '#536250CA' id: grasssnowc2 coordinates: -5.284649,-1.5864375 - 1040: + 1039: color: '#536250CA' id: grasssnowc2 coordinates: -4.737774,-2.6801875 - 1041: + 1040: color: '#536250CA' id: grasssnowc2 coordinates: -5.222149,-3.3208125 - 1042: + 1041: color: '#536250CA' id: grasssnowc2 coordinates: -4.706524,-3.3833125 - 1043: + 1042: color: '#536250CA' id: grasssnowc2 coordinates: -2.081524,-0.1333125 - 1054: + 1053: color: '#536250CA' id: grasssnow03 coordinates: -3.925274,-2.9770625 - 1056: + 1055: color: '#536250CA' id: grasssnow05 coordinates: -1.0971489,-4.8989377 - 1057: + 1056: color: '#536250CA' id: grasssnow10 coordinates: -4.003399,-4.133312 - 1058: + 1057: color: '#536250CA' id: Grasse3 coordinates: -2.675274,-0.07081249 - 1059: + 1058: color: '#536250CA' id: Grasse3 coordinates: -3.159649,-0.2739375 - 1064: + 1063: color: '#536250CA' id: Flowersy1 coordinates: -4.003399,-1.8989375 - 1065: + 1064: color: '#536250CA' id: Flowersy1 coordinates: -3.081524,-0.94581246 - 1066: + 1065: color: '#C362CACA' id: Flowersy3 coordinates: -0.034648955,-1.1489375 - 1068: + 1067: color: '#C362CACA' id: Flowersy3 coordinates: -0.23777395,-5.039562 - 1070: + 1069: color: '#C362CACA' id: Flowersy3 coordinates: -5.034649,-4.070812 - 1071: + 1070: color: '#4ADFCACA' id: Flowersy1 coordinates: -4.050274,-4.148937 - 1072: + 1071: color: '#4ADFCACA' id: Flowersy1 coordinates: -5.159649,-4.992687 - 1074: + 1073: color: '#4ADFCACA' id: Grasse2 coordinates: -3.925274,-5.023937 - 1075: + 1074: color: '#4ADFCACA' id: Grasse2 coordinates: -0.98777395,-4.6020627 - 1269: + 1268: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -31,-24 - 1270: + 1269: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -30,-24 - 1271: + 1270: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -30,-25 - 1321: + 1320: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -32,-15 - 1337: + 1336: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -29,-11 - 1338: + 1337: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -29,-11 - 1535: + 1534: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: -18,-25 - 1536: + 1535: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale coordinates: -18,-24 - 1537: + 1536: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -17,-24 - 1538: + 1537: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -16,-24 - 1539: + 1538: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -15,-25 - 1540: + 1539: color: '#EFB34196' id: HalfTileOverlayGreyscale coordinates: -14,-25 - 1541: + 1540: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -13,-25 - 1542: + 1541: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -13,-26 - 1543: + 1542: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -13,-27 - 1544: + 1543: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: -13,-28 - 1545: + 1544: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -13,-29 - 1546: + 1545: color: '#EFB34196' id: QuarterTileOverlayGreyscale90 coordinates: -16,-25 - 1547: + 1546: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -14,-29 - 1548: + 1547: color: '#EFB34196' id: StandClear coordinates: -14,-31 - 1549: + 1548: color: '#EFB34196' id: StandClear coordinates: -13,-31 - 1581: + 1580: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -22,-28 - 1582: + 1581: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -21,-28 - 1583: + 1582: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -20,-28 - 1584: + 1583: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -19,-28 - 1585: + 1584: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -18,-28 - 1586: + 1585: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -16,-30 - 1587: + 1586: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -17,-30 - 1588: + 1587: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -18,-30 - 1589: + 1588: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -19,-30 - 1590: + 1589: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -22,-31 - 1591: + 1590: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -21,-31 - 1592: + 1591: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -20,-31 - 1593: + 1592: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -23,-31 - 1594: + 1593: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -23,-30 - 1595: + 1594: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -23,-29 - 1596: + 1595: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -23,-28 - 1597: + 1596: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 coordinates: -20,-30 - 1600: + 1599: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -18,-32 - 1602: + 1601: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 coordinates: -16,-32 - 1607: + 1606: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -17,-32 - 1618: + 1617: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: -15,-29 - 1619: + 1618: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: -17,-27 - 1620: + 1619: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -18,-26 - 1621: + 1620: color: '#EFB34196' id: QuarterTileOverlayGreyscale270 coordinates: -17,-26 - 1886: + 1885: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-29 - 1887: + 1886: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-28 - 1888: + 1887: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-27 - 1889: + 1888: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-26 - 1890: + 1889: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-26 - 1891: + 1890: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-25 - 1892: + 1891: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-25 - 1935: + 1934: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -17,-15 - 1936: + 1935: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -10,-19 - 1937: + 1936: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,-28 - 1946: + 1945: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -8,-32 - 2110: + 2109: color: '#D3BC37C8' id: Flowersbr1 coordinates: -1,-4 @@ -7782,333 +7786,333 @@ entities: color: '#D4D4D4FF' id: DirtLight coordinates: -32,-36 - 1579: + 1578: color: '#A1562B7F' id: FullTileOverlayGreyscale coordinates: -9,-33 - 1598: + 1597: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 coordinates: -16,-35 - 1599: + 1598: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale coordinates: -23,-33 - 1601: + 1600: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 coordinates: -23,-35 - 1603: + 1602: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -22,-33 - 1604: + 1603: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -21,-33 - 1605: + 1604: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -20,-33 - 1606: + 1605: color: '#52B4E996' id: HalfTileOverlayGreyscale coordinates: -19,-33 - 1608: + 1607: color: '#52B4E996' id: QuarterTileOverlayGreyscale coordinates: -18,-33 - 1609: + 1608: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -22,-35 - 1610: + 1609: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -21,-35 - 1611: + 1610: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -20,-35 - 1612: + 1611: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -19,-35 - 1613: + 1612: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -18,-35 - 1614: + 1613: color: '#52B4E996' id: HalfTileOverlayGreyscale180 coordinates: -17,-35 - 1615: + 1614: color: '#52B4E996' id: HalfTileOverlayGreyscale270 coordinates: -23,-34 - 1616: + 1615: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -16,-34 - 1617: + 1616: color: '#52B4E996' id: HalfTileOverlayGreyscale90 coordinates: -16,-33 - 1860: + 1859: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-40 - 1861: + 1860: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-41 - 1862: + 1861: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-41 - 1863: + 1862: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-40 - 1864: + 1863: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -9,-40 - 1865: + 1864: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -8,-40 - 1866: + 1865: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -7,-40 - 1867: + 1866: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -6,-40 - 1868: + 1867: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -6,-41 - 1869: + 1868: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -6,-42 - 1870: + 1869: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -6,-43 - 1871: + 1870: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -7,-43 - 1872: + 1871: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -7,-42 - 1873: + 1872: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -7,-41 - 1874: + 1873: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -8,-41 - 1875: + 1874: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -9,-41 - 1876: + 1875: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -9,-42 - 1877: + 1876: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -8,-42 - 1878: + 1877: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -8,-43 - 1879: + 1878: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -9,-43 - 1880: + 1879: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-43 - 1881: + 1880: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-44 - 1882: + 1881: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-44 - 1883: + 1882: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-43 - 1884: + 1883: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-42 - 1885: + 1884: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -10,-42 - 1893: + 1892: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -9,-33 - 1894: + 1893: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -8,-33 - 1895: + 1894: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -13,-36 - 1896: + 1895: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -14,-36 - 1897: + 1896: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -11,-39 - 1898: + 1897: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -13,-43 - 1899: + 1898: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -14,-43 - 1900: + 1899: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -12,-48 - 1901: + 1900: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -12,-49 - 1902: + 1901: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -19,-50 - 1903: + 1902: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: -20,-50 - 1938: + 1937: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,-34 - 1939: + 1938: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -10,-38 - 1940: + 1939: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -3,-34 - 1945: + 1944: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -2,-40 - 1947: + 1946: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -14,-41 - 1948: + 1947: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -18,-48 - 1949: + 1948: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -9,-49 - 1950: + 1949: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -7,-41 - 1951: + 1950: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -11,-42 - 1952: + 1951: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -8,-43 - 1977: + 1976: color: '#000000FF' id: largebrush coordinates: -16,-64 - 2111: + 2110: color: '#FFFFFFFF' id: Box coordinates: -2,-48 - 2112: + 2111: color: '#FFFFFFFF' id: Box coordinates: -1,-48 - 2115: + 2114: color: '#FFFFFFFF' id: Box coordinates: -1,-49 - 2116: + 2115: color: '#FFFFFFFF' id: Box coordinates: -2,-49 - 2117: + 2116: color: '#FFFFFFFF' id: Box coordinates: -2,-50 - 2118: + 2117: color: '#FFFFFFFF' id: Box coordinates: -1,-50 - 2121: + 2120: color: '#FFFFFFFF' id: Box coordinates: -1,-51 - 2122: + 2121: color: '#FFFFFFFF' id: Box coordinates: -2,-51 - 2123: + 2122: color: '#FFFFFFFF' id: Box coordinates: -2,-52 - 2124: + 2123: color: '#FFFFFFFF' id: Box coordinates: -1,-52 - 2127: + 2126: color: '#FFFFFFFF' id: Box coordinates: -1,-53 - 2128: + 2127: color: '#FFFFFFFF' id: Box coordinates: -2,-53 - 2129: + 2128: color: '#FFFFFFFF' id: StandClear coordinates: -3,-48 - 2130: + 2129: color: '#FFFFFFFF' id: StandClear coordinates: -3,-49 @@ -8506,324 +8510,324 @@ entities: color: '#D4D4D4FF' id: DirtHeavy coordinates: -38,-14 - 1225: + 1224: color: '#A4610696' id: Bot coordinates: -41,-19 - 1226: + 1225: color: '#A4610696' id: StandClearGreyscale coordinates: -51.983433,-2.585907 - 1229: + 1228: color: '#FFFFFFFF' id: Flowersy3 coordinates: -32.637337,-30.76102 - 1230: + 1229: color: '#2B000696' id: Grassa1 coordinates: -37.131832,-30.91727 - 1231: + 1230: color: '#2B000696' id: Grassa1 coordinates: -36.897457,-31.057896 - 1232: + 1231: color: '#2B000696' id: Grassa1 coordinates: -37.100582,-31.307896 - 1233: + 1232: color: '#FFFFFFFF' id: Bushh3 coordinates: -37.584957,-31.057896 - 1234: + 1233: color: '#FFFFFFFF' id: Bushh3 coordinates: -36.522457,-31.26102 - 1235: + 1234: color: '#FFFFFFFF' id: Rock06 coordinates: -36.319332,-30.54227 - 1236: + 1235: color: '#FFFFFFFF' id: Rock07 coordinates: -37.334957,-30.839146 - 1237: + 1236: color: '#FFFFFFFF' id: Rock07 coordinates: -37.225582,-31.69852 - 1238: + 1237: color: '#FFFFFFFF' id: Flowerspv2 coordinates: -37.569332,-29.16727 - 1239: + 1238: color: '#FFFFFFFF' id: Flowerspv2 coordinates: -36.272457,-29.464146 - 1240: + 1239: color: '#A7B56396' id: Flowersy1 coordinates: -37.678707,-29.88602 - 1242: + 1241: color: '#A7B563D6' id: Flowersbr2 coordinates: -37.819332,-31.339146 - 1243: + 1242: color: '#A7B563D6' id: Bushm2 coordinates: -37.116207,-29.432896 - 1246: + 1245: color: '#A7B563D6' id: Bushi2 coordinates: -35.866207,-31.120396 - 1247: + 1246: color: '#A7B563D6' id: Bushi4 coordinates: -37.944332,-29.089146 - 1248: + 1247: color: '#A7B563D6' id: Bushi4 coordinates: -35.850582,-28.82352 - 1249: + 1248: color: '#A7B563D6' id: Bushg3 coordinates: -38.038082,-30.276646 - 1251: + 1250: color: '#A7B563D6' id: Bushd3 coordinates: -37.834957,-31.995396 - 1252: + 1251: color: '#A7B563D6' id: Bushd3 coordinates: -36.725582,-28.807896 - 1253: + 1252: color: '#A7B563D6' id: grasssnow09 coordinates: -36.944332,-29.97977 - 1254: + 1253: color: '#A7B563D6' id: grasssnow12 coordinates: -36.084312,-30.01102 - 1255: + 1254: color: '#A7B563D6' id: grasssnow12 coordinates: -32.256187,-29.745396 - 1267: + 1266: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -36,-25 - 1268: + 1267: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -41,-27 - 1316: + 1315: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -42,-15 - 1317: + 1316: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -35,-13 - 1318: + 1317: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -41,-12 - 1319: + 1318: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -44,-18 - 1320: + 1319: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -42,-17 - 1322: + 1321: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -34,-14 - 1323: + 1322: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -37,-15 - 1324: + 1323: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -47,-5 - 1325: + 1324: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -53,-5 - 1326: + 1325: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -49,-4 - 1327: + 1326: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -52,-1 - 1328: + 1327: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtMedium coordinates: -39,-4 - 1329: + 1328: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -42,-4 - 1330: + 1329: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -41,-7 - 1331: + 1330: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -45,-10 - 1332: + 1331: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -45,-12 - 1333: + 1332: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -40,-13 - 1334: + 1333: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,-13 - 1335: + 1334: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -44,-14 - 1336: + 1335: cleanable: True angle: 3.141592653589793 rad color: '#FFFFFFFF' id: DirtLight coordinates: -43,-14 - 1339: + 1338: color: '#EFB3413E' id: Bushi2 coordinates: -35.378048,-30.828651 - 1340: + 1339: color: '#EFB3413E' id: Bushi2 coordinates: -35.487423,-31.219276 - 1341: + 1340: color: '#EFB3413E' id: Bushi2 coordinates: -35.081173,-31.203651 - 1342: + 1341: color: '#EFB341D6' id: Bushe2 coordinates: -35.518673,-31.344276 - 1343: + 1342: color: '#EFB341D6' id: Bushi1 coordinates: -35.549923,-30.672401 - 1344: + 1343: color: '#EFB3414A' id: Bushi1 coordinates: -34.64918,-30.922401 - 1345: + 1344: color: '#EFB3414A' id: Bushi1 coordinates: -34.68043,-31.188026 - 1346: + 1345: color: '#EFB3414A' id: Bushi1 coordinates: -34.664806,-30.641151 - 1347: + 1346: color: '#EFB3418B' id: Flowersbr2 coordinates: -34.08668,-30.750526 - 1348: + 1347: color: '#EFB341D9' id: Flowersbr2 coordinates: -33.99293,-30.828651 - 1349: + 1348: color: '#EFB341B7' id: Bushh1 coordinates: -34.49293,-31.391151 - 2057: + 2056: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -48,-7 - 2058: + 2057: color: '#A4610696' id: FullTileOverlayGreyscale coordinates: -49,-7 - 2059: + 2058: color: '#A4610696' id: FullTileOverlayGreyscale coordinates: -49,-8 - 2060: + 2059: color: '#A4610696' id: FullTileOverlayGreyscale coordinates: -52,-8 - 2061: + 2060: color: '#A4610696' id: FullTileOverlayGreyscale coordinates: -52,-7 - 2062: + 2061: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -51,-8 - 2063: + 2062: color: '#A4610696' id: HalfTileOverlayGreyscale180 coordinates: -50,-8 - 2070: + 2069: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -45,-28 - 2071: + 2070: cleanable: True color: '#3C44AAFF' id: WarnFullGreyscale coordinates: -46,-26 - 2072: + 2071: cleanable: True color: '#3C44AAFF' id: WarnFullGreyscale coordinates: -45,-26 - 2073: + 2072: cleanable: True color: '#3C44AAFF' id: WarnFullGreyscale @@ -8858,106 +8862,106 @@ entities: color: '#D4D4D4FF' id: DirtLight coordinates: -42,-37 - 1227: + 1226: color: '#FFFFFFFF' id: Flowersy3 coordinates: -37.65296,-32.76102 - 1228: + 1227: color: '#FFFFFFFF' id: Flowersy3 coordinates: -36.012337,-32.82352 - 1241: + 1240: color: '#A7B56396' id: Flowersy1 coordinates: -36.428707,-32.057896 - 1244: + 1243: color: '#A7B563D6' id: Bushi2 coordinates: -36.788082,-32.72977 - 1245: + 1244: color: '#A7B563D6' id: Bushi2 coordinates: -37.850582,-33.057896 - 1250: + 1249: color: '#A7B563D6' id: Bushg3 coordinates: -36.959957,-33.07352 - 1256: + 1255: color: '#A7B563D6' id: grasssnow12 coordinates: -33.709312,-32.870396 - 1257: + 1256: color: '#FFFFFFFF' id: DirtLight coordinates: -35,-45 - 1258: + 1257: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -40,-36 - 1259: + 1258: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -35,-47 - 1260: + 1259: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -35,-49 - 1261: + 1260: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -47,-47 - 1262: + 1261: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: -47,-49 - 1263: + 1262: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -49,-44 - 1264: + 1263: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -49,-36 - 1265: + 1264: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -47,-40 - 1266: + 1265: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -35,-37 - 1302: + 1301: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -56,-37 - 1303: + 1302: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: -54,-38 - 1304: + 1303: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtLight coordinates: -55,-38 - 1305: + 1304: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: DirtLight coordinates: -54,-36 - 1306: + 1305: cleanable: True angle: 1.5707963267948966 rad color: '#FFFFFFFF' @@ -9279,121 +9283,125 @@ entities: color: '#D4D4D4FF' id: DirtHeavy coordinates: 3,29 - 994: + 993: color: '#D4D4D496' id: Flowerspv3 coordinates: 4,4 - 995: + 994: color: '#D4D4D496' id: Flowerspv3 coordinates: 1,4 - 997: + 996: color: '#DE3A3A96' id: Flowersy1 coordinates: 2,4 - 998: + 997: color: '#DE3A3A96' id: Flowersy1 coordinates: 6,4 - 1002: + 1001: color: '#DEF23A96' id: Flowersbr2 coordinates: 3,4 - 1004: + 1003: color: '#DE00C096' id: Flowersy1 coordinates: 5,4 - 1008: + 1007: color: '#6FF84A96' id: Flowersy1 coordinates: 1.55509,4.0016594 - 1009: + 1008: color: '#6FF84A96' id: Flowersy1 coordinates: 5.52384,3.9547844 - 1012: + 1011: color: '#66B5D3CD' id: Flowersbr2 coordinates: 3.58634,4.0797844 - 1025: + 1024: color: '#536250CA' id: Rock05 coordinates: 2.887226,0.17918754 - 1045: + 1044: color: '#536250CA' id: grasssnowc2 coordinates: 2.527851,0.30418754 - 1061: + 1060: color: '#536250CA' id: Grasse3 coordinates: 2.043476,0.19481254 - 1162: + 1161: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 0,13 - 1164: + 1163: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 0,15 - 1183: + 1182: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 2,13 - 1184: + 1183: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 4,13 - 1185: + 1184: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 4,15 - 1186: + 1185: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 2,15 - 1187: + 1186: color: '#79150096' id: FullTileOverlayGreyscale coordinates: 3,14 - 1202: + 1201: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 0,14 - 1204: + 1203: color: '#D4D4D496' id: HalfTileOverlayGreyscale180 coordinates: 3,17 - 1205: + 1204: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 0,17 - 1206: + 1205: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 2,20 - 1207: + 1206: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 8,19 - 1209: + 1208: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 7,18 - 1210: + 1209: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 10,17 - 1933: + 1932: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 0,25 + 2226: + color: '#A46106FF' + id: Remains + coordinates: 24,22 0,-2: 815: color: '#EFB34196' @@ -9453,114 +9461,282 @@ entities: color: '#D4D4D4FF' id: DirtMedium coordinates: 15,-37 - 1528: + 1527: color: '#EFB34196' id: HalfTileOverlayGreyscale90 coordinates: 12,-35 - 1529: + 1528: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale90 coordinates: 12,-33 - 1530: + 1529: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale270 coordinates: 9,-36 - 1531: + 1530: color: '#EFB34196' id: ThreeQuarterTileOverlayGreyscale180 coordinates: 12,-36 - 1532: + 1531: color: '#EFB34196' id: HalfTileOverlayGreyscale270 coordinates: 9,-35 - 1533: + 1532: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: 10,-36 - 1534: + 1533: color: '#EFB34196' id: HalfTileOverlayGreyscale180 coordinates: 11,-36 - 1580: + 1579: color: '#A1562B7F' id: FullTileOverlayGreyscale coordinates: 7,-39 - 1904: + 1903: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 2,-40 - 1905: + 1904: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 2,-44 - 1906: + 1905: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 3,-39 - 1907: + 1906: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 4,-39 - 1908: + 1907: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 6,-39 - 1909: + 1908: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 7,-39 - 1910: + 1909: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 8,-42 - 1911: + 1910: color: '#EFB34122' id: FullTileOverlayGreyscale coordinates: 8,-43 - 1941: + 1940: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 7,-38 - 1942: + 1941: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 3,-47 - 1943: + 1942: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: 7,-43 - 1944: + 1943: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: 13,-48 - 2113: + 2112: color: '#FFFFFFFF' id: Box coordinates: 0,-48 - 2114: + 2113: color: '#FFFFFFFF' id: Box coordinates: 0,-49 - 2119: + 2118: color: '#FFFFFFFF' id: Box coordinates: 0,-50 - 2120: + 2119: color: '#FFFFFFFF' id: Box coordinates: 0,-51 - 2125: + 2124: color: '#FFFFFFFF' id: Box coordinates: 0,-52 - 2126: + 2125: color: '#FFFFFFFF' id: Box coordinates: 0,-53 + 2166: + color: '#000000FF' + id: largebrush + coordinates: 11,-60 + 2165: + color: '#000000FF' + id: largebrush + coordinates: 11,-59 + 2167: + color: '#000000FF' + id: largebrush + coordinates: 16,-57 + 2171: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 19,-58 + 2172: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 18,-58 + 2173: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 17,-58 + 2174: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 16,-58 + 2175: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 16,-59 + 2176: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 17,-59 + 2177: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 17,-60 + 2178: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 16,-60 + 2179: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 16,-61 + 2180: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 17,-61 + 2182: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 18,-60 + 2183: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 19,-59 + 2184: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 18,-59 + 2185: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 20,-59 + 2186: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 20,-58 + 2187: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 16,-58 + 2188: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 15,-59 + 2189: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 15,-60 + 2190: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 14,-60 + 2191: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 14,-61 + 2192: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 13,-61 + 2193: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 12,-61 + 2194: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 12,-60 + 2195: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 13,-60 + 2196: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 13,-59 + 2197: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 14,-59 + 2198: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 14,-58 + 2199: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 13,-58 + 2200: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 12,-58 + 2201: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 12,-59 + 2202: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 10,-61 + 2203: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 10,-60 + 2204: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 10,-59 + 2205: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 10,-58 + 2206: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 9,-58 + 2207: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 9,-57 + 2208: + color: '#FFFFFFFF' + id: DirtHeavy + coordinates: 10,-57 + 2223: + color: '#A4610696' + id: Remains + coordinates: 18,-60 + 2224: + color: '#A46106FF' + id: Remains + coordinates: 18,-60 1,-1: 889: cleanable: True @@ -9573,299 +9749,304 @@ entities: color: '#D4D4D4FF' id: DirtMedium coordinates: 33,-36 - 2131: + 2130: color: '#FFFFFFFF' id: space coordinates: 35,-37 - 2132: + 2131: color: '#FFFFFFFF' id: space coordinates: 35,-43 - 2133: + 2132: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: 32,-44 - 2134: + 2133: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 35,-42 - 2135: + 2134: cleanable: True color: '#FFFFFFFF' id: DirtHeavy coordinates: 35,-38 - 2136: + 2135: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 35,-36 - 2137: + 2136: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 35,-44 - 2138: + 2137: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 34,-41 - 2139: + 2138: cleanable: True color: '#FFFFFFFF' id: DirtLight coordinates: 32,-39 - 2140: + 2139: color: '#FFFFFFFF' id: Flowerspv1 coordinates: 36,-40 - 2141: + 2140: color: '#FFFFFFFF' id: Flowerspv1 coordinates: 35,-39 - 2142: + 2141: color: '#FFFFFFFF' id: Flowersy1 coordinates: 35,-41 - 2143: + 2142: color: '#FFFFFFFF' id: Flowersy1 coordinates: 35,-39 - 2144: + 2143: color: '#FFFFFFFF' id: Flowersbr3 coordinates: 36,-39 - 2145: + 2144: color: '#FFFFFFFF' id: Flowersbr3 coordinates: 35,-40 - 2146: + 2145: color: '#FFFFFFFF' id: Flowersbr1 coordinates: 36,-41 - 2147: + 2146: color: '#FFFFFFFF' id: Flowersbr1 coordinates: 36,-39 - 2148: + 2147: color: '#FFFFFFFF' id: Flowerspv3 coordinates: 35,-40 - 2149: + 2148: color: '#FFFFFFFF' id: Flowerspv3 coordinates: 36,-41 - 2150: + 2149: color: '#FFFFFFFF' id: Flowersy3 coordinates: 36,-40 - 2151: + 2150: color: '#FFFFFF60' id: Bushi1 coordinates: 35.738964,-40.352776 - 2152: + 2151: color: '#FFFFFF60' id: Bushi1 coordinates: 35.28584,-40.8059 - 2153: + 2152: color: '#FFFFFF60' id: Bushi1 coordinates: 34.832714,-40.39965 - 2154: + 2153: color: '#FFFFFF60' id: Bushi1 coordinates: 36.19209,-40.9309 - 2155: + 2154: color: '#FFFFFF60' id: Bushi1 coordinates: 35.801464,-39.39965 - 2156: + 2155: color: '#FFFFFF60' id: Bushi1 coordinates: 34.676464,-39.384026 - 2157: + 2156: color: '#FFFFFF60' id: Bushi1 coordinates: 35.332714,-39.71215 - 2158: + 2157: color: '#FFFFFF60' id: Bushi1 coordinates: 36.22334,-39.14965 - 2159: + 2158: color: '#FFFFFF60' id: Bushi1 coordinates: 35.31709,-38.977776 -2,2: - 1358: + 1357: color: '#52B4E918' id: FullTileOverlayGreyscale coordinates: -44,64 - 1426: + 1425: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,64 - 1427: + 1426: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,64 - 1428: + 1427: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,65 - 1429: + 1428: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -47,66 - 1430: + 1429: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,66 - 1431: + 1430: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -46,65 - 1432: + 1431: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -45,66 - 1433: + 1432: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -45,65 - 1434: + 1433: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -45,64 - 1439: + 1438: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,64 - 1440: + 1439: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,65 - 1441: + 1440: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -44,66 - 1442: + 1441: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,65 - 1443: + 1442: color: '#334E6D5A' id: FullTileOverlayGreyscale coordinates: -43,64 - 1462: + 1461: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -50,64 - 1467: + 1466: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -49,64 - 1468: + 1467: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -49,65 - 1469: + 1468: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -50,65 - 1470: + 1469: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -51,65 - 1471: + 1470: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -51,64 - 1475: + 1474: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -53,64 - 1476: + 1475: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -53,65 - 1477: + 1476: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -54,65 - 1478: + 1477: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -54,64 - 1480: + 1479: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -55,64 - 1481: + 1480: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -55,65 - 1486: + 1485: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -41,64 - 1487: + 1486: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -40,64 - 1488: + 1487: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -39,64 - 1489: + 1488: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -39,65 - 1490: + 1489: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -40,65 - 1491: + 1490: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -41,65 - 1496: + 1495: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -37,64 - 1497: + 1496: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -37,65 - 1498: + 1497: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -36,65 - 1499: + 1498: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -36,64 - 1500: + 1499: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -35,64 - 1501: + 1500: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -35,65 - 1510: + 1509: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -33,65 - 1511: + 1510: color: '#334E9825' id: FullTileOverlayGreyscale coordinates: -33,64 - 1516: + 1515: cleanable: True color: '#FFFFFFFF' id: DirtMedium coordinates: -51,65 + -1,-3: + 2225: + color: '#A46106FF' + id: Remains + coordinates: -13,-70 type: DecalGrid - tiles: -2,-10: 0 @@ -22281,6 +22462,37 @@ entities: -56,49: 0 -55,49: 0 -54,49: 0 + 32,-48: 0 + 32,-47: 0 + 32,-46: 0 + 33,-47: 0 + 33,-45: 0 + 33,-44: 0 + 34,-45: 0 + 34,-44: 0 + 34,-43: 0 + 34,-42: 0 + 35,-45: 0 + 35,-41: 0 + 36,-46: 0 + 36,-45: 0 + 36,-44: 0 + 36,-43: 0 + 37,-48: 0 + 37,-47: 0 + 37,-46: 0 + 37,-45: 0 + 37,-44: 0 + 37,-43: 0 + 37,-42: 0 + 37,-41: 0 + 38,-47: 0 + 38,-45: 0 + 38,-44: 0 + 38,-43: 0 + 38,-42: 0 + 38,-41: 0 + 38,-39: 0 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -25407,7 +25619,7 @@ entities: - uid: 575 type: BoxBeanbag components: - - pos: 4.4944634,11.898522 + - pos: 4.5607066,11.863041 parent: 100 type: Transform - canCollide: False @@ -25863,7 +26075,7 @@ entities: - uid: 642 type: AirlockGlass components: - - name: Librarian + - name: Library type: MetaData - pos: 13.5,0.5 parent: 100 @@ -25964,7 +26176,7 @@ entities: parent: 100 type: Transform - uid: 656 - type: WallMetal + type: WallSolid components: - pos: 13.5,11.5 parent: 100 @@ -25976,25 +26188,25 @@ entities: parent: 100 type: Transform - uid: 658 - type: WallMetal + type: WallSolid components: - pos: 12.5,16.5 parent: 100 type: Transform - uid: 659 - type: WallMetal + type: WallSolid components: - pos: 12.5,15.5 parent: 100 type: Transform - uid: 660 - type: WallMetal + type: WallSolid components: - pos: 6.5,16.5 parent: 100 type: Transform - uid: 661 - type: WallMetal + type: WallSolid components: - pos: 11.5,16.5 parent: 100 @@ -26012,13 +26224,13 @@ entities: parent: 100 type: Transform - uid: 664 - type: WallMetal + type: WallSolid components: - pos: 13.5,12.5 parent: 100 type: Transform - uid: 665 - type: WallMetal + type: WallSolid components: - pos: 14.5,12.5 parent: 100 @@ -26036,25 +26248,25 @@ entities: parent: 100 type: Transform - uid: 668 - type: WallMetal + type: WallSolid components: - pos: 14.5,15.5 parent: 100 type: Transform - uid: 669 - type: WallMetal + type: WallSolid components: - pos: 13.5,15.5 parent: 100 type: Transform - uid: 670 - type: WallMetal + type: WallSolid components: - pos: 5.5,16.5 parent: 100 type: Transform - uid: 671 - type: WallMetal + type: WallSolid components: - pos: 5.5,15.5 parent: 100 @@ -26729,9 +26941,10 @@ entities: parent: 100 type: Transform - uid: 772 - type: TableWood + type: ChairWood components: - - pos: 2.5,15.5 + - rot: 1.5707963267948966 rad + pos: -7.5,15.5 parent: 100 type: Transform - uid: 773 @@ -26798,12 +27011,15 @@ entities: parent: 100 type: Transform - uid: 782 - type: TableWood + type: WallmountTelevision components: - - rot: -1.5707963267948966 rad - pos: -10.5,15.5 + - pos: 24.5,-22.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 783 type: TableWood components: @@ -26817,11 +27033,15 @@ entities: parent: 100 type: Transform - uid: 785 - type: TableWood + type: WallmountTelevision components: - - pos: -7.5,15.5 + - pos: -43.5,-34.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 786 type: PianoInstrument components: @@ -26869,16 +27089,20 @@ entities: type: ChairWood components: - rot: -1.5707963267948966 rad - pos: -9.5,15.5 + pos: -10.5,15.5 parent: 100 type: Transform - uid: 793 - type: ChairWood + type: WallmountTelevision components: - - rot: 1.5707963267948966 rad - pos: -8.5,15.5 + - rot: -1.5707963267948966 rad + pos: 15.5,-44.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 794 type: ChairWood components: @@ -26897,7 +27121,7 @@ entities: type: ChairWood components: - rot: -1.5707963267948966 rad - pos: 3.5,15.5 + pos: 2.5,15.5 parent: 100 type: Transform - uid: 797 @@ -28241,6 +28465,8 @@ entities: - uid: 1001 type: WindoorSecure components: + - name: Commentators Lounge + type: MetaData - rot: 3.141592653589793 rad pos: -17.5,23.5 parent: 100 @@ -28255,6 +28481,8 @@ entities: - uid: 1003 type: WindoorSecure components: + - name: Commentators Lounge + type: MetaData - rot: 3.141592653589793 rad pos: -18.5,23.5 parent: 100 @@ -30215,6 +30443,8 @@ entities: - uid: 1273 type: WindoorSecure components: + - name: Commentators Lounge + type: MetaData - rot: 3.141592653589793 rad pos: -16.5,23.5 parent: 100 @@ -30627,6 +30857,8 @@ entities: - uid: 1332 type: AirlockMedicalLocked components: + - name: Storage Room + type: MetaData - pos: -14.5,47.5 parent: 100 type: Transform @@ -32382,19 +32614,21 @@ entities: - uid: 1576 type: WindoorBarLocked components: + - name: Head's Bar + type: MetaData - pos: -23.5,60.5 parent: 100 type: Transform - uid: 1577 type: BarSign components: - - desc: Still waiting. - name: The Engine Change + - desc: Anteriormente ubicado en Spessmerica. + name: Zocalo type: MetaData - pos: -25.5,63.5 parent: 100 type: Transform - - current: EngineChange + - current: Zocalo type: BarSign - uid: 1578 type: chem_master @@ -36120,7 +36354,7 @@ entities: parent: 100 type: Transform - uid: 2102 - type: WallSolid + type: WallSolidRust components: - pos: 27.5,19.5 parent: 100 @@ -38025,9 +38259,9 @@ entities: parent: 100 type: Transform - uid: 2361 - type: WallSolid + type: WallSolidRust components: - - pos: 21.5,21.5 + - pos: 23.5,19.5 parent: 100 type: Transform - uid: 2362 @@ -38181,7 +38415,7 @@ entities: parent: 100 type: Transform - uid: 2386 - type: WallSolid + type: WallSolidRust components: - pos: 23.5,23.5 parent: 100 @@ -38206,7 +38440,7 @@ entities: parent: 100 type: Transform - uid: 2390 - type: WallSolid + type: WallSolidRust components: - pos: 22.5,19.5 parent: 100 @@ -38224,9 +38458,9 @@ entities: parent: 100 type: Transform - uid: 2393 - type: WallSolid + type: WallSolidRust components: - - pos: 23.5,19.5 + - pos: 21.5,21.5 parent: 100 type: Transform - uid: 2394 @@ -38425,11 +38659,16 @@ entities: - canCollide: False type: Physics - uid: 2425 - type: Grille + type: WallmountTelevisionFrame components: - - pos: -57.5,58.5 + - rot: 1.5707963267948966 rad + pos: -57.5,57.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 2426 type: AsteroidRock components: @@ -38838,101 +39077,88 @@ entities: parent: 100 type: Transform - uid: 2484 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 34.5,-28.5 + - pos: 34.5,-28.5 parent: 100 type: Transform - uid: 2485 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 34.5,-29.5 + - pos: 35.5,-29.5 parent: 100 type: Transform - uid: 2486 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 35.5,-29.5 + - pos: 35.5,-31.5 parent: 100 type: Transform - uid: 2487 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 35.5,-30.5 + - pos: 34.5,-32.5 parent: 100 type: Transform - uid: 2488 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 35.5,-31.5 + - pos: 34.5,-29.5 parent: 100 type: Transform - uid: 2489 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 34.5,-31.5 + - pos: 35.5,-30.5 parent: 100 type: Transform - uid: 2490 - type: Grille + type: ShuttleWindow components: - - rot: 1.5707963267948966 rad - pos: 34.5,-32.5 + - pos: 34.5,-31.5 parent: 100 type: Transform - uid: 2491 - type: ReinforcedWindow + type: WallReinforced components: - rot: 1.5707963267948966 rad - pos: 34.5,-28.5 + pos: -57.5,55.5 parent: 100 type: Transform - uid: 2492 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 34.5,-29.5 + - pos: 21.5,-57.5 parent: 100 type: Transform - uid: 2493 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 35.5,-29.5 + - pos: 16.5,-61.5 parent: 100 type: Transform - uid: 2494 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 35.5,-30.5 + - pos: 14.5,-56.5 parent: 100 type: Transform - uid: 2495 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 35.5,-31.5 + - pos: 19.5,-60.5 parent: 100 type: Transform - uid: 2496 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 34.5,-31.5 + - pos: 18.5,-60.5 parent: 100 type: Transform - uid: 2497 - type: ReinforcedWindow + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: 34.5,-32.5 + - pos: 21.5,-56.5 parent: 100 type: Transform - uid: 2498 @@ -39199,6 +39425,9 @@ entities: - uid: 2531 type: WindoorCommandLocked components: + - desc: Where the Pilot does their magic. + name: Cockpit + type: MetaData - rot: -1.5707963267948966 rad pos: 32.5,-31.5 parent: 100 @@ -47971,6 +48200,8 @@ entities: - uid: 3815 type: AirlockExternalLocked components: + - name: Abandoned Dock + type: MetaData - pos: -53.5,16.5 parent: 100 type: Transform @@ -48408,6 +48639,8 @@ entities: - uid: 3877 type: WindoorSecure components: + - name: Dorm 205 + type: MetaData - rot: 1.5707963267948966 rad pos: -40.5,15.5 parent: 100 @@ -53578,6 +53811,8 @@ entities: - uid: 4630 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -10.5,82.5 parent: 100 type: Transform @@ -53599,6 +53834,8 @@ entities: - uid: 4632 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -8.5,82.5 parent: 100 type: Transform @@ -53625,6 +53862,9 @@ entities: - uid: 4635 type: WindoorSecure components: + - desc: It's a sturdy window and a sliding door for the Captain's personal shower. Having inspected this windoor in particular, you feel confident knowing that it is indeed, a well built windoor with no real faults on its initial build and its purpose is of the most importance. As is this description. + name: Captain's Shower Door + type: MetaData - pos: -22.5,67.5 parent: 100 type: Transform @@ -53747,10 +53987,10 @@ entities: parent: 100 type: Transform - ringtone: - - D - - C - - C - A + - E + - G + - E type: Ringer - canCollide: False type: Physics @@ -54192,9 +54432,9 @@ entities: parent: 100 type: Transform - uid: 4720 - type: Grille + type: WallSolidRust components: - - pos: -57.5,55.5 + - pos: 19.5,-59.5 parent: 100 type: Transform - uid: 4721 @@ -55445,9 +55685,9 @@ entities: parent: 100 type: Transform - uid: 4911 - type: AsteroidRock + type: WallSolidRust components: - - pos: 18.5,-58.5 + - pos: 21.5,-58.5 parent: 100 type: Transform - uid: 4912 @@ -55581,9 +55821,9 @@ entities: parent: 100 type: Transform - uid: 4933 - type: AsteroidRock + type: WallSolidRust components: - - pos: 20.5,-61.5 + - pos: 18.5,-61.5 parent: 100 type: Transform - uid: 4934 @@ -55632,7 +55872,7 @@ entities: - uid: 4941 type: AsteroidRock components: - - pos: 17.5,-61.5 + - pos: 21.5,-61.5 parent: 100 type: Transform - uid: 4942 @@ -55680,7 +55920,7 @@ entities: - uid: 4948 type: AsteroidRock components: - - pos: 19.5,-59.5 + - pos: 19.5,-61.5 parent: 100 type: Transform - uid: 4949 @@ -55714,15 +55954,15 @@ entities: parent: 100 type: Transform - uid: 4954 - type: AsteroidRock + type: WallSolidRust components: - - pos: 19.5,-58.5 + - pos: 15.5,-61.5 parent: 100 type: Transform - uid: 4955 - type: AsteroidRock + type: WallSolidRust components: - - pos: 18.5,-59.5 + - pos: 13.5,-61.5 parent: 100 type: Transform - uid: 4956 @@ -55986,9 +56226,9 @@ entities: parent: 100 type: Transform - uid: 4997 - type: AsteroidRock + type: WallSolidRust components: - - pos: 19.5,-60.5 + - pos: 20.5,-59.5 parent: 100 type: Transform - uid: 4998 @@ -55998,9 +56238,10 @@ entities: parent: 100 type: Transform - uid: 4999 - type: AsteroidRock + type: WallReinforced components: - - pos: 18.5,-57.5 + - rot: 1.5707963267948966 rad + pos: -57.5,57.5 parent: 100 type: Transform - uid: 5000 @@ -57634,6 +57875,8 @@ entities: - uid: 5206 type: AirlockExternalGlassLocked components: + - name: Side Port + type: MetaData - pos: -24.5,-51.5 parent: 100 type: Transform @@ -58469,11 +58712,22 @@ entities: parent: 100 type: Transform - uid: 5315 - type: AsteroidRock + type: MedicalScanner components: - - pos: 19.5,-57.5 + - pos: 14.5,-57.5 parent: 100 type: Transform + - containers: + - machine_parts + - machine_board + type: Construction + - containers: + MedicalScanner-bodyContainer: !type:ContainerSlot {} + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] + type: ContainerContainer - uid: 5316 type: AsteroidRock components: @@ -58500,9 +58754,9 @@ entities: parent: 100 type: Transform - uid: 5320 - type: AsteroidRock + type: WallSolidRust components: - - pos: 21.5,-56.5 + - pos: 14.5,-61.5 parent: 100 type: Transform - uid: 5321 @@ -58538,7 +58792,7 @@ entities: - uid: 5326 type: AsteroidRock components: - - pos: 20.5,-60.5 + - pos: 20.5,-61.5 parent: 100 type: Transform - uid: 5327 @@ -58562,7 +58816,7 @@ entities: - uid: 5330 type: AsteroidRock components: - - pos: 20.5,-58.5 + - pos: 20.5,-60.5 parent: 100 type: Transform - uid: 5331 @@ -68344,9 +68598,9 @@ entities: parent: 100 type: Transform - uid: 6477 - type: AsteroidRock + type: WallSolidRust components: - - pos: 19.5,-61.5 + - pos: 20.5,-56.5 parent: 100 type: Transform - uid: 6478 @@ -71651,6 +71905,8 @@ entities: - uid: 6861 type: WindoorSecure components: + - name: Dorm 205 + type: MetaData - rot: 1.5707963267948966 rad pos: -40.5,16.5 parent: 100 @@ -75657,9 +75913,10 @@ entities: parent: 100 type: Transform - uid: 7330 - type: Grille + type: WallReinforced components: - - pos: -57.5,56.5 + - rot: 1.5707963267948966 rad + pos: -57.5,56.5 parent: 100 type: Transform - uid: 7331 @@ -76868,6 +77125,8 @@ entities: - uid: 7474 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -11.5,82.5 parent: 100 type: Transform @@ -86470,9 +86729,9 @@ entities: parent: 100 type: Transform - uid: 9014 - type: AsteroidRock + type: PosterBroken components: - - pos: 21.5,-61.5 + - pos: 15.5,-57.5 parent: 100 type: Transform - uid: 9015 @@ -86488,9 +86747,10 @@ entities: parent: 100 type: Transform - uid: 9017 - type: AsteroidRock + type: WallReinforced components: - - pos: 20.5,-59.5 + - rot: 1.5707963267948966 rad + pos: -57.5,58.5 parent: 100 type: Transform - uid: 9018 @@ -86570,9 +86830,10 @@ entities: parent: 100 type: Transform - uid: 9030 - type: AsteroidRock + type: GrilleBroken components: - - pos: 21.5,-57.5 + - rot: -1.5707963267948966 rad + pos: 16.5,-56.5 parent: 100 type: Transform - uid: 9031 @@ -86582,9 +86843,9 @@ entities: parent: 100 type: Transform - uid: 9032 - type: AsteroidRock + type: WallSolidRust components: - - pos: 21.5,-58.5 + - pos: 15.5,-56.5 parent: 100 type: Transform - uid: 9033 @@ -86862,9 +87123,9 @@ entities: parent: 100 type: Transform - uid: 9077 - type: AsteroidRock + type: WallSolidRust components: - - pos: 21.5,-59.5 + - pos: 12.5,-61.5 parent: 100 type: Transform - uid: 9078 @@ -86874,9 +87135,11 @@ entities: parent: 100 type: Transform - uid: 9079 - type: AsteroidRock + type: BarSignTheLightbulb components: - - pos: 18.5,-60.5 + - desc: A rather robust bar promoted across Nanotrasen; As long as the beer flows here, Lighthouse will shine like a star. + type: MetaData + - pos: 3.5,12.5 parent: 100 type: Transform - uid: 9080 @@ -90002,17 +90265,25 @@ entities: parent: 100 type: Transform - uid: 9577 - type: ReinforcedWindow + type: WallmountTelevision components: - - pos: -57.5,56.5 + - pos: -10.5,47.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 9578 - type: ReinforcedWindow + type: WallmountTelevision components: - - pos: -57.5,55.5 + - pos: -36.5,-5.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 9579 type: PosterContrabandLustyExomorph components: @@ -90044,9 +90315,9 @@ entities: parent: 100 type: Transform - uid: 9584 - type: ReinforcedWindow + type: WallSolidRust components: - - pos: -57.5,58.5 + - pos: 11.5,-61.5 parent: 100 type: Transform - uid: 9585 @@ -92766,6 +93037,8 @@ entities: - uid: 10027 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -9.5,82.5 parent: 100 type: Transform @@ -108792,9 +109065,9 @@ entities: parent: 100 type: Transform - uid: 11761 - type: AsteroidRock + type: MouseTimedSpawner components: - - pos: 18.5,-61.5 + - pos: -36.5,43.5 parent: 100 type: Transform - uid: 11762 @@ -108804,15 +109077,15 @@ entities: parent: 100 type: Transform - uid: 11763 - type: AsteroidRock + type: PosterBroken components: - - pos: 17.5,-60.5 + - pos: 15.5,-60.5 parent: 100 type: Transform - uid: 11764 - type: AsteroidRock + type: KitchenSpike components: - - pos: 20.5,-57.5 + - pos: 13.5,-57.5 parent: 100 type: Transform - uid: 11765 @@ -109252,16 +109525,11 @@ entities: parent: 100 type: Transform - uid: 11824 - type: BarSign + type: TableReinforcedGlass components: - - desc: Don't drink and swim. - name: The Drunk Carp - type: MetaData - - pos: 3.0934818,12.540225 + - pos: 17.5,-57.5 parent: 100 type: Transform - - current: TheDrunkCarp - type: BarSign - uid: 11825 type: TableWood components: @@ -109578,15 +109846,11 @@ entities: parent: 100 type: Transform - uid: 11873 - type: ComputerTelevision + type: WallSolidRust components: - - pos: 0.5,11.5 + - pos: 12.5,-56.5 parent: 100 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - uid: 11874 type: hydroponicsTray components: @@ -109604,15 +109868,11 @@ entities: ents: [] type: ContainerContainer - uid: 11875 - type: ComputerTelevision + type: WallSolidRust components: - - pos: -6.5,15.5 + - pos: 11.5,-56.5 parent: 100 type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - uid: 11876 type: DonkpocketBoxSpawner components: @@ -109626,11 +109886,22 @@ entities: parent: 100 type: Transform - uid: 11878 - type: AsteroidRock + type: MedicalScanner components: - - pos: 20.5,-56.5 + - pos: 12.5,-57.5 parent: 100 type: Transform + - containers: + - machine_parts + - machine_board + type: Construction + - containers: + MedicalScanner-bodyContainer: !type:ContainerSlot {} + machine_board: !type:Container + ents: [] + machine_parts: !type:Container + ents: [] + type: ContainerContainer - uid: 11879 type: DonkpocketBoxSpawner components: @@ -111231,6 +111502,8 @@ entities: - uid: 12085 type: AirlockExternalGlassLocked components: + - name: Side Port + type: MetaData - pos: -25.5,-53.5 parent: 100 type: Transform @@ -114432,6 +114705,8 @@ entities: - uid: 12495 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -12.5,82.5 parent: 100 type: Transform @@ -114476,6 +114751,8 @@ entities: - uid: 12500 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -6.5,80.5 parent: 100 type: Transform @@ -114563,6 +114840,8 @@ entities: - uid: 12510 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -5.5,80.5 parent: 100 type: Transform @@ -114576,6 +114855,8 @@ entities: - uid: 12511 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -3.5,80.5 parent: 100 type: Transform @@ -114589,6 +114870,8 @@ entities: - uid: 12512 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -2.5,80.5 parent: 100 type: Transform @@ -114602,6 +114885,8 @@ entities: - uid: 12513 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -1.5,79.5 parent: 100 type: Transform @@ -114615,6 +114900,8 @@ entities: - uid: 12514 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -1.5,78.5 parent: 100 type: Transform @@ -114628,6 +114915,8 @@ entities: - uid: 12515 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -1.5,77.5 parent: 100 type: Transform @@ -114641,6 +114930,8 @@ entities: - uid: 12516 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -1.5,76.5 parent: 100 type: Transform @@ -114654,6 +114945,8 @@ entities: - uid: 12517 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -14.5,80.5 parent: 100 type: Transform @@ -114667,6 +114960,8 @@ entities: - uid: 12518 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -15.5,80.5 parent: 100 type: Transform @@ -114680,6 +114975,8 @@ entities: - uid: 12519 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -17.5,80.5 parent: 100 type: Transform @@ -114693,6 +114990,8 @@ entities: - uid: 12520 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -18.5,80.5 parent: 100 type: Transform @@ -114706,6 +115005,8 @@ entities: - uid: 12521 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -19.5,79.5 parent: 100 type: Transform @@ -114719,6 +115020,8 @@ entities: - uid: 12522 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -19.5,78.5 parent: 100 type: Transform @@ -114732,6 +115035,8 @@ entities: - uid: 12523 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -19.5,77.5 parent: 100 type: Transform @@ -114745,6 +115050,8 @@ entities: - uid: 12524 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -19.5,76.5 parent: 100 type: Transform @@ -115152,9 +115459,9 @@ entities: - canCollide: False type: Physics - uid: 12566 - type: MouseTimedSpawner + type: WallSolidRust components: - - pos: -49.5,22.5 + - pos: 11.5,-60.5 parent: 100 type: Transform - uid: 12567 @@ -115680,9 +115987,9 @@ entities: parent: 100 type: Transform - uid: 12648 - type: Grille + type: SignDanger components: - - pos: -57.5,57.5 + - pos: 13.5,-56.5 parent: 100 type: Transform - uid: 12649 @@ -121844,6 +122151,8 @@ entities: - uid: 13460 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -4.5,72.5 parent: 100 type: Transform @@ -121857,6 +122166,8 @@ entities: - uid: 13461 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -5.5,72.5 parent: 100 type: Transform @@ -121870,6 +122181,8 @@ entities: - uid: 13462 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -6.5,72.5 parent: 100 type: Transform @@ -121883,6 +122196,8 @@ entities: - uid: 13463 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -9.5,72.5 parent: 100 type: Transform @@ -121896,6 +122211,8 @@ entities: - uid: 13464 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -10.5,72.5 parent: 100 type: Transform @@ -121909,6 +122226,8 @@ entities: - uid: 13465 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -11.5,72.5 parent: 100 type: Transform @@ -121922,6 +122241,8 @@ entities: - uid: 13466 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -14.5,72.5 parent: 100 type: Transform @@ -121935,6 +122256,8 @@ entities: - uid: 13467 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -15.5,72.5 parent: 100 type: Transform @@ -121948,6 +122271,8 @@ entities: - uid: 13468 type: ShuttersNormalOpen components: + - name: Emergency Shutters! + type: MetaData - pos: -16.5,72.5 parent: 100 type: Transform @@ -123772,39 +124097,47 @@ entities: parent: 100 type: Transform - uid: 13708 - type: AsteroidRock + type: TintedWindow components: - - pos: 15.5,-56.5 + - pos: 11.5,-58.5 parent: 100 type: Transform - uid: 13709 - type: AsteroidRock + type: TintedWindow components: - - pos: 15.5,-57.5 + - pos: 11.5,-59.5 parent: 100 type: Transform - uid: 13710 type: AsteroidRock components: - - pos: 15.5,-58.5 + - pos: 21.5,-51.5 parent: 100 type: Transform - uid: 13711 - type: AsteroidRock + type: WallSolidRust components: - - pos: 15.5,-59.5 + - pos: 11.5,-57.5 parent: 100 type: Transform - uid: 13712 - type: AsteroidRock + type: PoweredlightEmpty components: - - pos: 15.5,-60.5 + - pos: 17.5,-57.5 parent: 100 type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 13713 - type: AsteroidRock + type: ChairOfficeDark components: - - pos: 15.5,-61.5 + - rot: 1.5707963267948966 rad + pos: 16.5,-60.5 parent: 100 type: Transform - uid: 13714 @@ -123892,39 +124225,40 @@ entities: parent: 100 type: Transform - uid: 13728 - type: AsteroidRock + type: ComputerBroken components: - - pos: 14.5,-56.5 + - rot: -1.5707963267948966 rad + pos: 17.5,-60.5 parent: 100 type: Transform - uid: 13729 - type: AsteroidRock + type: TableReinforcedGlass components: - - pos: 14.5,-57.5 + - pos: 16.5,-57.5 parent: 100 type: Transform - uid: 13730 type: AsteroidRock components: - - pos: 14.5,-58.5 + - pos: 19.5,-51.5 parent: 100 type: Transform - uid: 13731 type: AsteroidRock components: - - pos: 14.5,-59.5 + - pos: 20.5,-51.5 parent: 100 type: Transform - uid: 13732 - type: AsteroidRock + type: Grille components: - - pos: 14.5,-60.5 + - pos: 11.5,-59.5 parent: 100 type: Transform - uid: 13733 - type: AsteroidRock + type: Grille components: - - pos: 14.5,-61.5 + - pos: 11.5,-58.5 parent: 100 type: Transform - uid: 13734 @@ -124006,39 +124340,53 @@ entities: parent: 100 type: Transform - uid: 13747 - type: AsteroidRock + type: GeneratorBasic components: - - pos: 13.5,-56.5 + - pos: 10.5,-56.5 parent: 100 type: Transform - uid: 13748 - type: AsteroidRock + type: PoweredlightEmpty components: - - pos: 13.5,-57.5 + - rot: 3.141592653589793 rad + pos: 13.5,-60.5 parent: 100 type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 13749 type: AsteroidRock components: - - pos: 13.5,-58.5 + - pos: 23.5,-51.5 parent: 100 type: Transform - uid: 13750 - type: AsteroidRock + type: AirlockMaint components: - - pos: 13.5,-59.5 + - desc: It's label is faded... + name: 'La-o-atry ' + type: MetaData + - pos: 18.5,-56.5 parent: 100 type: Transform - uid: 13751 - type: AsteroidRock + type: AirlockMaint components: - - pos: 13.5,-60.5 + - desc: It's label is faded... + name: 'L-bor--ry ' + type: MetaData + - pos: 19.5,-56.5 parent: 100 type: Transform - uid: 13752 - type: AsteroidRock + type: WallSolidRust components: - - pos: 13.5,-61.5 + - pos: 15.5,-57.5 parent: 100 type: Transform - uid: 13753 @@ -124066,39 +124414,46 @@ entities: parent: 100 type: Transform - uid: 13757 - type: AsteroidRock + type: WallSolidRust components: - - pos: 12.5,-61.5 + - pos: 15.5,-60.5 parent: 100 type: Transform - uid: 13758 - type: AsteroidRock + type: GrilleBroken components: - - pos: 12.5,-60.5 + - rot: 3.141592653589793 rad + pos: 15.5,-58.5 parent: 100 type: Transform - uid: 13759 - type: AsteroidRock + type: FloodlightBroken components: - - pos: 12.5,-59.5 + - pos: 18.27303,-55.595417 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13760 - type: AsteroidRock + type: FloodlightBroken components: - - pos: 12.5,-58.5 + - pos: 19.913654,-55.642292 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13761 - type: AsteroidRock + type: FoodPlateTrash components: - - pos: 12.5,-57.5 + - pos: 16.819904,-57.251667 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13762 - type: AsteroidRock + type: GasCanisterBrokenBase components: - - pos: 12.5,-56.5 + - pos: 10.5,-60.5 parent: 100 type: Transform - uid: 13763 @@ -124152,39 +124507,46 @@ entities: - uid: 13771 type: AsteroidRock components: - - pos: 11.5,-61.5 + - pos: 19.5,-52.5 parent: 100 type: Transform - uid: 13772 type: AsteroidRock components: - - pos: 11.5,-60.5 + - pos: 22.5,-51.5 parent: 100 type: Transform - uid: 13773 - type: AsteroidRock + type: GrilleBroken components: - - pos: 11.5,-59.5 + - pos: 15.5,-58.5 parent: 100 type: Transform - uid: 13774 - type: AsteroidRock + type: AirlockMaint components: - - pos: 11.5,-58.5 + - desc: '...' + name: Containment room. + type: MetaData + - pos: 15.5,-59.5 parent: 100 type: Transform - uid: 13775 - type: AsteroidRock + type: ShardGlassReinforced components: - - pos: 11.5,-57.5 + - pos: 14.788654,-58.736042 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13776 - type: AsteroidRock + type: ShardGlassReinforced components: - - pos: 11.5,-56.5 + - pos: 15.898029,-58.454792 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13777 type: AsteroidRock components: @@ -124240,39 +124602,40 @@ entities: parent: 100 type: Transform - uid: 13786 - type: AsteroidRock + type: WallSolidRust components: - - pos: 9.5,-56.5 + - pos: 13.5,-56.5 parent: 100 type: Transform - uid: 13787 - type: AsteroidRock + type: WallSolidRust components: - - pos: 9.5,-57.5 + - pos: 17.5,-56.5 parent: 100 type: Transform - uid: 13788 - type: AsteroidRock + type: WallSolidRust components: - - pos: 9.5,-58.5 + - pos: 21.5,-59.5 parent: 100 type: Transform - uid: 13789 - type: AsteroidRock + type: WallSolidRust components: - - pos: 9.5,-59.5 + - pos: 17.5,-61.5 parent: 100 type: Transform - uid: 13790 - type: AsteroidRock + type: GrilleBroken components: - - pos: 9.5,-60.5 + - rot: 3.141592653589793 rad + pos: 16.5,-56.5 parent: 100 type: Transform - uid: 13791 - type: AsteroidRock + type: RandomPosterLegit components: - - pos: 9.5,-61.5 + - pos: -34.5,47.5 parent: 100 type: Transform - uid: 13792 @@ -124306,39 +124669,49 @@ entities: parent: 100 type: Transform - uid: 13797 - type: AsteroidRock + type: WallmountTelevision components: - - pos: 10.5,-56.5 + - pos: 1.5,16.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 13798 - type: AsteroidRock + type: WallmountTelevision components: - - pos: 10.5,-57.5 + - pos: -6.5,16.5 parent: 100 type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer - uid: 13799 - type: AsteroidRock + type: ShardGlassReinforced components: - - pos: 10.5,-58.5 + - pos: 16.52303,-56.626667 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13800 - type: AsteroidRock + type: TableReinforced components: - - pos: 10.5,-59.5 + - pos: 12.5,-60.5 parent: 100 type: Transform - uid: 13801 - type: AsteroidRock + type: TableReinforced components: - - pos: 10.5,-60.5 + - pos: 13.5,-60.5 parent: 100 type: Transform - uid: 13802 - type: AsteroidRock + type: TableReinforced components: - - pos: 10.5,-61.5 + - pos: 14.5,-60.5 parent: 100 type: Transform - uid: 13803 @@ -124540,33 +124913,39 @@ entities: parent: 100 type: Transform - uid: 13836 - type: AsteroidRock + type: SawElectric components: - - pos: 16.5,-56.5 + - pos: 12.657152,-60.55578 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13837 - type: AsteroidRock + type: OrganHumanBrain components: - - pos: 16.5,-57.5 + - pos: 14.194904,-60.407917 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13838 - type: AsteroidRock + type: ClothingHandsGlovesColorPurple components: - - pos: 16.5,-58.5 + - pos: 13.491779,-60.50007 parent: 100 type: Transform + - canCollide: False + type: Physics - uid: 13839 - type: AsteroidRock + type: MachineFrameDestroyed components: - - pos: 16.5,-59.5 + - pos: 20.5,-57.5 parent: 100 type: Transform - uid: 13840 - type: AsteroidRock + type: MachineFrameDestroyed components: - - pos: 16.5,-60.5 + - pos: 20.5,-58.5 parent: 100 type: Transform - uid: 13841 @@ -126032,21 +126411,21 @@ entities: parent: 100 type: Transform - uid: 14061 - type: AsteroidRock + type: CableApcExtension components: - - pos: 17.5,-56.5 + - pos: 18.5,-57.5 parent: 100 type: Transform - uid: 14062 - type: AsteroidRock + type: CableApcExtension components: - - pos: 18.5,-56.5 + - pos: 18.5,-58.5 parent: 100 type: Transform - uid: 14063 - type: AsteroidRock + type: CableApcExtension components: - - pos: 19.5,-56.5 + - pos: 17.5,-58.5 parent: 100 type: Transform - uid: 14064 @@ -129345,9 +129724,9 @@ entities: parent: 100 type: Transform - uid: 14501 - type: CableHV + type: CableApcExtension components: - - pos: -1.5,-47.5 + - pos: 16.5,-58.5 parent: 100 type: Transform - uid: 14502 @@ -129435,21 +129814,21 @@ entities: parent: 100 type: Transform - uid: 14516 - type: CableHV + type: CableApcExtension components: - - pos: 0.5,-49.5 + - pos: 15.5,-58.5 parent: 100 type: Transform - uid: 14517 - type: CableHV + type: CableApcExtension components: - - pos: 1.5,-49.5 + - pos: 14.5,-58.5 parent: 100 type: Transform - uid: 14518 - type: CableHV + type: CableApcExtension components: - - pos: 2.5,-49.5 + - pos: 13.5,-58.5 parent: 100 type: Transform - uid: 14519 @@ -130217,13 +130596,17 @@ entities: - uid: 14616 type: BlastDoor components: + - name: Atmos Blast Door + type: MetaData - pos: -25.5,-56.5 parent: 100 type: Transform - inputs: Open: [] Close: [] - Toggle: [] + Toggle: + - port: Pressed + uid: 16590 type: SignalReceiver - uid: 14617 type: AtmosFixNitrogenMarker @@ -132797,9 +133180,9 @@ entities: parent: 100 type: Transform - uid: 14956 - type: ReinforcedWindow + type: CableApcExtension components: - - pos: -57.5,57.5 + - pos: 12.5,-58.5 parent: 100 type: Transform - uid: 14957 @@ -143683,9 +144066,9 @@ entities: parent: 100 type: Transform - uid: 16316 - type: RandomPosterLegit + type: CableApcExtension components: - - pos: -30.5,46.5 + - pos: 12.5,-59.5 parent: 100 type: Transform - uid: 16317 @@ -144432,6 +144815,8 @@ entities: - uid: 16431 type: ShuttersNormalOpen components: + - name: Cell Shutters + type: MetaData - pos: -0.5,32.5 parent: 100 type: Transform @@ -144445,6 +144830,8 @@ entities: - uid: 16432 type: ShuttersNormalOpen components: + - name: Cell Shutters + type: MetaData - pos: -0.5,35.5 parent: 100 type: Transform @@ -145365,4 +145752,328 @@ entities: - pos: -55.5,32.5 parent: 100 type: Transform +- uid: 16556 + type: CableApcExtension + components: + - pos: 11.5,-59.5 + parent: 100 + type: Transform +- uid: 16557 + type: CableApcExtension + components: + - pos: 10.5,-59.5 + parent: 100 + type: Transform +- uid: 16558 + type: CableApcExtension + components: + - pos: 10.5,-58.5 + parent: 100 + type: Transform +- uid: 16559 + type: APCHighCapacity + components: + - rot: -1.5707963267948966 rad + pos: 19.5,-59.5 + parent: 100 + type: Transform +- uid: 16560 + type: CableHV + components: + - pos: 10.5,-56.5 + parent: 100 + type: Transform +- uid: 16561 + type: CableHV + components: + - pos: 10.5,-57.5 + parent: 100 + type: Transform +- uid: 16562 + type: CableHV + components: + - pos: 10.5,-58.5 + parent: 100 + type: Transform +- uid: 16563 + type: CableHV + components: + - pos: 11.5,-58.5 + parent: 100 + type: Transform +- uid: 16564 + type: CableHV + components: + - pos: 12.5,-58.5 + parent: 100 + type: Transform +- uid: 16565 + type: CableHV + components: + - pos: 13.5,-58.5 + parent: 100 + type: Transform +- uid: 16566 + type: CableMV + components: + - pos: 19.5,-59.5 + parent: 100 + type: Transform +- uid: 16567 + type: CableMV + components: + - pos: 18.5,-59.5 + parent: 100 + type: Transform +- uid: 16568 + type: CableMV + components: + - pos: 17.5,-59.5 + parent: 100 + type: Transform +- uid: 16569 + type: CableMV + components: + - pos: 16.5,-59.5 + parent: 100 + type: Transform +- uid: 16570 + type: CableMV + components: + - pos: 15.5,-59.5 + parent: 100 + type: Transform +- uid: 16571 + type: CableMV + components: + - pos: 14.5,-59.5 + parent: 100 + type: Transform +- uid: 16572 + type: CableMV + components: + - pos: 13.5,-59.5 + parent: 100 + type: Transform +- uid: 16573 + type: CableApcExtension + components: + - pos: 19.5,-59.5 + parent: 100 + type: Transform +- uid: 16574 + type: CableApcExtension + components: + - pos: 18.5,-59.5 + parent: 100 + type: Transform +- uid: 16575 + type: GasVentPump + components: + - rot: 3.141592653589793 rad + pos: 17.5,-60.5 + parent: 100 + type: Transform +- uid: 16576 + type: GasVentPump + components: + - pos: 12.5,-57.5 + parent: 100 + type: Transform +- uid: 16577 + type: GasVentScrubber + components: + - rot: 1.5707963267948966 rad + pos: 13.5,-59.5 + parent: 100 + type: Transform +- uid: 16578 + type: GasVentScrubber + components: + - rot: -1.5707963267948966 rad + pos: 20.5,-58.5 + parent: 100 + type: Transform +- uid: 16579 + type: GasPipeStraight + components: + - rot: -1.5707963267948966 rad + pos: 19.5,-58.5 + parent: 100 + type: Transform +- uid: 16580 + type: GasPipeBend + components: + - rot: 3.141592653589793 rad + pos: 12.5,-58.5 + parent: 100 + type: Transform +- uid: 16581 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: 14.5,-59.5 + parent: 100 + type: Transform +- uid: 16582 + type: GasPipeStraight + components: + - rot: 1.5707963267948966 rad + pos: 15.5,-59.5 + parent: 100 + type: Transform +- uid: 16583 + type: GasPipeStraight + components: + - pos: 18.5,-57.5 + parent: 100 + type: Transform +- uid: 16584 + type: GasPipeStraight + components: + - pos: 17.5,-59.5 + parent: 100 + type: Transform +- uid: 16585 + type: GasPipeBend + components: + - rot: 1.5707963267948966 rad + pos: 17.5,-57.5 + parent: 100 + type: Transform +- uid: 16586 + type: GasPipeBend + components: + - rot: -1.5707963267948966 rad + pos: 18.5,-59.5 + parent: 100 + type: Transform +- uid: 16587 + type: GasPipeTJunction + components: + - rot: 1.5707963267948966 rad + pos: 18.5,-58.5 + parent: 100 + type: Transform +- uid: 16588 + type: Saw + components: + - pos: 12.704027,-60.24328 + parent: 100 + type: Transform + - canCollide: False + type: Physics +- uid: 16589 + type: Scalpel + components: + - pos: 14.40789,-60.258904 + parent: 100 + type: Transform + - canCollide: False + type: Physics +- uid: 16590 + type: SignalButton + components: + - desc: It's a button for activating the Atmos Blast Door. + name: Atmos Blast Door + type: MetaData + - rot: -1.5707963267948966 rad + pos: -25.799467,-55.48902 + parent: 100 + type: Transform + - fixtures: [] + type: Fixtures + - outputs: + Pressed: + - port: Toggle + uid: 14616 + type: SignalTransmitter +- uid: 16591 + type: Multitool + components: + - pos: 17.589832,-57.372566 + parent: 100 + type: Transform + - canCollide: False + type: Physics +- uid: 16592 + type: PosterLegitHighClassMartini + components: + - pos: -21.5,51.5 + parent: 100 + type: Transform +- uid: 16593 + type: PosterLegitSafetyReport + components: + - pos: -30.5,51.5 + parent: 100 + type: Transform +- uid: 16594 + type: PosterLegitWalk + components: + - pos: -6.5,51.5 + parent: 100 + type: Transform +- uid: 16595 + type: PosterBroken + components: + - pos: -4.5,47.5 + parent: 100 + type: Transform +- uid: 16596 + type: ClothingUnderSocksCoder + components: + - pos: -39.499237,46.389122 + parent: 100 + type: Transform + - canCollide: False + type: Physics +- uid: 16597 + type: TableWood + components: + - pos: -31.5,11.5 + parent: 100 + type: Transform +- uid: 16598 + type: FoodBurgerChicken + components: + - pos: -31.553566,11.584971 + parent: 100 + type: Transform + - canCollide: False + type: Physics +- uid: 16599 + type: PosterContrabandBountyHunters + components: + - pos: -21.5,14.5 + parent: 100 + type: Transform +- uid: 16600 + type: SpawnMobMouse + components: + - pos: -24.5,30.5 + parent: 100 + type: Transform +- uid: 16601 + type: WallmountTelevision + components: + - pos: -10.5,39.5 + parent: 100 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer +- uid: 16602 + type: PosterContrabandPunchShit + components: + - pos: -12.5,29.5 + parent: 100 + type: Transform +- uid: 16603 + type: PosterContrabandPunchShit + components: + - pos: -12.5,22.5 + parent: 100 + type: Transform ... diff --git a/Resources/Maps/nss_pillar.yml b/Resources/Maps/nss_pillar.yml index ffb8857d32bc..0cd7285c5de8 100644 --- a/Resources/Maps/nss_pillar.yml +++ b/Resources/Maps/nss_pillar.yml @@ -27931,25 +27931,6 @@ entities: - containers: stash: !type:ContainerSlot {} type: ContainerContainer -- uid: 1102 - type: WeaponRevolverDeckard - components: - - pos: -17.504456,12.729088 - parent: 130 - type: Transform - - chambers: - - True - - True - - True - - True - - True - type: RevolverAmmoProvider - - canCollide: False - type: Physics - - containers: - revolver-ammo: !type:Container - ents: [] - type: ContainerContainer - uid: 1103 type: WallSolid components: diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 64cbd0c771f3..af3ded4eb4d0 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -80,7 +80,7 @@ grids: - ind: -2,0 tiles: NwAAADUAAAA1AAAANQAAADUAAAA1AAAAMQAAADEAAAAxAAAAMQAAADcAAAAlAAAAIQAAACEAAAAhAAAAJQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAAxAAAAMQAAADcAAAA3AAAAJQAAACUAAAAlAAAAJQAAACUAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMQAAADEAAAAxAAAANwAAADcAAAAxAAAAMQAAADcAAAA3AAAAHgAAAB4AAAA3AAAANwAAADcAAAAzAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAAHgAAAB4AAAAeAAAANwAAADIAAAAyAAAAMwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADEAAAAxAAAAHgAAAB4AAAAeAAAAHgAAADcAAAAyAAAAMgAAADMAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAAeAAAAHgAAAB4AAAA3AAAAMgAAADIAAAAzAAAANwAAADEAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA3AAAANwAAAB4AAAA3AAAANwAAADIAAAAyAAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAAzAAAAMwAAADcAAAA3AAAANwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADcAAAAzAAAAMwAAADMAAAAzAAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAA== - ind: 1,-1 - tiles: NAAAADQAAAA0AAAANAAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADcAAAA0AAAANAAAADQAAAA0AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADcAAAA2AAAAAAAAAAAAAAA3AAAANAAAADQAAAA0AAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAA3AAAANgAAAAAAAAAAAAAANwAAADQAAAA0AAAANAAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADIAAAAyAAAANAAAADQAAAA0AAAANAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADIAAAA3AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADQAAAA0AAAANAAAADQAAAA3AAAANAAAADQAAAA0AAAANAAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAAMwAAADcAAAA3AAAAMQAAADEAAAAxAAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADEAAAAxAAAAMQAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAAxAAAAMQAAADEAAAA0AAAANAAAADQAAAA0AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAAMwAAADcAAAA3AAAAMQAAADEAAAAxAAAANAAAADQAAAA0AAAANAAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAA== + tiles: NAAAADQAAAA0AAAANAAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADcAAAA0AAAANAAAADQAAAA0AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADcAAAA2AAAAAAAAAAAAAAA3AAAANAAAADQAAAA0AAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAA3AAAANgAAAAAAAAAAAAAANwAAADQAAAA0AAAANAAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADIAAAAyAAAANAAAADQAAAA0AAAANAAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADIAAAA3AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADQAAAA0AAAANAAAADQAAAA3AAAANAAAADQAAAA0AAAANAAAADcAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA0AAAANAAAADQAAAA0AAAANwAAADQAAAA0AAAANAAAADQAAAA3AAAAMwAAADcAAAA3AAAAMQAAADEAAAAxAAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADEAAAAxAAAAMQAAADQAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAAxAAAAMQAAADEAAAA0AAAANAAAADQAAAA0AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAAMwAAADcAAAA3AAAAMQAAADEAAAAxAAAANAAAADQAAAA0AAAANAAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAAA== - ind: 0,-2 tiles: KAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAoAAAAKAAAADcAAAA3AAAANwAAACgAAAA3AAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA1AAAAKAAAACgAAAA3AAAANwAAADcAAAAoAAAAKAAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAACgAAAAoAAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAA3AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAAMQAAADEAAAAxAAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAAzAAAANwAAADEAAAAxAAAAMQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAAMwAAADcAAAAxAAAAMQAAADEAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAANwAAADMAAAA3AAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADMAAAA3AAAANwAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAAzAAAANwAAADcAAAAxAAAAMQAAADEAAAA3AAAANwAAADUAAAA1AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAAMwAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAAeAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAAHgAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAADMAAAAzAAAAMwAAADMAAAAzAAAAMwAAADcAAAAzAAAAMwAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAANAAAADQAAAA0AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAADQAAAA0AAAANAAAADcAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAA== - ind: 1,-2 @@ -100,7 +100,7 @@ grids: - ind: 3,0 tiles: HgAAADEAAAAeAAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADcAAAAAAAAAAAAAAB4AAAAxAAAAHgAAAB4AAAAeAAAAHgAAADcAAAAxAAAAMwAAADMAAAAzAAAAMwAAADEAAAA3AAAAAAAAAAAAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADMAAAAzAAAANwAAADMAAAAxAAAANwAAADYAAAA2AAAAMQAAADEAAAAxAAAAHgAAAB4AAAAeAAAANwAAADEAAAAzAAAAMwAAADMAAAAzAAAAMQAAADcAAAAAAAAAAAAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAAAAAAAAAAAAAxAAAAMQAAADEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADYAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAB4AAAAeAAAAHgAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAA3AAAAHgAAAB4AAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAANwAAAB4AAAAeAAAANwAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAeAAAAHgAAADcAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAHgAAAB4AAAA3AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAAAAAAAAAAAAANwAAAB4AAAAeAAAANwAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAAAeAAAAHgAAADcAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAA2AAAANgAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANgAAADcAAAA3AAAANwAAADYAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - ind: 2,-1 - tiles: AAAAADYAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAADMAAAA3AAAANwAAADcAAAAzAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADcAAAAzAAAANwAAADcAAAA3AAAAMwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA3AAAAMwAAADcAAAA3AAAANwAAADMAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADIAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAMwAAADMAAAAzAAAAMwAAADMAAAAzAAAANwAAADcAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAA3AAAANgAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAzAAAANwAAADYAAAA3AAAANwAAADEAAAAxAAAAMQAAADEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA2AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADMAAAA3AAAANgAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAAzAAAANwAAADYAAAA2AAAANwAAAA== + tiles: AAAAADYAAAA3AAAAMwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAADMAAAA3AAAANwAAADcAAAAzAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAADcAAAAzAAAANwAAADcAAAA3AAAAMwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA3AAAAMwAAADcAAAA3AAAANwAAADMAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADMAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADIAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAMwAAADMAAAAzAAAAMwAAADMAAAAzAAAANwAAADcAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAADEAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAAxAAAANwAAADUAAAA1AAAANQAAADUAAAA3AAAANwAAADcAAAAzAAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA3AAAAMwAAADMAAAA3AAAANwAAAA== - ind: -1,-2 tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAACgAAAAoAAAAKAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAANgAAADcAAAAoAAAAKAAAACgAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAAzAAAAMwAAADMAAAA3AAAANgAAADYAAAA3AAAAKAAAACgAAAAoAAAANgAAADYAAAA2AAAANwAAADcAAAA3AAAAMwAAADMAAAAzAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADMAAAAzAAAAMwAAADMAAAAzAAAANwAAADMAAAAzAAAAMwAAADMAAAArAAAAKwAAACsAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAACsAAAArAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAArAAAAKwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA1AAAANQAAADUAAAA1AAAANwAAADcAAAA0AAAANwAAADcAAAA3AAAANwAAADcAAAAcAAAAHAAAABwAAAA3AAAANQAAADUAAAA1AAAANQAAADcAAAA3AAAAHgAAAB4AAAAeAAAANwAAADcAAAA3AAAAMwAAADMAAAAzAAAANwAAAB4AAAAeAAAAHgAAAB4AAAA3AAAANwAAAB4AAAAeAAAAHgAAADcAAAA3AAAANwAAADcAAAA0AAAANwAAADcAAAA3AAAANwAAAB4AAAA3AAAANwAAADcAAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAADcAAAAeAAAAHgAAAB4AAAAeAAAAHgAAADcAAAA3AAAANwAAAB4AAAA3AAAANwAAADcAAAAeAAAAHgAAAB4AAAA3AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAA3AAAANAAAADQAAAA0AAAANAAAADQAAAA0AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADQAAAA0AAAANAAAADQAAAA0AAAANAAAAA== - ind: -2,-2 @@ -243,15 +243,11 @@ entities: parent: 852 type: Transform - uid: 11 - type: VendingMachineCoffee + type: CableHV components: - - name: Hot drinks machine - type: MetaData - - pos: -11.5,-17.5 + - pos: -12.5,-19.5 parent: 852 type: Transform - - enabled: False - type: AmbientSound - uid: 12 type: ToolboxElectricalFilled components: @@ -363,13 +359,17 @@ entities: ents: [] type: ContainerContainer - uid: 25 - type: ShellShotgunBeanbag + type: BoxShotgunIncendiary components: - - pos: -11.418642,18.704296 + - pos: -11.462591,18.639452 parent: 852 type: Transform - canCollide: False type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 26 type: WallSolid components: @@ -416,9 +416,9 @@ entities: parent: 852 type: Transform - uid: 33 - type: ShellShotgunBeanbag + type: WeaponLaserCarbine components: - - pos: -11.387392,18.344921 + - pos: -14.437499,19.983202 parent: 852 type: Transform - canCollide: False @@ -483,7 +483,7 @@ entities: - uid: 42 type: WeaponShotgunKammerer components: - - pos: -11.525684,19.694025 + - pos: -11.415716,19.405077 parent: 852 type: Transform - unspawnedCount: 4 @@ -495,9 +495,9 @@ entities: ents: [] type: ContainerContainer - uid: 43 - type: ShellShotgunSlug + type: SheetSteel components: - - pos: -11.153017,18.298046 + - pos: -11.556341,19.655077 parent: 852 type: Transform - canCollide: False @@ -532,13 +532,17 @@ entities: ents: [] type: ContainerContainer - uid: 46 - type: ShellShotgunBeanbag + type: BoxBeanbag components: - - pos: -11.418642,18.548046 + - pos: -11.415716,18.436327 parent: 852 type: Transform - canCollide: False type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 47 type: Grille components: @@ -589,9 +593,9 @@ entities: - color: '#0335FCFF' type: AtmosPipeColor - uid: 54 - type: ShellShotgunSlug + type: WeaponSubMachineGunVector components: - - pos: -11.153017,18.423046 + - pos: -14.406249,21.639452 parent: 852 type: Transform - canCollide: False @@ -678,15 +682,22 @@ entities: - color: '#0335FCFF' type: AtmosPipeColor - uid: 66 - type: MagazineMagnumSubMachineGunRubber + type: ConveyorBelt components: - - pos: -13.668642,21.563671 + - pos: 20.5,22.5 parent: 852 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics + - inputs: + Reverse: + - port: Right + uid: 7550 + Forward: + - port: Left + uid: 7550 + Off: + - port: Middle + uid: 7550 + type: SignalReceiver - uid: 67 type: ToyRubberDuck components: @@ -756,13 +767,11 @@ entities: id: HoP Office type: SurveillanceCamera - uid: 76 - type: ShellShotgunSlug + type: WallSolidRust components: - - pos: -11.153017,18.626171 + - pos: -26.5,-13.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 77 type: BoxFlashbang components: @@ -782,13 +791,11 @@ entities: parent: 852 type: Transform - uid: 79 - type: ShellShotgunSlug + type: WallSolidRust components: - - pos: -11.153017,18.532421 + - pos: -20.5,-15.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 80 type: ClothingUnderSocksCoder components: @@ -831,9 +838,9 @@ entities: - 5153 type: ContainerContainer - uid: 85 - type: ShellShotgunBeanbag + type: WeaponLaserCarbine components: - - pos: -11.387392,18.266796 + - pos: -14.421874,20.186327 parent: 852 type: Transform - canCollide: False @@ -1136,13 +1143,11 @@ entities: parent: 852 type: Transform - uid: 128 - type: WeaponSubMachineGunVectorRubber + type: CableHV components: - - pos: -14.340517,21.391796 + - pos: -25.5,18.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 129 type: GasPipeBend components: @@ -1240,9 +1245,9 @@ entities: Toggle: [] type: SignalReceiver - uid: 140 - type: Grille + type: CableHV components: - - pos: 20.5,22.5 + - pos: -22.5,21.5 parent: 852 type: Transform - uid: 141 @@ -4045,10 +4050,9 @@ entities: parent: 852 type: Transform - uid: 412 - type: WallSolid + type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: -23.5,-12.5 + - pos: -21.5,22.5 parent: 852 type: Transform - uid: 413 @@ -4090,9 +4094,9 @@ entities: parent: 852 type: Transform - uid: 419 - type: WallSolid + type: WallSolidRust components: - - pos: -20.5,-15.5 + - pos: 28.5,-9.5 parent: 852 type: Transform - uid: 420 @@ -4287,15 +4291,11 @@ entities: parent: 852 type: Transform - uid: 446 - type: MagazineMagnumSubMachineGunRubber + type: AirlockArmoryGlassLocked components: - - pos: -13.840517,21.563671 + - pos: -12.5,17.5 parent: 852 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 447 type: WallReinforced components: @@ -4912,13 +4912,11 @@ entities: - location: bridge type: WarpPoint - uid: 539 - type: ShellShotgunBeanbag + type: WallSolidRust components: - - pos: -11.403017,18.407421 + - pos: 32.5,-8.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 540 type: SurveillanceCameraCommand components: @@ -4938,13 +4936,11 @@ entities: parent: 852 type: Transform - uid: 542 - type: ShellShotgunSlug + type: WallSolidRust components: - - pos: -11.153017,18.704296 + - pos: 28.5,-18.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 543 type: AirlockMaintLocked components: @@ -4952,21 +4948,17 @@ entities: parent: 852 type: Transform - uid: 544 - type: ShellShotgunIncendiary + type: CableHV components: - - pos: -11.809267,18.641796 + - pos: -24.5,19.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 545 - type: ShellShotgunIncendiary + type: WallSolidRust components: - - pos: -11.778017,18.344921 + - pos: -10.5,-28.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 546 type: Lamp components: @@ -4994,13 +4986,11 @@ entities: parent: 852 type: Transform - uid: 550 - type: ShellShotgunSlug + type: ClosetMaintenanceFilledRandom components: - - pos: -11.153017,18.469921 + - pos: 46.5,-0.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 551 type: WallSolid components: @@ -5106,11 +5096,13 @@ entities: parent: 852 type: Transform - uid: 563 - type: WallSolid + type: WeaponPistolMk58 components: - - pos: 32.5,-8.5 + - pos: -14.499999,20.873827 parent: 852 type: Transform + - canCollide: False + type: Physics - uid: 564 type: AirlockMaintCargoLocked components: @@ -5573,9 +5565,9 @@ entities: parent: 852 type: Transform - uid: 629 - type: AirlockArmoryGlassLocked + type: Chair components: - - pos: -12.5,17.5 + - pos: 45.5,-1.5 parent: 852 type: Transform - uid: 630 @@ -5994,9 +5986,9 @@ entities: parent: 852 type: Transform - uid: 689 - type: WallSolid + type: Chair components: - - pos: 33.5,-8.5 + - pos: 44.5,-1.5 parent: 852 type: Transform - uid: 690 @@ -13566,6 +13558,18 @@ entities: -17,-36: 0 -17,-34: 0 -17,-33: 0 + -26,-25: 0 + -26,-24: 0 + -26,-23: 0 + -26,-22: 0 + -25,-25: 0 + -25,-24: 0 + -25,-23: 0 + -25,-22: 0 + -24,-25: 0 + -24,-24: 0 + -24,-23: 0 + -24,-22: 0 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -13814,10 +13818,6 @@ entities: color: '#FFFFFFFF' id: BotRight coordinates: 19,17 - 61: - color: '#FFFFFFFF' - id: Arrows - coordinates: 22,17 62: cleanable: True color: '#FFFFFFFF' @@ -13858,11 +13858,6 @@ entities: color: '#FFFFFFFF' id: DirtLight coordinates: 23,17 - 70: - cleanable: True - color: '#FFFFFFFF' - id: DirtLight - coordinates: 22,17 71: cleanable: True color: '#FFFFFFFF' @@ -14316,6 +14311,10 @@ entities: color: '#A4610696' id: QuarterTileOverlayGreyscale90 coordinates: 23,5 + 627: + color: '#FFFFFFFF' + id: Arrows + coordinates: 20,17 -1,0: 9: color: '#334E6DC8' @@ -16576,9 +16575,10 @@ entities: parent: 852 type: Transform - uid: 896 - type: WallReinforced + type: Chair components: - - pos: 28.5,-19.5 + - rot: 3.141592653589793 rad + pos: 45.5,-3.5 parent: 852 type: Transform - uid: 897 @@ -17219,13 +17219,12 @@ entities: parent: 852 type: Transform - uid: 988 - type: ShellShotgunFlash + type: Chair components: - - pos: -11.606142,18.735546 + - rot: 3.141592653589793 rad + pos: 44.5,-3.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 989 type: CarpetBlue components: @@ -18019,9 +18018,9 @@ entities: parent: 852 type: Transform - uid: 1084 - type: WallSolid + type: ReinforcedWindow components: - - pos: -10.5,-28.5 + - pos: 22.5,19.5 parent: 852 type: Transform - uid: 1085 @@ -18742,11 +18741,22 @@ entities: parent: 852 type: Transform - uid: 1185 - type: WallReinforced + type: ConveyorBelt components: - - pos: 44.5,-0.5 + - pos: 20.5,21.5 parent: 852 type: Transform + - inputs: + Reverse: + - port: Right + uid: 7550 + Forward: + - port: Left + uid: 7550 + Off: + - port: Middle + uid: 7550 + type: SignalReceiver - uid: 1186 type: Poweredlight components: @@ -19533,15 +19543,11 @@ entities: Toggle: [] type: SignalReceiver - uid: 1273 - type: MagazineRifleRubber + type: CableHV components: - - pos: -14.356142,20.594921 + - pos: 43.5,-0.5 parent: 852 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 1274 type: Poweredlight components: @@ -20118,9 +20124,9 @@ entities: Toggle: [] type: SignalReceiver - uid: 1326 - type: WallReinforced + type: WallSolidRust components: - - pos: 44.5,-1.5 + - pos: 33.5,-8.5 parent: 852 type: Transform - uid: 1327 @@ -20646,21 +20652,21 @@ entities: parent: 852 type: Transform - uid: 1384 - type: WallReinforced + type: WallSolidRust components: - - pos: 44.5,-2.5 + - pos: 25.5,-25.5 parent: 852 type: Transform - uid: 1385 - type: WallReinforced + type: WallSolidRust components: - - pos: 44.5,-3.5 + - pos: 25.5,-21.5 parent: 852 type: Transform - uid: 1386 - type: WallReinforced + type: WallSolidRust components: - - pos: 44.5,-4.5 + - pos: -22.5,18.5 parent: 852 type: Transform - uid: 1387 @@ -22040,50 +22046,15 @@ entities: parent: 852 type: Transform - uid: 1587 - type: TwoWayLever + type: WallSolid components: - - pos: 23.5,17.5 + - pos: -27.5,17.5 parent: 852 type: Transform - - outputs: - Middle: - - port: Off - uid: 3911 - - port: Off - uid: 3910 - - port: Off - uid: 3903 - - port: Off - uid: 3912 - - port: Off - uid: 3901 - Right: - - port: Reverse - uid: 3911 - - port: Reverse - uid: 3910 - - port: Reverse - uid: 3903 - - port: Reverse - uid: 3912 - - port: Reverse - uid: 3901 - Left: - - port: Forward - uid: 3911 - - port: Forward - uid: 3910 - - port: Forward - uid: 3903 - - port: Forward - uid: 3912 - - port: Forward - uid: 3901 - type: SignalTransmitter - uid: 1588 - type: ReinforcedWindow + type: WallSolid components: - - pos: 20.5,22.5 + - pos: -26.5,15.5 parent: 852 type: Transform - uid: 1589 @@ -22380,9 +22351,9 @@ entities: parent: 852 type: Transform - uid: 1634 - type: WallReinforced + type: WallSolid components: - - pos: 42.5,0.5 + - pos: -32.5,15.5 parent: 852 type: Transform - uid: 1635 @@ -22406,7 +22377,7 @@ entities: - uid: 1638 type: WallSolid components: - - pos: 28.5,-9.5 + - pos: -28.5,15.5 parent: 852 type: Transform - uid: 1639 @@ -22496,7 +22467,7 @@ entities: - uid: 1653 type: WallSolid components: - - pos: 23.5,-22.5 + - pos: -19.5,25.5 parent: 852 type: Transform - uid: 1654 @@ -22506,9 +22477,9 @@ entities: parent: 852 type: Transform - uid: 1655 - type: WallSolid + type: WallSolidRust components: - - pos: 23.5,-23.5 + - pos: -20.5,21.5 parent: 852 type: Transform - uid: 1656 @@ -22600,7 +22571,7 @@ entities: - uid: 1670 type: WallSolid components: - - pos: -21.5,15.5 + - pos: -19.5,24.5 parent: 852 type: Transform - uid: 1671 @@ -22634,25 +22605,25 @@ entities: parent: 852 type: Transform - uid: 1676 - type: WallReinforced + type: WallSolidRust components: - - pos: -26.5,15.5 + - pos: -19.5,22.5 parent: 852 type: Transform - uid: 1677 - type: WallReinforced + type: WallSolid components: - - pos: -27.5,15.5 + - pos: -19.5,21.5 parent: 852 type: Transform - uid: 1678 - type: WallReinforced + type: WallSolidRust components: - - pos: -28.5,15.5 + - pos: -19.5,23.5 parent: 852 type: Transform - uid: 1679 - type: WallReinforced + type: WallSolid components: - pos: -29.5,15.5 parent: 852 @@ -22664,9 +22635,9 @@ entities: parent: 852 type: Transform - uid: 1681 - type: WallReinforced + type: WallSolidRust components: - - pos: -19.5,25.5 + - pos: -30.5,15.5 parent: 852 type: Transform - uid: 1682 @@ -22678,21 +22649,21 @@ entities: - canCollide: False type: Physics - uid: 1683 - type: WallReinforced + type: WallSolidRust components: - - pos: -19.5,24.5 + - pos: -20.5,-17.5 parent: 852 type: Transform - uid: 1684 - type: WallReinforced + type: WallSolidRust components: - - pos: -19.5,23.5 + - pos: -27.5,-12.5 parent: 852 type: Transform - uid: 1685 - type: WallReinforced + type: WallSolid components: - - pos: -19.5,22.5 + - pos: -25.5,-12.5 parent: 852 type: Transform - uid: 1686 @@ -22724,15 +22695,15 @@ entities: parent: 852 type: Transform - uid: 1690 - type: WallReinforced + type: WallSolid components: - - pos: -19.5,21.5 + - pos: -33.5,13.5 parent: 852 type: Transform - uid: 1691 type: WallReinforced components: - - pos: -20.5,20.5 + - pos: 10.5,12.5 parent: 852 type: Transform - uid: 1692 @@ -22760,15 +22731,15 @@ entities: parent: 852 type: Transform - uid: 1696 - type: WallReinforced + type: CableHV components: - - pos: -30.5,15.5 + - pos: 8.5,13.5 parent: 852 type: Transform - uid: 1697 - type: WallReinforced + type: WallSolid components: - - pos: -31.5,15.5 + - pos: -38.5,11.5 parent: 852 type: Transform - uid: 1698 @@ -23222,9 +23193,9 @@ entities: parent: 852 type: Transform - uid: 1765 - type: WallSolid + type: ReinforcedWindow components: - - pos: -20.5,-17.5 + - pos: -10.5,13.5 parent: 852 type: Transform - uid: 1766 @@ -23308,21 +23279,21 @@ entities: parent: 852 type: Transform - uid: 1773 - type: WallReinforced + type: WallSolidRust components: - - pos: -25.5,-12.5 + - pos: -23.5,-12.5 parent: 852 type: Transform - uid: 1774 - type: WallReinforced + type: WallSolid components: - - pos: -26.5,-12.5 + - pos: -33.5,12.5 parent: 852 type: Transform - uid: 1775 - type: WallReinforced + type: WallSolid components: - - pos: -34.5,11.5 + - pos: -33.5,11.5 parent: 852 type: Transform - uid: 1776 @@ -23375,10 +23346,9 @@ entities: parent: 852 type: Transform - uid: 1784 - type: WallReinforced + type: WallSolid components: - - rot: 4.371139006309477E-08 rad - pos: 10.5,12.5 + - pos: -34.5,11.5 parent: 852 type: Transform - uid: 1785 @@ -23459,10 +23429,9 @@ entities: parent: 852 type: Transform - uid: 1796 - type: WallReinforced + type: WallSolid components: - - rot: 4.371139006309477E-08 rad - pos: 11.5,11.5 + - pos: -31.5,15.5 parent: 852 type: Transform - uid: 1797 @@ -23528,9 +23497,9 @@ entities: parent: 852 type: Transform - uid: 1806 - type: WallReinforced + type: WallSolidRust components: - - pos: -38.5,11.5 + - pos: -22.5,12.5 parent: 852 type: Transform - uid: 1807 @@ -23627,18 +23596,11 @@ entities: parent: 852 type: Transform - uid: 1822 - type: Poweredlight + type: WallSolidRust components: - - pos: -4.5,14.5 + - pos: -23.5,18.5 parent: 852 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 1823 type: WallSolid components: @@ -24666,9 +24628,9 @@ entities: parent: 852 type: Transform - uid: 1973 - type: WallReinforced + type: CableHV components: - - pos: -10.5,13.5 + - pos: -15.5,-19.5 parent: 852 type: Transform - uid: 1974 @@ -25208,25 +25170,25 @@ entities: - uid: 2049 type: WallReinforced components: - - pos: -27.5,-12.5 + - pos: 42.5,0.5 parent: 852 type: Transform - uid: 2050 - type: WallReinforced + type: CableHV components: - - pos: -33.5,11.5 + - pos: -16.5,-18.5 parent: 852 type: Transform - uid: 2051 - type: WallReinforced + type: WallSolidRust components: - - pos: -33.5,12.5 + - pos: 23.5,-9.5 parent: 852 type: Transform - uid: 2052 - type: WallReinforced + type: CableHV components: - - pos: -33.5,13.5 + - pos: -16.5,-17.5 parent: 852 type: Transform - uid: 2053 @@ -25242,9 +25204,9 @@ entities: parent: 852 type: Transform - uid: 2055 - type: WallReinforced + type: CableHV components: - - pos: -32.5,15.5 + - pos: -16.5,-15.5 parent: 852 type: Transform - uid: 2056 @@ -25425,10 +25387,9 @@ entities: parent: 852 type: Transform - uid: 2082 - type: WallSolid + type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: -22.5,12.5 + - pos: -13.5,-19.5 parent: 852 type: Transform - uid: 2083 @@ -26188,11 +26149,15 @@ entities: parent: 852 type: Transform - uid: 2190 - type: WallSolid + type: VendingMachineCoffee components: - - pos: -23.5,18.5 + - name: Hot drinks machine + type: MetaData + - pos: -11.5,-17.5 parent: 852 type: Transform + - enabled: False + type: AmbientSound - uid: 2191 type: WallReinforced components: @@ -27211,10 +27176,9 @@ entities: parent: 852 type: Transform - uid: 2344 - type: WallSolid + type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: -11.5,-16.5 + - pos: -14.5,-19.5 parent: 852 type: Transform - uid: 2345 @@ -33802,10 +33766,9 @@ entities: parent: 852 type: Transform - uid: 3278 - type: CableHV + type: WallSolid components: - - rot: 4.371139006309477E-08 rad - pos: 42.5,0.5 + - pos: -11.5,-16.5 parent: 852 type: Transform - uid: 3279 @@ -34055,31 +34018,27 @@ entities: parent: 852 type: Transform - uid: 3314 - type: CableHV + type: WallReinforced components: - - rot: 4.371139006309477E-08 rad - pos: 25.5,-9.5 + - pos: 11.5,11.5 parent: 852 type: Transform - uid: 3315 type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: 24.5,-9.5 + - pos: 6.5,13.5 parent: 852 type: Transform - uid: 3316 type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: 23.5,-9.5 + - pos: 9.5,13.5 parent: 852 type: Transform - uid: 3317 type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: 22.5,-9.5 + - pos: 7.5,13.5 parent: 852 type: Transform - uid: 3318 @@ -34544,31 +34503,45 @@ entities: - uid: 3384 type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: -11.5,-18.5 + - pos: -16.5,-16.5 parent: 852 type: Transform - uid: 3385 - type: CableHV + type: WallReinforced components: - - rot: 4.371139006309477E-08 rad - pos: -11.5,-17.5 + - pos: 45.5,-5.5 parent: 852 type: Transform - uid: 3386 - type: CableHV + type: Poweredlight components: - - rot: 4.371139006309477E-08 rad - pos: -11.5,-16.5 + - pos: -3.5,14.5 parent: 852 type: Transform + - powerLoad: 0 + type: ApcPowerReceiver + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 3387 - type: CableHV + type: ConveyorBelt components: - - rot: 4.371139006309477E-08 rad - pos: -11.5,-15.5 + - pos: 20.5,18.5 parent: 852 type: Transform + - inputs: + Reverse: + - port: Right + uid: 7550 + Forward: + - port: Left + uid: 7550 + Off: + - port: Middle + uid: 7550 + type: SignalReceiver - uid: 3388 type: CableHV components: @@ -35682,33 +35655,45 @@ entities: parent: 852 type: Transform - uid: 3548 - type: CableHV + type: BlastDoor components: - - rot: 4.371139006309477E-08 rad - pos: 10.5,12.5 + - pos: 20.5,19.5 parent: 852 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: + - port: Pressed + uid: 3906 + type: SignalReceiver - uid: 3549 - type: CableHV + type: Grille components: - - rot: 4.371139006309477E-08 rad - pos: 10.5,11.5 + - pos: 22.5,22.5 parent: 852 type: Transform - uid: 3550 - type: CableHV + type: BlastDoor components: - - rot: 4.371139006309477E-08 rad - pos: 11.5,11.5 + - pos: 20.5,22.5 parent: 852 type: Transform + - inputs: + Open: [] + Close: [] + Toggle: + - port: Pressed + uid: 3905 + type: SignalReceiver - uid: 3551 - type: CableHV + type: WeaponPistolMk58 components: - - rot: 4.371139006309477E-08 rad - pos: 12.5,11.5 + - pos: -14.499999,20.873827 parent: 852 type: Transform + - canCollide: False + type: Physics - uid: 3552 type: CableHV components: @@ -37808,10 +37793,9 @@ entities: parent: 852 type: Transform - uid: 3851 - type: WallSolid + type: CableHV components: - - rot: 4.371139006309477E-08 rad - pos: 23.5,-9.5 + - pos: -21.5,19.5 parent: 852 type: Transform - uid: 3852 @@ -37889,7 +37873,7 @@ entities: - uid: 3859 type: ClothingNeckScarfStripedRed components: - - pos: 24.464396,-9.604094 + - pos: 24.51451,-9.514836 parent: 852 type: Transform - canCollide: False @@ -38231,24 +38215,11 @@ entities: Toggle: [] type: SignalReceiver - uid: 3881 - type: PoweredSmallLight + type: WallSolidRust components: - - rot: -1.5707963267948966 rad - pos: 43.5,-1.5 + - pos: 37.5,-13.5 parent: 852 type: Transform - - enabled: False - type: AmbientSound - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 3882 type: FirelockEdge components: @@ -38312,19 +38283,11 @@ entities: - canCollide: False type: Physics - uid: 3890 - type: Poweredlight + type: CableHV components: - - rot: -1.5707963267948966 rad - pos: -5.5,16.5 + - pos: -16.5,-19.5 parent: 852 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 3891 type: CableApcExtension components: @@ -38455,22 +38418,11 @@ entities: parent: 852 type: Transform - uid: 3901 - type: ConveyorBelt + type: WallSolidRust components: - - pos: 22.5,22.5 + - pos: 23.5,-23.5 parent: 852 type: Transform - - inputs: - Off: - - port: Middle - uid: 1587 - Forward: - - port: Left - uid: 1587 - Reverse: - - port: Right - uid: 1587 - type: SignalReceiver - uid: 3902 type: Poweredlight components: @@ -38486,22 +38438,11 @@ entities: Toggle: [] type: SignalReceiver - uid: 3903 - type: ConveyorBelt + type: WallSolidRust components: - - pos: 22.5,20.5 + - pos: 23.5,-22.5 parent: 852 type: Transform - - inputs: - Off: - - port: Middle - uid: 1587 - Forward: - - port: Left - uid: 1587 - Reverse: - - port: Right - uid: 1587 - type: SignalReceiver - uid: 3904 type: Autolathe components: @@ -38529,7 +38470,7 @@ entities: - outputs: Pressed: - port: Toggle - uid: 9000 + uid: 3550 type: SignalTransmitter - uid: 3906 type: SignalButton @@ -38542,7 +38483,7 @@ entities: - outputs: Pressed: - port: Toggle - uid: 8999 + uid: 3548 type: SignalTransmitter - uid: 3907 type: Chair @@ -38564,56 +38505,23 @@ entities: parent: 852 type: Transform - uid: 3910 - type: ConveyorBelt + type: WallSolidRust components: - - pos: 22.5,18.5 + - pos: -27.5,15.5 parent: 852 type: Transform - - inputs: - Off: - - port: Middle - uid: 1587 - Forward: - - port: Left - uid: 1587 - Reverse: - - port: Right - uid: 1587 - type: SignalReceiver - uid: 3911 - type: ConveyorBelt + type: WallSolidRust components: - - pos: 22.5,19.5 + - pos: -21.5,15.5 parent: 852 type: Transform - - inputs: - Off: - - port: Middle - uid: 1587 - Forward: - - port: Left - uid: 1587 - Reverse: - - port: Right - uid: 1587 - type: SignalReceiver - uid: 3912 - type: ConveyorBelt + type: CableHV components: - - pos: 22.5,21.5 + - pos: -21.5,23.5 parent: 852 type: Transform - - inputs: - Off: - - port: Middle - uid: 1587 - Forward: - - port: Left - uid: 1587 - Reverse: - - port: Right - uid: 1587 - type: SignalReceiver - uid: 3913 type: Poweredlight components: @@ -39437,19 +39345,11 @@ entities: parent: 852 type: Transform - uid: 4006 - type: Poweredlight + type: WallSolidRust components: - - rot: 1.5707963267948966 rad - pos: -9.5,13.5 + - pos: -20.5,20.5 parent: 852 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 4007 type: ComfyChair components: @@ -41244,13 +41144,11 @@ entities: Toggle: [] type: SignalReceiver - uid: 4233 - type: WeaponSubMachineGunVectorRubber + type: CableHV components: - - pos: -14.356142,21.563671 + - pos: -21.5,24.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 4234 type: TableReinforced components: @@ -41407,13 +41305,11 @@ entities: - canCollide: False type: Physics - uid: 4255 - type: ShellShotgunFlash + type: CableHV components: - - pos: -11.590517,18.485546 + - pos: -22.5,22.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 4256 type: SurveillanceCameraCommand components: @@ -42992,9 +42888,9 @@ entities: parent: 852 type: Transform - uid: 4479 - type: WallSolid + type: CableHV components: - - pos: 37.5,-13.5 + - pos: -25.5,17.5 parent: 852 type: Transform - uid: 4480 @@ -43423,9 +43319,9 @@ entities: parent: 852 type: Transform - uid: 4534 - type: WallSolid + type: CableHV components: - - pos: 35.5,-16.5 + - pos: -25.5,16.5 parent: 852 type: Transform - uid: 4535 @@ -46453,9 +46349,9 @@ entities: parent: 852 type: Transform - uid: 4947 - type: WallSolid + type: CableHV components: - - pos: 25.5,-25.5 + - pos: -22.5,19.5 parent: 852 type: Transform - uid: 4948 @@ -46465,11 +46361,15 @@ entities: parent: 852 type: Transform - uid: 4949 - type: WallSolid + type: MagazineMagnumSubMachineGun components: - - pos: 25.5,-21.5 + - pos: -13.671874,21.561327 parent: 852 type: Transform + - unspawnedCount: 25 + type: BallisticAmmoProvider + - canCollide: False + type: Physics - uid: 4950 type: WallSolid components: @@ -46679,11 +46579,13 @@ entities: parent: 852 type: Transform - uid: 4977 - type: WallReinforced + type: WeaponPistolMk58 components: - - pos: -27.5,17.5 + - pos: -14.374999,20.748827 parent: 852 type: Transform + - canCollide: False + type: Physics - uid: 4978 type: WallReinforced components: @@ -46717,11 +46619,15 @@ entities: parent: 852 type: Transform - uid: 4983 - type: WallSolid + type: MagazineMagnumSubMachineGun components: - - pos: -22.5,18.5 + - pos: -13.828124,21.561327 parent: 852 type: Transform + - unspawnedCount: 25 + type: BallisticAmmoProvider + - canCollide: False + type: Physics - uid: 4984 type: WallSolid components: @@ -46771,9 +46677,9 @@ entities: parent: 852 type: Transform - uid: 4992 - type: WallReinforced + type: CableHV components: - - pos: -23.5,21.5 + - pos: -22.5,20.5 parent: 852 type: Transform - uid: 4993 @@ -46783,15 +46689,15 @@ entities: parent: 852 type: Transform - uid: 4994 - type: WallReinforced + type: CableHV components: - - pos: -21.5,21.5 + - pos: -25.5,15.5 parent: 852 type: Transform - uid: 4995 - type: WallReinforced + type: CableHV components: - - pos: -20.5,21.5 + - pos: -25.5,19.5 parent: 852 type: Transform - uid: 4996 @@ -47904,105 +47810,101 @@ entities: parent: 852 type: Transform - uid: 5141 - type: ShellShotgunBeanbag + type: WeaponSubMachineGunVector components: - - pos: -11.418642,18.641796 + - pos: -14.406249,21.498827 parent: 852 type: Transform - canCollide: False type: Physics - uid: 5142 - type: ShellShotgunBeanbag + type: WallSolid components: - - pos: -11.403017,18.501171 + - pos: -23.5,21.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5143 - type: ShellShotgunFlash + type: WallSolid components: - - pos: -11.590517,18.594921 + - pos: -21.5,21.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5144 - type: ShellShotgunFlash + type: ConveyorBelt components: - - pos: -11.590517,18.548046 + - pos: 20.5,19.5 parent: 852 type: Transform - - canCollide: False - type: Physics + - inputs: + Reverse: + - port: Right + uid: 7550 + Forward: + - port: Left + uid: 7550 + Off: + - port: Middle + uid: 7550 + type: SignalReceiver - uid: 5145 - type: ShellShotgunFlash + type: WallSolidRust components: - - pos: -11.590517,18.423046 + - pos: 37.5,-14.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5146 - type: MagazineRifle + type: WallSolidRust components: - - pos: -14.2021265,20.661888 + - pos: 37.5,-12.5 parent: 852 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 5147 - type: MagazineRifleRubber + type: WallSolidRust components: - - pos: -14.590517,20.594921 + - pos: 35.5,-16.5 parent: 852 type: Transform - - unspawnedCount: 25 - type: BallisticAmmoProvider - - canCollide: False - type: Physics - uid: 5148 - type: WeaponRifleLecter + type: WallSolidRust components: - - pos: -14.387392,20.923046 + - pos: 28.5,-19.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5149 - type: ShellShotgunFlash + type: MaintenanceFluffSpawner components: - - pos: -11.590517,18.344921 + - pos: 45.5,-2.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5150 - type: ShellShotgunIncendiary + type: ConveyorBelt components: - - pos: -11.793642,18.485546 + - pos: 20.5,20.5 parent: 852 type: Transform - - canCollide: False - type: Physics + - inputs: + Reverse: + - port: Right + uid: 7550 + Forward: + - port: Left + uid: 7550 + Off: + - port: Middle + uid: 7550 + type: SignalReceiver - uid: 5151 - type: ShellShotgunFlash + type: WindoorArmoryLocked components: - - pos: -11.606142,18.673046 + - pos: -12.5,18.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5152 - type: ShellShotgunSlug + type: WallSolid components: - - pos: -11.153017,18.360546 + - pos: -26.5,-12.5 parent: 852 type: Transform - - canCollide: False - type: Physics - uid: 5153 type: ClothingOuterHardsuitSecurity components: @@ -48057,17 +47959,11 @@ entities: ents: [] type: ContainerContainer - uid: 5158 - type: ClusterBangFull + type: Dresser components: - - pos: -14.496767,20.173046 + - pos: -22.5,-21.5 parent: 852 type: Transform - - canCollide: False - type: Physics - - containers: - cluster-flash: !type:Container - ents: [] - type: ContainerContainer - uid: 5159 type: SolarPanel components: @@ -48415,15 +48311,15 @@ entities: parent: 852 type: Transform - uid: 5214 - type: CableHV + type: WallSolidRust components: - - pos: -20.5,25.5 + - pos: -31.5,-10.5 parent: 852 type: Transform - uid: 5215 - type: CableHV + type: Grille components: - - pos: -19.5,25.5 + - pos: -10.5,13.5 parent: 852 type: Transform - uid: 5216 @@ -61516,9 +61412,9 @@ entities: parent: 852 type: Transform - uid: 6894 - type: ReinforcedWindow + type: Catwalk components: - - pos: 20.5,19.5 + - pos: 42.5,-0.5 parent: 852 type: Transform - uid: 6895 @@ -62034,9 +61930,9 @@ entities: parent: 852 type: Transform - uid: 6966 - type: WallSolid + type: Catwalk components: - - pos: 37.5,-12.5 + - pos: 42.5,-1.5 parent: 852 type: Transform - uid: 6967 @@ -62046,9 +61942,9 @@ entities: parent: 852 type: Transform - uid: 6968 - type: WallSolid + type: Catwalk components: - - pos: 37.5,-14.5 + - pos: 42.5,-2.5 parent: 852 type: Transform - uid: 6969 @@ -62450,15 +62346,11 @@ entities: parent: 852 type: Transform - uid: 7035 - type: FirelockGlass + type: Catwalk components: - - pos: 38.5,-16.5 + - pos: 42.5,-3.5 parent: 852 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics - uid: 7036 type: AirlockGlass components: @@ -62528,9 +62420,9 @@ entities: parent: 852 type: Transform - uid: 7045 - type: WallReinforced + type: Catwalk components: - - pos: 28.5,-18.5 + - pos: 42.5,-4.5 parent: 852 type: Transform - uid: 7046 @@ -62586,16 +62478,14 @@ entities: - canCollide: False type: Physics - uid: 7053 - type: FirelockEdge + type: PottedPlant27 components: - - rot: 1.5707963267948966 rad - pos: 38.5,-25.5 + - pos: 45.5,-4.5 parent: 852 type: Transform - - airBlocked: False - type: Airtight - - canCollide: False - type: Physics + - containers: + stash: !type:ContainerSlot {} + type: ContainerContainer - uid: 7054 type: CableApcExtension components: @@ -62819,11 +62709,23 @@ entities: parent: 852 type: Transform - uid: 7082 - type: Grille + type: PoweredSmallLight components: - - pos: 20.5,19.5 + - pos: 45.5,-0.5 parent: 852 type: Transform + - enabled: False + type: AmbientSound + - powerLoad: 0 + type: ApcPowerReceiver + - containers: + light_bulb: !type:ContainerSlot {} + type: ContainerContainer + - inputs: + On: [] + Off: [] + Toggle: [] + type: SignalReceiver - uid: 7083 type: Poweredlight components: @@ -63809,9 +63711,9 @@ entities: - color: '#FF1212FF' type: AtmosPipeColor - uid: 7219 - type: WindoorArmoryLocked + type: Grille components: - - pos: -12.5,18.5 + - pos: 22.5,19.5 parent: 852 type: Transform - uid: 7220 @@ -66332,11 +66234,46 @@ entities: parent: 852 type: Transform - uid: 7550 - type: WallReinforced + type: TwoWayLever components: - - pos: -26.5,-13.5 + - pos: 22.5,18.5 parent: 852 type: Transform + - outputs: + Left: + - port: Forward + uid: 66 + - port: Forward + uid: 5144 + - port: Forward + uid: 3387 + - port: Forward + uid: 5150 + - port: Forward + uid: 1185 + Right: + - port: Reverse + uid: 66 + - port: Reverse + uid: 5144 + - port: Reverse + uid: 3387 + - port: Reverse + uid: 5150 + - port: Reverse + uid: 1185 + Middle: + - port: Off + uid: 66 + - port: Off + uid: 5144 + - port: Off + uid: 3387 + - port: Off + uid: 5150 + - port: Off + uid: 1185 + type: SignalTransmitter - uid: 7551 type: SignalButton components: @@ -66585,9 +66522,9 @@ entities: parent: 852 type: Transform - uid: 7584 - type: MaintenanceWeaponSpawner + type: WallSolidRust components: - - pos: -0.5,-11.5 + - pos: -21.5,-24.5 parent: 852 type: Transform - uid: 7585 @@ -66719,11 +66656,13 @@ entities: parent: 852 type: Transform - uid: 7605 - type: WallSolid + type: MaterialCloth components: - - pos: -31.5,-10.5 + - pos: 9.311571,18.704794 parent: 852 type: Transform + - canCollide: False + type: Physics - uid: 7606 type: ClosetMaintenanceFilledRandom components: @@ -67035,19 +66974,13 @@ entities: parent: 852 type: Transform - uid: 7652 - type: Poweredlight + type: MaterialDurathread components: - - rot: -1.5707963267948966 rad - pos: -11.5,13.5 + - pos: 9.655321,18.439169 parent: 852 type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver + - canCollide: False + type: Physics - uid: 7653 type: Poweredlight components: @@ -69054,35 +68987,43 @@ entities: parent: 852 type: Transform - uid: 7943 - type: Catwalk + type: ReinforcedWindow components: - - pos: 42.5,-4.5 + - pos: 22.5,22.5 parent: 852 type: Transform - uid: 7944 - type: Catwalk + type: PlasticFlapsAirtightClear components: - - pos: 42.5,-3.5 + - pos: 20.5,19.5 parent: 852 type: Transform - uid: 7945 - type: Catwalk + type: PlasticFlapsAirtightClear components: - - pos: 42.5,-2.5 + - pos: 20.5,22.5 parent: 852 type: Transform - uid: 7946 - type: Catwalk + type: DrinkWhiskeyBottleFull components: - - pos: 42.5,-1.5 + - pos: -23.917706,-23.088701 parent: 852 type: Transform + - canCollide: False + type: Physics + - solution: drink + type: DrainableSolution - uid: 7947 - type: Catwalk + type: DrinkShotGlass components: - - pos: 42.5,-0.5 + - pos: -23.448956,-23.260576 parent: 852 type: Transform + - canCollide: False + type: Physics + - solution: drink + type: DrainableSolution - uid: 7948 type: ClosetMaintenanceFilledRandom components: @@ -69098,7 +69039,7 @@ entities: - uid: 7950 type: DoubleEmergencyOxygenTankFilled components: - - pos: 46.497593,-0.5324049 + - pos: 52.51837,-0.3993065 parent: 852 type: Transform - canCollide: False @@ -70814,16 +70755,15 @@ entities: parent: 852 type: Transform - uid: 8203 - type: FirelockEdge + type: DrinkShotGlass components: - - rot: 1.5707963267948966 rad - pos: 38.5,-23.5 + - pos: -23.261456,-23.119951 parent: 852 type: Transform - - airBlocked: False - type: Airtight - canCollide: False type: Physics + - solution: drink + type: DrainableSolution - uid: 8204 type: Bucket components: @@ -70865,14 +70805,13 @@ entities: parent: 852 type: Transform - uid: 8210 - type: FirelockEdge + type: MagazinePistol components: - - rot: 1.5707963267948966 rad - pos: 38.5,-24.5 + - pos: -14.468749,20.780077 parent: 852 type: Transform - - airBlocked: False - type: Airtight + - unspawnedCount: 10 + type: BallisticAmmoProvider - canCollide: False type: Physics - uid: 8211 @@ -76522,31 +76461,21 @@ entities: ents: [] type: ContainerContainer - uid: 8999 - type: BlastDoor + type: MagazinePistol components: - - pos: 22.5,19.5 + - pos: -14.281249,20.780077 parent: 852 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: - - port: Pressed - uid: 3906 - type: SignalReceiver + - unspawnedCount: 10 + type: BallisticAmmoProvider + - canCollide: False + type: Physics - uid: 9000 - type: BlastDoor + type: CableHV components: - - pos: 22.5,22.5 + - pos: -23.5,19.5 parent: 852 type: Transform - - inputs: - Open: [] - Close: [] - Toggle: - - port: Pressed - uid: 3905 - type: SignalReceiver - uid: 9001 type: ReinforcedPlasmaWindow components: @@ -77885,9 +77814,9 @@ entities: - fixtures: [] type: Fixtures - uid: 9166 - type: WallSolid + type: CableHV components: - - pos: -21.5,-24.5 + - pos: 5.5,13.5 parent: 852 type: Transform - uid: 9167 @@ -79557,6 +79486,12 @@ entities: - pos: -21.5,-22.5 parent: 852 type: Transform +- uid: 9390 + type: CableHV + components: + - pos: 4.5,13.5 + parent: 852 + type: Transform - uid: 9391 type: AirlockExternalGlassShuttleEmergencyLocked components: @@ -79623,6 +79558,18 @@ entities: hard: False id: docking type: Fixtures +- uid: 9393 + type: CableHV + components: + - pos: 13.5,10.5 + parent: 852 + type: Transform +- uid: 9394 + type: CableHV + components: + - pos: 13.5,9.5 + parent: 852 + type: Transform - uid: 9395 type: SignSecurearea components: @@ -80133,6 +80080,12 @@ entities: - pos: -21.5,-31.5 parent: 852 type: Transform +- uid: 9474 + type: CableHV + components: + - pos: 13.5,8.5 + parent: 852 + type: Transform - uid: 9475 type: RandomPosterContraband components: @@ -80171,4 +80124,200 @@ entities: type: Transform - canCollide: False type: Physics +- uid: 9481 + type: CableHV + components: + - pos: 13.5,7.5 + parent: 852 + type: Transform +- uid: 9482 + type: CableHV + components: + - pos: 13.5,6.5 + parent: 852 + type: Transform +- uid: 9483 + type: CableHV + components: + - pos: 13.5,5.5 + parent: 852 + type: Transform +- uid: 9484 + type: CableHV + components: + - pos: 13.5,4.5 + parent: 852 + type: Transform +- uid: 9485 + type: CableHV + components: + - pos: 12.5,4.5 + parent: 852 + type: Transform +- uid: 9486 + type: CableHV + components: + - pos: 11.5,4.5 + parent: 852 + type: Transform +- uid: 9487 + type: CableHV + components: + - pos: 10.5,4.5 + parent: 852 + type: Transform +- uid: 9488 + type: CableHV + components: + - pos: 9.5,4.5 + parent: 852 + type: Transform +- uid: 9489 + type: CableHV + components: + - pos: 8.5,4.5 + parent: 852 + type: Transform +- uid: 9490 + type: CableHV + components: + - pos: 7.5,4.5 + parent: 852 + type: Transform +- uid: 9491 + type: CableHV + components: + - pos: 6.5,4.5 + parent: 852 + type: Transform +- uid: 9492 + type: CableHV + components: + - pos: 5.5,4.5 + parent: 852 + type: Transform +- uid: 9493 + type: CableHV + components: + - pos: 4.5,4.5 + parent: 852 + type: Transform +- uid: 9494 + type: CableHV + components: + - pos: 3.5,4.5 + parent: 852 + type: Transform +- uid: 9495 + type: CableHV + components: + - pos: 3.5,5.5 + parent: 852 + type: Transform +- uid: 9496 + type: CableHV + components: + - pos: 3.5,6.5 + parent: 852 + type: Transform +- uid: 9497 + type: CableHV + components: + - pos: 3.5,7.5 + parent: 852 + type: Transform +- uid: 9498 + type: CableHV + components: + - pos: 3.5,8.5 + parent: 852 + type: Transform +- uid: 9499 + type: CableHV + components: + - pos: 3.5,9.5 + parent: 852 + type: Transform +- uid: 9500 + type: CableHV + components: + - pos: 3.5,10.5 + parent: 852 + type: Transform +- uid: 9501 + type: CableHV + components: + - pos: 3.5,11.5 + parent: 852 + type: Transform +- uid: 9502 + type: CableHV + components: + - pos: 3.5,12.5 + parent: 852 + type: Transform +- uid: 9503 + type: CableHV + components: + - pos: 3.5,13.5 + parent: 852 + type: Transform +- uid: 9504 + type: CableHV + components: + - pos: 25.5,-10.5 + parent: 852 + type: Transform +- uid: 9505 + type: CableHV + components: + - pos: 24.5,-10.5 + parent: 852 + type: Transform +- uid: 9506 + type: CableHV + components: + - pos: 23.5,-10.5 + parent: 852 + type: Transform +- uid: 9507 + type: CableHV + components: + - pos: 22.5,-10.5 + parent: 852 + type: Transform +- uid: 9508 + type: CableHV + components: + - pos: 21.5,-10.5 + parent: 852 + type: Transform +- uid: 9509 + type: CableHV + components: + - pos: 43.5,0.5 + parent: 852 + type: Transform +- uid: 9510 + type: Table + components: + - pos: 45.5,-2.5 + parent: 852 + type: Transform +- uid: 9511 + type: Table + components: + - pos: 44.5,-2.5 + parent: 852 + type: Transform +- uid: 9512 + type: WallmountTelescreen + components: + - pos: 11.5,25.5 + parent: 852 + type: Transform + - containers: + board: !type:Container + ents: [] + type: ContainerContainer ... diff --git a/Resources/Maps/waystation.yml b/Resources/Maps/waystation.yml index 104184e444be..5d914d3debf0 100644 --- a/Resources/Maps/waystation.yml +++ b/Resources/Maps/waystation.yml @@ -98,7 +98,7 @@ grids: - ind: 0,2 tiles: MQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA0AAAANAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAANAAAADQAAAA0AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAADcAAAAxAAAANwAAADQAAAA0AAAANAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA0AAAANAAAADQAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAAMQAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAADcAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAA2AAAANgAAADYAAAA3AAAAMQAAADcAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAAxAAAANwAAADEAAAA3AAAANgAAADYAAAA2AAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADYAAAA2AAAANgAAADcAAAAxAAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAAxAAAAMQAAADEAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAANgAAADYAAAA2AAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADYAAAA2AAAANgAAAAAAAAAAAAAANwAAADEAAAAxAAAAMQAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAA2AAAANgAAADYAAAAAAAAAAAAAADcAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAANgAAADYAAAA2AAAAAAAAAAAAAAA3AAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAADEAAAAxAAAAMQAAAA== - ind: 1,3 - tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAAMQAAADcAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAA3AAAANwAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA3AAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAAAAAAAAAAAADYAAAAAAAAANgAAADYAAAA2AAAAAAAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAAAAAAAA2AAAAAAAAADYAAAA2AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA2AAAAAAAAADYAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAAA== + tiles: NwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAAMQAAADcAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA2AAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAANwAAADcAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAANgAAADYAAAAAAAAAAAAAADYAAAAAAAAANgAAADYAAAA2AAAAAAAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAAAAAAAA2AAAAAAAAADYAAAA2AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA2AAAAAAAAADYAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAA2AAAANgAAADYAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAADYAAAA2AAAANgAAAA== - ind: 0,3 tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAMQAAADEAAAAxAAAANwAAADcAAAA3AAAANwAAADcAAAA3AAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAANwAAADcAAAA3AAAANwAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAA3AAAANwAAADcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAA== - ind: -1,2 @@ -332,6 +332,8 @@ entities: pos: -12.5,-1.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -14972,18 +14974,24 @@ entities: - pos: -7.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 132 type: VendingMachineYouTool components: - pos: -6.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 133 type: VendingMachineSnack components: - pos: -6.5,-3.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 134 type: ClosetEmergencyFilledRandom components: @@ -15609,6 +15617,8 @@ entities: pos: -0.5,-11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -15639,12 +15649,16 @@ entities: - pos: -2.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 215 type: VendingMachineSnack components: - pos: -2.5,-4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 216 type: PottedPlantRandom components: @@ -16947,6 +16961,8 @@ entities: pos: 4.5,-12.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -17120,15 +17136,42 @@ entities: parent: 82 type: Transform - uid: 407 - type: AirlockExternalLocked + type: AirlockExternalGlassShuttleEmergencyLocked components: - - pos: 8.5,11.5 + - rot: -1.5707963267948966 rad + pos: 8.5,4.5 parent: 82 type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures - uid: 408 - type: AirlockExternalLocked + type: AirlockExternal components: - - pos: 10.5,4.5 + - pos: 10.5,11.5 parent: 82 type: Transform - uid: 409 @@ -17502,6 +17545,8 @@ entities: pos: 12.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -17541,6 +17586,8 @@ entities: - pos: 4.5,-7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -17726,6 +17773,8 @@ entities: pos: 16.5,-13.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -18278,6 +18327,8 @@ entities: pos: 12.5,-13.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -18295,6 +18346,8 @@ entities: pos: 9.5,-13.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -18495,6 +18548,8 @@ entities: - pos: 8.5,-23.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 588 type: DisposalUnit components: @@ -19124,12 +19179,16 @@ entities: - pos: 16.5,-7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 664 type: VendingMachineNutri components: - pos: 16.5,-8.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 665 type: SeedExtractor components: @@ -19382,6 +19441,8 @@ entities: - pos: 19.5,-4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 694 type: AirlockGlass components: @@ -20067,6 +20128,8 @@ entities: - pos: 19.5,-0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 770 type: SignalButton components: @@ -20766,6 +20829,8 @@ entities: pos: 13.5,1.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -20783,6 +20848,8 @@ entities: pos: 18.5,1.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -21100,15 +21167,42 @@ entities: parent: 82 type: Transform - uid: 895 - type: AirlockExternalLocked + type: AirlockExternalGlassShuttleEmergencyLocked components: - - pos: 10.5,11.5 + - rot: -1.5707963267948966 rad + pos: 8.5,11.5 parent: 82 type: Transform + - fixtures: + - shape: !type:PolygonShape + vertices: + - 0.49,-0.49 + - 0.49,0.49 + - -0.49,0.49 + - -0.49,-0.49 + mask: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + - InteractImpassable + layer: + - MidImpassable + - HighImpassable + - BulletImpassable + - InteractImpassable + - Opaque + mass: 100 + - shape: !type:PhysShapeCircle + position: 0,-0.5 + radius: 0.2 + hard: False + id: docking + type: Fixtures - uid: 896 - type: AirlockExternalLocked + type: AirlockExternal components: - - pos: 8.5,4.5 + - pos: 10.5,4.5 parent: 82 type: Transform - uid: 897 @@ -21224,6 +21318,8 @@ entities: - pos: 27.5,6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 914 type: WallSolid components: @@ -21684,6 +21780,8 @@ entities: pos: 22.5,5.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -22009,12 +22107,16 @@ entities: - pos: 24.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1006 type: VendingMachineCola components: - pos: 25.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1007 type: VendingMachineCigs components: @@ -22023,6 +22125,8 @@ entities: - pos: 26.5,0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1008 type: Grille components: @@ -22527,6 +22631,8 @@ entities: pos: 30.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -22543,6 +22649,8 @@ entities: - pos: 30.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1069 type: ClosetEmergencyFilledRandom components: @@ -23364,6 +23472,8 @@ entities: pos: 15.5,11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -23381,6 +23491,8 @@ entities: pos: 15.5,6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -23835,6 +23947,8 @@ entities: - pos: 20.5,21.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1221 type: GasVentPump components: @@ -24353,6 +24467,8 @@ entities: - pos: 10.5,19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -24996,12 +25112,16 @@ entities: - pos: 8.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1340 type: VendingMachineSecDrobe components: - pos: 4.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 1341 type: WindowReinforcedDirectional components: @@ -25205,6 +25325,8 @@ entities: pos: 10.5,27.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -28155,6 +28277,8 @@ entities: pos: -5.5,19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -28890,6 +29014,8 @@ entities: pos: -15.5,28.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -28906,6 +29032,8 @@ entities: - pos: -13.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -28923,6 +29051,8 @@ entities: pos: -15.5,21.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -28940,6 +29070,8 @@ entities: pos: -12.5,21.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -29757,6 +29889,8 @@ entities: - pos: -21.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -29774,6 +29908,8 @@ entities: pos: -21.5,22.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -30199,6 +30335,8 @@ entities: pos: -19.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -30215,6 +30353,8 @@ entities: - pos: -14.5,18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -30232,6 +30372,8 @@ entities: pos: -8.5,17.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -32151,12 +32293,16 @@ entities: - pos: 20.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 2178 type: VendingMachineCola components: - pos: 21.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 2179 type: VendingMachineCigs components: @@ -32165,6 +32311,8 @@ entities: - pos: 22.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 2180 type: TableWood components: @@ -32864,6 +33012,8 @@ entities: - pos: -7.5,20.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 2269 type: BlastDoorOpen components: @@ -34021,9 +34171,10 @@ entities: parent: 82 type: Transform - uid: 2391 - type: AirlockGlassShuttle + type: AirlockExternalGlassShuttleLocked components: - - pos: 15.5,50.5 + - rot: 3.141592653589793 rad + pos: 13.5,50.5 parent: 82 type: Transform - fixtures: @@ -34053,9 +34204,10 @@ entities: id: docking type: Fixtures - uid: 2392 - type: AirlockGlassShuttle + type: AirlockExternalGlassShuttleLocked components: - - pos: 13.5,50.5 + - rot: 3.141592653589793 rad + pos: 15.5,50.5 parent: 82 type: Transform - fixtures: @@ -34721,6 +34873,8 @@ entities: pos: 6.5,48.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -34738,6 +34892,8 @@ entities: pos: 6.5,45.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -36112,6 +36268,8 @@ entities: pos: 4.5,42.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -36129,6 +36287,8 @@ entities: pos: 4.5,40.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -36311,6 +36471,8 @@ entities: pos: 5.5,35.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -36800,6 +36962,8 @@ entities: - pos: 1.5,37.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -37674,6 +37838,8 @@ entities: pos: 22.5,47.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -38100,6 +38266,8 @@ entities: - pos: 31.5,39.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 2863 type: TableWood components: @@ -38122,6 +38290,8 @@ entities: - pos: 30.5,39.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -38139,6 +38309,8 @@ entities: pos: 31.5,34.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -38787,6 +38959,8 @@ entities: pos: 31.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -38804,6 +38978,8 @@ entities: pos: 28.5,23.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -39140,6 +39316,8 @@ entities: - pos: 32.5,22.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -39157,6 +39335,8 @@ entities: pos: 27.5,18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -39583,6 +39763,8 @@ entities: - pos: 33.5,18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3046 type: PottedPlantRandom components: @@ -39653,6 +39835,8 @@ entities: pos: 26.5,22.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -39676,6 +39860,8 @@ entities: pos: 20.5,26.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -40265,6 +40451,8 @@ entities: pos: 31.5,10.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -41052,6 +41240,8 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/chapel.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 3221 type: TableWood components: @@ -41148,6 +41338,8 @@ entities: - pos: 36.5,11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -41187,6 +41379,8 @@ entities: pos: 24.5,-4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -41223,6 +41417,8 @@ entities: - pos: 24.5,-1.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -42438,12 +42634,16 @@ entities: - pos: 40.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3393 type: VendingMachineSnack components: - pos: 41.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3394 type: PottedPlantRandom components: @@ -42485,6 +42685,8 @@ entities: - pos: 43.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3399 type: VendingMachineCigs components: @@ -42493,6 +42695,8 @@ entities: - pos: 44.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3400 type: Poweredlight components: @@ -44618,12 +44822,16 @@ entities: - pos: 46.5,18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3684 type: VendingMachineVendomat components: - pos: 45.5,18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3685 type: ClothingHandsGlovesColorYellow components: @@ -45687,6 +45895,8 @@ entities: - pos: 48.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -45703,6 +45913,8 @@ entities: - pos: 50.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -45840,6 +46052,8 @@ entities: pos: 39.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -45857,6 +46071,8 @@ entities: pos: 41.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -46252,12 +46468,16 @@ entities: - pos: 52.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3889 type: VendingMachineWallMedical components: - pos: 51.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3890 type: WallWeaponCapacitorRecharger components: @@ -46616,6 +46836,8 @@ entities: - pos: 58.5,2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3944 type: WindoorChemistryLocked components: @@ -46821,6 +47043,8 @@ entities: - pos: 58.5,12.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 3970 type: DisposalUnit components: @@ -47409,6 +47633,8 @@ entities: - pos: 15.5,9.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -47446,6 +47672,8 @@ entities: - pos: 56.5,-0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4038 type: ClothingEyesGlassesMeson components: @@ -48370,6 +48598,8 @@ entities: - pos: 66.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4150 type: MedicalBed components: @@ -49294,6 +49524,8 @@ entities: - pos: 68.5,6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49310,6 +49542,8 @@ entities: - pos: 71.5,6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49355,6 +49589,8 @@ entities: pos: 71.5,-0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49372,6 +49608,8 @@ entities: pos: 71.5,-3.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -49992,6 +50230,8 @@ entities: - pos: 77.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50081,6 +50321,8 @@ entities: - pos: 74.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4361 type: WallReinforced components: @@ -50524,6 +50766,8 @@ entities: pos: 74.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50541,6 +50785,8 @@ entities: pos: 79.5,1.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50558,6 +50804,8 @@ entities: pos: 73.5,-0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50575,6 +50823,8 @@ entities: pos: 73.5,3.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50591,6 +50841,8 @@ entities: - pos: 78.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -50998,6 +51250,8 @@ entities: - pos: 81.5,8.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4469 type: WindowReinforcedDirectional components: @@ -51837,6 +52091,8 @@ entities: - pos: 79.5,15.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4576 type: PottedPlantRandom components: @@ -52279,6 +52535,8 @@ entities: - pos: 67.5,14.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -54840,6 +55098,8 @@ entities: - pos: 86.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -54857,6 +55117,8 @@ entities: pos: 83.5,6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -55169,6 +55431,8 @@ entities: pos: 48.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -55191,24 +55455,32 @@ entities: - pos: 48.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4936 type: VendingMachineSovietSoda components: - pos: 53.5,-2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4937 type: VendingMachineDiscount components: - pos: 55.5,-2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4938 type: VendingMachineCola components: - pos: 54.5,-2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4939 type: VendingMachineCigs components: @@ -55217,6 +55489,8 @@ entities: - pos: 52.5,-2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 4940 type: ClosetEmergencyFilledRandom components: @@ -56076,6 +56350,8 @@ entities: - pos: 46.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5040 type: CableApcExtension components: @@ -57624,6 +57900,8 @@ entities: - pos: 36.5,-12.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5215 type: GasVentPump components: @@ -57794,6 +58072,8 @@ entities: - pos: 35.5,-19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -58138,6 +58418,8 @@ entities: - pos: 44.5,-11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5289 type: VendingMachineCigs components: @@ -58146,6 +58428,8 @@ entities: - pos: 45.5,-11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5290 type: WaterCooler components: @@ -59682,6 +59966,8 @@ entities: - pos: 53.5,-20.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -59699,6 +59985,8 @@ entities: pos: 44.5,-21.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -59998,6 +60286,8 @@ entities: pos: 60.5,-24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -60498,6 +60788,8 @@ entities: pos: 59.5,-17.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -60906,6 +61198,8 @@ entities: pos: 64.5,-10.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -61148,6 +61442,8 @@ entities: pos: 49.5,-9.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -61179,6 +61475,8 @@ entities: pos: 52.5,-6.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -61541,6 +61839,8 @@ entities: - pos: 11.5,-20.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -61729,6 +62029,8 @@ entities: - pos: 12.5,-18.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5731 type: DisposalUnit components: @@ -61786,6 +62088,8 @@ entities: - pos: 13.5,-19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5739 type: RandomArcade components: @@ -62346,6 +62650,8 @@ entities: pos: 8.5,-30.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -62362,6 +62668,8 @@ entities: - pos: 11.5,-28.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -62379,6 +62687,8 @@ entities: pos: 11.5,-32.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -62396,6 +62706,8 @@ entities: pos: 14.5,-31.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -62813,6 +63125,8 @@ entities: - pos: 15.5,-24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -63409,6 +63723,8 @@ entities: - pos: 20.5,-15.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 5910 type: BaseAPC components: @@ -64961,6 +65277,8 @@ entities: pos: 23.5,-14.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -64978,6 +65296,8 @@ entities: pos: 26.5,-14.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -64994,6 +65314,8 @@ entities: - pos: 23.5,-11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65010,6 +65332,8 @@ entities: - pos: 26.5,-11.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65722,6 +66046,8 @@ entities: pos: 25.5,-24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65739,6 +66065,8 @@ entities: pos: 22.5,-24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65755,6 +66083,8 @@ entities: - pos: 25.5,-19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -65771,6 +66101,8 @@ entities: - pos: 21.5,-19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -66461,6 +66793,8 @@ entities: pos: 26.5,-29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -67786,12 +68120,16 @@ entities: - pos: 23.5,-33.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 6384 type: VendingMachineSnack components: - pos: 23.5,-34.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 6385 type: ToolboxMechanicalFilled components: @@ -70263,6 +70601,8 @@ entities: - pos: 35.5,-29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 6654 type: TableWood components: @@ -70695,6 +71035,8 @@ entities: pos: 42.5,-29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -72292,6 +72634,8 @@ entities: pos: 42.5,-29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -72309,6 +72653,8 @@ entities: pos: 21.5,-30.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -73440,13 +73786,13 @@ entities: - uid: 7017 type: WallReinforced components: - - pos: 20.5,51.5 + - pos: 22.5,52.5 parent: 82 type: Transform - uid: 7018 - type: WallReinforced + type: Grille components: - - pos: 21.5,51.5 + - pos: 22.5,50.5 parent: 82 type: Transform - uid: 7019 @@ -73474,41 +73820,40 @@ entities: parent: 82 type: Transform - uid: 7023 - type: ReinforcedWindow + type: APCBasic components: - - pos: 20.5,49.5 + - rot: 1.5707963267948966 rad + pos: 22.5,52.5 parent: 82 type: Transform - uid: 7024 type: ReinforcedWindow components: - - pos: 20.5,50.5 + - pos: 22.5,49.5 parent: 82 type: Transform - uid: 7025 type: Grille components: - - pos: 20.5,50.5 + - pos: 22.5,49.5 parent: 82 type: Transform - uid: 7026 - type: Grille + type: WallReinforced components: - - pos: 20.5,49.5 + - pos: 22.5,54.5 parent: 82 type: Transform - uid: 7027 - type: Chair + type: WallReinforced components: - - rot: -1.5707963267948966 rad - pos: 21.5,50.5 + - pos: 22.5,53.5 parent: 82 type: Transform - uid: 7028 - type: Chair + type: ReinforcedWindow components: - - rot: -1.5707963267948966 rad - pos: 21.5,49.5 + - pos: 22.5,50.5 parent: 82 type: Transform - uid: 7029 @@ -73538,6 +73883,8 @@ entities: - pos: 25.5,45.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7033 type: VendingMachineCigs components: @@ -73546,6 +73893,8 @@ entities: - pos: 25.5,46.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7034 type: Barricade components: @@ -73645,23 +73994,31 @@ entities: parent: 82 type: Transform - uid: 7047 - type: WallReinforced + type: SpawnPointDetective components: - - pos: 21.5,52.5 + - pos: 29.5,26.5 parent: 82 type: Transform - uid: 7048 - type: WallReinforced + type: ForensicScanner components: - - pos: 21.5,53.5 + - pos: 29.47085,25.620602 parent: 82 type: Transform + - canCollide: False + type: Physics - uid: 7049 - type: WallReinforced + type: BoxForensicPad components: - - pos: 21.5,54.5 + - pos: 29.15835,25.558102 parent: 82 type: Transform + - canCollide: False + type: Physics + - containers: + storagebase: !type:Container + ents: [] + type: ContainerContainer - uid: 7050 type: WallReinforced components: @@ -73680,12 +74037,6 @@ entities: - pos: 25.5,54.5 parent: 82 type: Transform -- uid: 7053 - type: ReinforcedWindow - components: - - pos: 21.5,55.5 - parent: 82 - type: Transform - uid: 7054 type: ReinforcedWindow components: @@ -73728,12 +74079,6 @@ entities: - pos: 25.5,55.5 parent: 82 type: Transform -- uid: 7061 - type: Grille - components: - - pos: 21.5,55.5 - parent: 82 - type: Transform - uid: 7062 type: Grille components: @@ -73796,16 +74141,6 @@ entities: - pos: 23.5,57.5 parent: 82 type: Transform -- uid: 7072 - type: ComputerSolarControl - components: - - pos: 22.5,54.5 - parent: 82 - type: Transform - - containers: - board: !type:Container - ents: [] - type: ContainerContainer - uid: 7073 type: OxygenCanister components: @@ -73832,20 +74167,6 @@ entities: type: Physics - fixtures: [] type: Fixtures -- uid: 7076 - type: Stool - components: - - rot: 3.141592653589793 rad - pos: 22.5,53.5 - parent: 82 - type: Transform -- uid: 7077 - type: BaseAPC - components: - - rot: 1.5707963267948966 rad - pos: 21.5,52.5 - parent: 82 - type: Transform - uid: 7078 type: PoweredSmallLight components: @@ -73853,6 +74174,8 @@ entities: pos: 24.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -73870,6 +74193,8 @@ entities: pos: 26.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -73941,6 +74266,8 @@ entities: pos: 31.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -73958,6 +74285,8 @@ entities: pos: 31.5,47.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -73975,6 +74304,8 @@ entities: pos: 31.5,44.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -76750,6 +77081,8 @@ entities: pos: 40.5,57.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77544,6 +77877,8 @@ entities: pos: 40.5,38.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77561,6 +77896,8 @@ entities: pos: 37.5,34.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77747,6 +78084,8 @@ entities: pos: 33.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77848,6 +78187,8 @@ entities: pos: 30.5,29.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77981,6 +78322,8 @@ entities: pos: 37.5,27.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -77998,6 +78341,8 @@ entities: pos: 34.5,36.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -78015,6 +78360,8 @@ entities: pos: 38.5,42.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -78585,6 +78932,8 @@ entities: - pos: 52.5,34.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7683 type: VendingMachineCigs components: @@ -78593,6 +78942,8 @@ entities: - pos: 52.5,33.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7684 type: Table components: @@ -78629,12 +78980,16 @@ entities: - pos: 52.5,26.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7690 type: VendingMachineEngivend components: - pos: 53.5,26.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7691 type: DisposalUnit components: @@ -79120,6 +79475,8 @@ entities: - pos: 50.5,35.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 7745 type: LockerEngineerFilled components: @@ -80505,6 +80862,8 @@ entities: pos: 62.5,46.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -80521,6 +80880,8 @@ entities: - pos: 51.5,57.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -82569,6 +82930,8 @@ entities: - pos: 59.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84541,6 +84904,8 @@ entities: pos: 74.5,40.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84558,6 +84923,8 @@ entities: pos: 74.5,37.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84575,6 +84942,8 @@ entities: pos: 74.5,34.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84592,6 +84961,8 @@ entities: pos: 74.5,31.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84609,6 +84980,8 @@ entities: pos: 74.5,28.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -84626,6 +84999,8 @@ entities: pos: 74.5,25.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -85802,6 +86177,8 @@ entities: type: Transform - sprite: Structures/Machines/VendingMachines/cigs.rsi type: Sprite + - enabled: False + type: AmbientSound - uid: 8596 type: ReinforcedWindow components: @@ -86265,6 +86642,8 @@ entities: pos: 89.5,-2.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86282,6 +86661,8 @@ entities: pos: 89.5,-5.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86375,6 +86756,8 @@ entities: pos: 85.5,-5.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86392,6 +86775,8 @@ entities: pos: 80.5,-5.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -86408,6 +86793,8 @@ entities: - pos: 79.5,-7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -88171,6 +88558,8 @@ entities: - pos: 64.5,22.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 8883 type: CableApcExtension components: @@ -88587,6 +88976,8 @@ entities: - pos: 48.5,35.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 8952 type: SubstationBasic components: @@ -89600,12 +89991,6 @@ entities: - pos: 17.5,30.5 parent: 82 type: Transform -- uid: 9119 - type: CableApcExtension - components: - - pos: 21.5,52.5 - parent: 82 - type: Transform - uid: 9120 type: CableApcExtension components: @@ -108435,6 +108820,8 @@ entities: pos: 84.5,17.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -108500,6 +108887,8 @@ entities: pos: 69.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -108630,6 +109019,8 @@ entities: pos: 57.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -112433,6 +112824,8 @@ entities: - pos: -3.5,31.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 11831 type: Table components: @@ -117568,12 +117961,6 @@ entities: - pos: 23.5,56.5 parent: 82 type: Transform -- uid: 12483 - type: CableHV - components: - - pos: 22.5,54.5 - parent: 82 - type: Transform - uid: 12484 type: CableHV components: @@ -118912,6 +119299,8 @@ entities: - pos: 88.5,13.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -118929,6 +119318,8 @@ entities: pos: 91.5,10.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -119116,18 +119507,14 @@ entities: - pos: 17.5,47.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 12734 type: SpawnPointHeadOfPersonnel components: - pos: 28.5,18.5 parent: 82 type: Transform -- uid: 12735 - type: SpawnPointSecurityOfficer - components: - - pos: 29.5,26.5 - parent: 82 - type: Transform - uid: 12736 type: SpawnPointBartender components: @@ -119688,6 +120075,8 @@ entities: - pos: 62.5,37.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 12804 type: VendingMachineTankDispenserEVA components: @@ -119696,6 +120085,8 @@ entities: - pos: 33.5,-24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 12805 type: CableMV components: @@ -120593,6 +120984,8 @@ entities: pos: 69.5,22.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120629,6 +121022,8 @@ entities: pos: 89.5,5.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120645,6 +121040,8 @@ entities: - pos: 90.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120700,6 +121097,8 @@ entities: - pos: 88.5,13.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120717,6 +121116,8 @@ entities: pos: 89.5,10.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120734,6 +121135,8 @@ entities: pos: 65.5,15.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -120751,6 +121154,8 @@ entities: pos: 61.5,15.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -122291,22 +122696,6 @@ entities: - pos: 23.5,57.5 parent: 82 type: Transform -- uid: 13195 - type: CableHVStack - components: - - pos: 22.444117,52.60961 - parent: 82 - type: Transform - - canCollide: False - type: Physics -- uid: 13196 - type: CableHVStack - components: - - pos: 22.600367,52.39086 - parent: 82 - type: Transform - - canCollide: False - type: Physics - uid: 13197 type: Grille components: @@ -125595,6 +125984,8 @@ entities: pos: 50.5,-0.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -125612,6 +126003,8 @@ entities: pos: 48.5,4.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -125718,6 +126111,8 @@ entities: pos: 11.5,-10.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126244,29 +126639,6 @@ entities: - pos: 22.5,52.5 parent: 82 type: Transform -- uid: 13827 - type: CableMV - components: - - pos: 21.5,52.5 - parent: 82 - type: Transform -- uid: 13828 - type: PoweredSmallLight - components: - - rot: 1.5707963267948966 rad - pos: 22.5,53.5 - parent: 82 - type: Transform - - powerLoad: 0 - type: ApcPowerReceiver - - containers: - light_bulb: !type:ContainerSlot {} - type: ContainerContainer - - inputs: - On: [] - Off: [] - Toggle: [] - type: SignalReceiver - uid: 13829 type: PoweredSmallLight components: @@ -126274,6 +126646,8 @@ entities: pos: 23.5,56.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126291,6 +126665,8 @@ entities: pos: 13.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126308,6 +126684,8 @@ entities: pos: 15.5,49.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126509,6 +126887,8 @@ entities: pos: 51.5,24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126634,6 +127014,8 @@ entities: - pos: 34.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126650,6 +127032,8 @@ entities: - pos: 36.5,7.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126666,6 +127050,8 @@ entities: - pos: 3.5,16.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126683,6 +127069,8 @@ entities: pos: -4.5,15.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126754,6 +127142,8 @@ entities: - pos: 13.5,-20.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - uid: 13874 type: MaintenanceFluffSpawner components: @@ -126873,6 +127263,8 @@ entities: pos: 33.5,24.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -126901,6 +127293,8 @@ entities: - pos: 54.5,19.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -127143,6 +127537,8 @@ entities: - pos: -6.5,39.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: @@ -127160,6 +127556,8 @@ entities: pos: -4.5,47.5 parent: 82 type: Transform + - enabled: False + type: AmbientSound - powerLoad: 0 type: ApcPowerReceiver - containers: diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 0e37ae49691d..c6aa383550a4 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -54,3 +54,11 @@ description: vending-machine-action-description useDelay: 30 event: !type:VendingMachineSelfDispenseEvent + +- type: instantAction + id: ToggleBlock + name: action-name-blocking + description: action-description-blocking + icon: Objects/Weapons/Melee/shields.rsi/teleriot-icon.png + iconOn: Objects/Weapons/Melee/shields.rsi/teleriot-on.png + event: !type:ToggleActionEvent diff --git a/Resources/Prototypes/Body/Mechanisms/rat.yml b/Resources/Prototypes/Body/Mechanisms/rat.yml index 9e5864537d44..ba2776b073c5 100644 --- a/Resources/Prototypes/Body/Mechanisms/rat.yml +++ b/Resources/Prototypes/Body/Mechanisms/rat.yml @@ -13,3 +13,5 @@ components: - type: Stomach maxVolume: 50 # they're hungry + - type: Sprite + state: stomach \ No newline at end of file diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index bd517c12ca04..422736cda832 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -71,6 +71,9 @@ abstract: true components: - type: Mechanism + - type: Sprite + netsync: false + sprite: Mobs/Species/Human/organs.rsi - type: entity id: OrganAnimalLungs diff --git a/Resources/Prototypes/Catalog/Research/technologies.yml b/Resources/Prototypes/Catalog/Research/technologies.yml index 8b9472462dc0..643d2b39223b 100644 --- a/Resources/Prototypes/Catalog/Research/technologies.yml +++ b/Resources/Prototypes/Catalog/Research/technologies.yml @@ -144,58 +144,8 @@ # Security Technology Tree -- type: technology - name: "security technology" - id: SecurityTechnology - description: Beginning of the long hard road to exosuits. - icon: - sprite: Objects/Weapons/Melee/stunbaton.rsi - state: stunbaton_off - requiredPoints: 10000 - requiredTechnologies: - - BasicResearch - unlockedRecipes: - - Flash - - Handcuffs - - Stunbaton - - FlashPayload - -- type: technology - name: "non-lethal technology" - id: NonLethalTechnology - description: For the softer approach to detaining. - icon: - sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi - state: beanbag - requiredPoints: 8000 - requiredTechnologies: - - SecurityTechnology - unlockedRecipes: - - ShellShotgunBeanbag - - ShellTranquilizer - - ShellShotgunFlash - - CartridgePistolRubber - - CartridgeMagnumRubber - - CartridgeCaselessRifleRubber - - CartridgeLightRifleRubber - - CartridgeRifleRubber - -- type: technology - name: "ballistic technology" - id: BallisticTechnology - description: Just a fancy term for guns. - icon: - sprite: Objects/Weapons/Guns/Pistols/mk58.rsi - state: icon - requiredPoints: 15000 - requiredTechnologies: - - SecurityTechnology - unlockedRecipes: - - CartridgePistol - - ShellShotgun - - ShellShotgunFlare - - CartridgeLightRifle - - CartridgeMagnum +# Empty, as all the security tech is now available +# roundstart in the security techfab. #- type: technology # name: "ballistic technology" diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml index 004b017facd3..d6a2cd6aea26 100644 --- a/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/sec.yml @@ -11,6 +11,9 @@ ClothingEyesGlassesSunglasses: 2 ClothingBeltSecurityWebbing: 5 Zipties: 12 + RiotShield: 2 + RiotLaserShield: 2 + RiotBulletShield: 2 # security officers need to follow a diet regimen! contrabandInventory: FoodDonutHomer: 12 diff --git a/Resources/Prototypes/Damage/containers.yml b/Resources/Prototypes/Damage/containers.yml index 2fde20d34a91..523edd88ff9b 100644 --- a/Resources/Prototypes/Damage/containers.yml +++ b/Resources/Prototypes/Damage/containers.yml @@ -15,3 +15,12 @@ - Heat - Shock - Structural # this probably should be in separate container + +- type: damageContainer + id: Shield + supportedGroups: + - Brute + supportedTypes: + - Heat + + diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 8444bb30cb57..c446cfe8769e 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -151,3 +151,138 @@ Bloodloss: 0.0 # no double dipping Cellular: 0.0 +# Represents what a riot shield should block passively +# Each shield will probably have their own passive and active modifier sets +# Honestly it should not be too high +- type: damageModifierSet + id: PassiveRiotShieldBlock + coefficients: + Blunt: 0.9 + Slash: 0.9 + Piercing: 0.9 + Heat: 0.9 + +# Represents what a riot shield should block while active +# Should be a higher reduction because you're anchored +- type: damageModifierSet + id: ActiveRiotShieldBlock + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.8 + Heat: 0.8 + flatReductions: + Blunt: 1 + Slash: 1 + Piercing: 1 + Heat: 1 + +- type: damageModifierSet + id: PassiveRiotLaserShieldBlock + coefficients: + Heat: 0.8 + +- type: damageModifierSet + id: ActiveRiotLaserShieldBlock + coefficients: + Heat: 0.7 + flatReductions: + Heat: 2 + +- type: damageModifierSet + id: PassiveRiotBulletShieldBlock + coefficients: + Blunt: 0.8 + Piercing: 0.8 + +- type: damageModifierSet + id: ActiveRiotBulletShieldBlock + coefficients: + Blunt: 0.7 + Piercing: 0.7 + flatReductions: + Blunt: 1.5 + Piercing: 1.5 + +#It's made from wood, so it should probably take more heat/laser damage +- type: damageModifierSet + id: PassiveBucklerBlock + coefficients: + Blunt: 0.95 + Slash: 0.95 + Piercing: 0.95 + Heat: 2 + +- type: damageModifierSet + id: ActiveBucklerBlock + coefficients: + Blunt: 0.85 + Slash: 0.85 + Piercing: 0.85 + Heat: 2 + flatReductions: + Blunt: 1 + Slash: 1 + Piercing: 1 + +#It's a really crummy shield +- type: damageModifierSet + id: PassiveMakeshiftBlock + coefficients: + Blunt: 0.95 + Slash: 0.95 + Piercing: 0.95 + Heat: 0.9 + +- type: damageModifierSet + id: ActiveMakeshiftBlock + coefficients: + Blunt: 0.85 + Slash: 0.85 + Piercing: 0.85 + Heat: 0.8 + flatReductions: + Blunt: 0.5 + Slash: 0.5 + Piercing: 0.5 + Heat: 1 + +#Clockwork generally takes more laser/heat damage +- type: damageModifierSet + id: PassiveClockworkShieldBlock + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.8 + Heat: 1.5 + +- type: damageModifierSet + id: ActiveClockworkShieldBlock + coefficients: + Blunt: 0.7 + Slash: 0.7 + Piercing: 0.7 + Heat: 1.5 + flatReductions: + Blunt: 1 + Slash: 1 + Piercing: 1 + +#Mirror shield should reflect heat/laser eventually, but be relatively weak to everything else. +- type: damageModifierSet + id: PassiveMirrorShieldBlock + coefficients: + Blunt: 1.2 + Slash: 1.2 + Piercing: 1.2 + Heat: .7 + +- type: damageModifierSet + id: ActiveMirrorShieldBlock + coefficients: + Blunt: 1.2 + Slash: 1.2 + Piercing: 1.2 + Heat: .6 + flatReductions: + Heat: 1 diff --git a/Resources/Prototypes/Diseases/infectious.yml b/Resources/Prototypes/Diseases/infectious.yml index c24fd5a2ce16..73ef5e2c00d2 100644 --- a/Resources/Prototypes/Diseases/infectious.yml +++ b/Resources/Prototypes/Diseases/infectious.yml @@ -220,3 +220,24 @@ min: 420 ## Reachable with a flamer - !type:DiseaseReagentCure reagent: Theobromine + +- type: disease + id: TongueTwister + name: Tongue Twister + cureResist: 0.1 + effects: + - !type:DiseaseGenericStatusEffect + key: Stutter + component: ScrambledAccent + - !type:DiseaseSnough + probability: 0.01 + snoughSound: + collection: Sneezes + - !type:DiseasePopUp + probability: 0.02 + message: disease-think + cures: + - !type:DiseaseBedrestCure + maxLength: 30 + - !type:DiseaseJustWaitCure + maxLength: 400 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml index bc35c09d753d..5295cb6a3d95 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml @@ -70,8 +70,6 @@ types: Bloodloss: -0.25 - - type: DrawableSolution - solution: bloodstream - type: Damageable damageContainer: Biological - type: AtmosExposed diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index b6b3a136ace5..2b54430a68f5 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -50,8 +50,7 @@ # Organs - type: InjectableSolution solution: chemicals - - type: DrawableSolution - solution: bloodstream + - type: IdExaminable - type: HealthExaminable examinableTypes: - Blunt diff --git a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml index d9429140df8e..169bdc0c0238 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/nuke.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/nuke.yml @@ -23,12 +23,10 @@ layer: - HalfWallLayer - type: Nuke - # ~50 tile radius in open space - # close to defaulkt max cap. explosionType: Default maxIntensity: 100 intensitySlope: 5 - totalIntensity: 500000 + totalIntensity: 5000000 diskSlot: name: Disk insertSound: diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 76b342dd8ca1..bcb0bebe6c7f 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -502,9 +502,8 @@ - state: base map: ["enum.GunVisualLayers.Base"] - type: Item - size: 24 sprite: Objects/Fun/toys.rsi - state: base + HeldPrefix: capgun - type: Gun selectedMode: SemiAuto availableModes: diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml new file mode 100644 index 000000000000..6fc6fdb43fab --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -0,0 +1,194 @@ +- type: entity + name: base shield + parent: BaseItem + id: BaseShield + description: A shield! + abstract: true + components: + - type: Sprite + sprite: Objects/Weapons/Melee/shields.rsi + state: riot-icon + netsync: false + - type: Item + sprite: Objects/Weapons/Melee/shields.rsi + size: 100 + HeldPrefix: riot + - type: Blocking + passiveBlockModifier: PassiveRiotShieldBlock + activeBlockModifier: ActiveRiotShieldBlock + blockingToggleAction: + name: action-name-blocking + description: action-description-blocking + icon: Objects/Weapons/Melee/shields.rsi/teleriot-icon.png + iconOn: Objects/Weapons/Melee/shields.rsi/teleriot-on.png + event: !type:ToggleActionEvent + - type: Damageable + damageContainer: Shield + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 #This is probably enough damage before it breaks + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: /Audio/Effects/metalbreak.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel: + min: 5 + max: 5 + SheetGlass: + min: 5 + max: 5 + +#Security Shields + +- type: entity + name: riot shield + parent: BaseShield + id: RiotShield + description: A large tower shield. Good for controlling crowds. + +- type: entity + name: riot laser shield + parent: BaseShield + id: RiotLaserShield + description: A riot shield built for withstanding lasers, but not much else. + components: + - type: Sprite + state: riot_laser-icon + - type: Item + HeldPrefix: riot_laser + - type: Blocking + passiveBlockModifier: PassiveRiotLaserShieldBlock + activeBlockModifier: ActiveRiotLaserShieldBlock + +- type: entity + name: riot bullet shield + parent: BaseShield + id: RiotBulletShield + description: A ballistic riot shield built for withstanding bullets, but not much else. + components: + - type: Sprite + state: riot_bullet-icon + - type: Item + HeldPrefix: riot_bullet + - type: Blocking + passiveBlockModifier: PassiveRiotBulletShieldBlock + activeBlockModifier: ActiveRiotBulletShieldBlock + +#Craftable shields + +- type: entity + name: wooden buckler + parent: BaseShield + id: WoodenBuckler + description: A small round wooden makeshift shield. + components: + - type: Sprite + state: buckler-icon + - type: Item + HeldPrefix: buckler + - type: Blocking + passiveBlockModifier: PassiveBucklerBlock + activeBlockModifier: ActiveBucklerBlock + - type: Construction + graph: WoodenBuckler + node: woodenBuckler + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 #Weaker shield + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: /Audio/Effects/metalbreak.ogg + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 5 + max: 5 + +- type: entity + name: makeshift shield + parent: BaseShield + id: MakeshiftShield + description: A rundown looking shield, not good for much. + components: + - type: Sprite + state: makeshift-icon + - type: Item + HeldPrefix: metal + - type: Blocking + passiveBlockModifier: PassiveMakeshiftBlock + activeBlockModifier: ActiveMakeshiftBlock + - type: Construction + graph: MakeshiftShield + node: makeshiftShield + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 #Very weak shield + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: /Audio/Effects/metalbreak.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel: + min: 1 + max: 2 + +#Magic/Cult Shields (give these to wizard for now) + +- type: entity + name: Clockwork Shield + parent: BaseShield + id: ClockworkShield + description: Ratvar oyrffrf lbh jvgu uvf cebgrpgvba. + components: + - type: Sprite + state: ratvarian-icon + - type: Item + HeldPrefix: ratvarian + - type: Blocking + passiveBlockModifier: PassiveClockworkShieldBlock + activeBlockModifier: ActiveClockworkShieldBlock + #Have it break into brass when clock cult is in + +- type: entity + name: Mirror Shield + parent: BaseShield + id: MirrorShield + description: Eerily glows red... you hear the geometer whispering + components: + - type: Sprite + state: mirror-icon + - type: Item + HeldPrefix: mirror + - type: Blocking + passiveBlockModifier: PassiveMirrorShieldBlock + activeBlockModifier: ActiveMirrorShieldBlock + blockSound: !type:SoundPathSpecifier + path: /Audio/Effects/glass_step.ogg + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: /Audio/Effects/glass_break1.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetGlass: + min: 5 + max: 5 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml index a4cc92a4a7c3..a200ebb51641 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml @@ -44,4 +44,4 @@ components: - type: HealthAnalyzer fake: true - disease: ActiveZombieVirus \ No newline at end of file + disease: ActiveZombieVirus diff --git a/Resources/Prototypes/Entities/Objects/Tools/lantern.yml b/Resources/Prototypes/Entities/Objects/Tools/lantern.yml index 0912343c70b0..a0b089713492 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/lantern.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/lantern.yml @@ -42,3 +42,5 @@ radius: 5 energy: 10 color: "#FFC458" + - type: Flash + uses: 15 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml index 74fd97b5085c..a2c926b8dd8f 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/explosives.yml @@ -43,6 +43,7 @@ id: BaseGrenade name: base grenade parent: BaseItem + abstract: true components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml index 617159b68215..abd0d2da8822 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/tables.yml @@ -9,6 +9,7 @@ sprite: Structures/Furniture/Tables/frame.rsi - type: Icon sprite: Structures/Furniture/Tables/frame.rsi + state: full - type: Fixtures fixtures: - shape: @@ -55,6 +56,7 @@ sprite: Structures/Furniture/Tables/counterwood.rsi - type: Icon sprite: Structures/Furniture/Tables/counterwood.rsi + state: full - type: Fixtures fixtures: - shape: @@ -107,6 +109,7 @@ sprite: Structures/Furniture/Tables/countermetal.rsi - type: Icon sprite: Structures/Furniture/Tables/countermetal.rsi + state: full - 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 8b82310d903a..13f26b21e72c 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -300,40 +300,25 @@ - type: LatheVisuals idleState: icon runningState: icon - - type: ProtolatheDatabase - protolatherecipes: + - type: LatheDatabase + static: true + recipes: - Flash + - FlashPayload - Handcuffs - Stunbaton + - RiotShield - CartridgePistol - - ShellShotgun - - CartridgeLightRifle - CartridgeMagnum - - ShellShotgunBeanbag - - ShellShotgunFlare - - ShellShotgunFlash - CartridgePistolRubber - CartridgeMagnumRubber + - ShellShotgun + - ShellShotgunBeanbag + - ShellShotgunFlare + - CartridgeLightRifle - CartridgeCaselessRifleRubber - CartridgeLightRifleRubber - - CartridgeRifleRubber #Everything below this is shared with other lathes - - FlashlightLantern - - Bucket - - MopItem - - SprayBottle - - FireExtinguisher - - LightTube - - LightBulb - - SheetSteel - - SheetGlass1 - - SheetRGlass - - SheetPlastic - - CableStack - - CableMVStack - - CableHVStack - - TimerTrigger - - Signaller - - SignalTrigger + - CartridgeRifleRubber - type: Machine board: SecurityTechFabCircuitboard - type: Lathe @@ -366,8 +351,9 @@ - type: LatheVisuals idleState: icon runningState: icon - - type: ProtolatheDatabase - protolatherecipes: + - type: LatheDatabase + static: true + recipes: - HandheldHealthAnalyzer - ClothingHandsGlovesLatex - ClothingHandsGlovesNitrile @@ -386,21 +372,7 @@ - CryostasisBeaker - Dropper - Syringe - - PillCanister #Everything below this is shared with other lathes - - FlashlightLantern - - Bucket - - MopItem - - SprayBottle - - FireExtinguisher - - LightTube - - LightBulb - - SheetSteel - - SheetGlass1 - - SheetRGlass - - SheetPlastic - - CableStack - - CableMVStack - - CableHVStack + - PillCanister - type: Machine board: MedicalTechFabCircuitboard diff --git a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml index 1535d6421c68..a86000429527 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/salvage.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/salvage.yml @@ -12,6 +12,9 @@ - type: Rotatable - type: Transform noRot: false + - type: IntrinsicRadio + channels: + - Supply - type: SalvageMagnet offset: 0, -32 - type: ApcPowerReceiver diff --git a/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml new file mode 100644 index 000000000000..b9623142bbbf --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Piping/Atmospherics/special.yml @@ -0,0 +1,21 @@ +# Devices which are not portable but don't link up to anything +- type: entity + id: AtmosDeviceFanTiny + name: tiny fan + description: A tiny fan, releasing a thin gust of air. + placement: + mode: SnapgridCenter + components: + - type: Physics + bodyType: Static + - type: Sprite + sprite: Structures/Piping/Atmospherics/tinyfan.rsi + state: icon + netsync: false + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + - type: Airtight + noAirWhenFullyAirBlocked: false diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml new file mode 100644 index 000000000000..54e1f8f6d158 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/monitors_televisions.yml @@ -0,0 +1,171 @@ +- type: entity + parent: BaseComputer + id: WallmountTelescreenFrame + name: telescreen frame + description: Finally, some decent reception around here... + components: + - type: Appearance + visuals: + - type: ComputerVisualizer + body: telescreen + bodyBroken: telescreen_broken + screen: telescreen + - type: Construction + graph: WallmountTelescreen + node: TelescreenFrame + - type: Sprite + drawdepth: WallMountedItems + netsync: false + sprite: Structures/Machines/computers.rsi + layers: + - map: [ "enum.ComputerVisualizer+Layers.KeyboardOn" ] + visible: false + - map: [ "enum.ComputerVisualizer+Layers.Keyboard" ] + visible: false + - map: [ "enum.ComputerVisualizer+Layers.Body"] + state: television + - map: [ "enum.ComputerVisualizer+Layers.Screen" ] + state: telescreen + shader: shaded + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.20,-0.10,0.25,0.35" + mass: 50 + mask: + - FullTileMask + layer: + - WallLayer + - type: WallMount + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: #excess damage, don't spawn entities. + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Transform + anchored: true + +- type: entity + parent: WallmountTelescreenFrame + id: WallmountTelescreen + suffix: camera monitor + name: telescreen + description: Finally, some decent reception around here... + components: + - type: Construction + graph: WallmountTelescreen + node: Telescreen + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#b89f25" + - type: DeviceNetwork + deviceNetId: Wired + receiveFrequencyId: SurveillanceCamera + transmitFrequencyId: SurveillanceCamera + - type: WiredNetworkConnection + - type: SurveillanceCameraMonitor + - type: ActivatableUI + key: enum.SurveillanceCameraMonitorUiKey.Key + - type: ActivatableUIRequiresPower + - type: UserInterface + interfaces: + - key: enum.SurveillanceCameraMonitorUiKey.Key + type: SurveillanceCameraMonitorBoundUserInterface + +# Wall Televisions + +- type: entity + parent: WallmountTelescreenFrame + id: WallmountTelevisionFrame + name: television frame + description: Finally, some decent reception around here... + components: + - type: Appearance + visuals: + - type: ComputerVisualizer + key: television_wall + body: television_wall + bodyBroken: television_wallbroken + screen: television_wall + - type: Fixtures + fixtures: + - shape: + !type:PhysShapeAabb + bounds: "-0.75,-0.10,0.75,0.35" + mass: 50 + mask: + - FullTileMask + layer: + - WallLayer + - type: Construction + graph: WallmountTelevision + node: TelevisionFrame + - type: Sprite + drawdepth: WallMountedItems + netsync: false + sprite: Structures/Wallmounts/flatscreentv.rsi + layers: + - map: [ "enum.ComputerVisualizer+Layers.KeyboardOn" ] + visible: false + - map: [ "enum.ComputerVisualizer+Layers.Keyboard" ] + visible: false + - map: [ "enum.ComputerVisualizer+Layers.Body"] + state: television_wall + - map: [ "enum.ComputerVisualizer+Layers.Screen" ] + state: television_wall + shader: shaded + +- type: entity + parent: WallmountTelevisionFrame + id: WallmountTelevision + suffix: entertainment + name: television + description: Finally, some decent reception around here... + components: + - type: Appearance + visuals: + - type: ComputerVisualizer + key: television_wall + body: television_wall + bodyBroken: television_wallbroken + screen: television_wallscreen + - type: Construction + graph: WallmountTelevision + node: Television + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: SurveillanceCamera + transmitFrequencyId: SurveillanceCamera + - type: WirelessNetworkConnection + range: 200 + - type: SurveillanceCameraMonitor + - type: ActivatableUI + key: enum.SurveillanceCameraMonitorUiKey.Key + - type: ActivatableUIRequiresPower + - type: UserInterface + interfaces: + - key: enum.SurveillanceCameraMonitorUiKey.Key + type: SurveillanceCameraMonitorBoundUserInterface + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#b89f25" diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index 1b7161bdafe9..f4bab78fe713 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -2,6 +2,7 @@ id: AsteroidRock parent: BaseStructure name: asteroid rock + suffix: Low Ore Yield description: A rocky asteroid. components: - type: Gatherable @@ -44,8 +45,9 @@ - type: entity id: AsteroidRockMining - parent: BaseStructure + parent: AsteroidRock name: asteroid rock + suffix: higher ore yield description: An asteroid. components: - type: Gatherable diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 3b2ad757c0f1..67e1200e6442 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -241,36 +241,6 @@ key: walls base: ice -- type: entity - parent: WallBase - id: WallMetal - name: metal wall - components: - - type: Tag - tags: - - Wall - - RCDDeconstructWhitelist - - type: Sprite - sprite: Structures/Walls/metal.rsi - - type: Icon - sprite: Structures/Walls/metal.rsi - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 300 - behaviors: - - !type:SpawnEntitiesBehavior - spawn: - Girder: - min: 1 - max: 1 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: IconSmooth - key: walls - base: metal - - type: entity parent: WallBase id: WallPlasma @@ -589,6 +559,45 @@ base: solid - type: StaticPrice price: 1 # total material cost. If you change the recipe for the wall you should recalculate this. + +- type: entity + parent: WallBase + id: WallSolidRust + name: solid wall + suffix: rusted + components: + - type: Sprite + sprite: Structures/Walls/solidrust.rsi + - type: Icon + sprite: Structures/Walls/solidrust.rsi + state: full + - type: Construction + graph: Girder + node: wallrust + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 400 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/metalbreak.ogg + - !type:ChangeConstructionNodeBehavior + node: girder + - !type:DoActsBehavior + acts: ["Destruction"] + destroySound: + path: /Audio/Effects/metalbreak.ogg + - type: IconSmooth + key: walls + base: solidrust - type: entity parent: WallBase diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index fdf73ab28d58..90a1594a67ca 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -106,7 +106,7 @@ tags: - Window - type: Sprite - drawdepth: WallTops + drawdepth: Mobs netsync: false sprite: Structures/Windows/directional.rsi state: window diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml index 5db4348be1bd..8f58d761e01f 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/girder.yml @@ -143,3 +143,16 @@ data: 0 - tool: Cutting doAfter: 1 + + - node: wallrust + entity: WallSolidRust + edges: + - to: wall + completed: + - !type:SpawnPrototype + prototype: WallSolid + amount: 1 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 5 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml new file mode 100644 index 000000000000..a6c0629e871e --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/wallmount_telemonitors.yml @@ -0,0 +1,176 @@ +- type: constructionGraph + id: WallmountTelescreen + start: start + graph: + - node: start + edges: + - to: TelescreenFrame + steps: + - material: Steel + amount: 2 + doAfter: 2 + + + - node: TelescreenFrame + entity: WallmountTelescreenFrame + edges: + - to: Wired + steps: + - material: Cable + amount: 5 + doAfter: 3 + + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 2 + + + - node: Wired + edges: + - to: Screen + steps: + - tool: Screwing + doAfter: 2 + - prototype: SurveillanceCameraMonitorCircuitboard + name: surveillance camera monitor board + icon: + sprite: Objects/Misc/module.rsi + state: cpuboard + + - to: TelescreenFrame + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 5 + - !type:SpawnPrototype + prototype: SurveillanceCameraMonitorCircuitboard + amount: 1 + steps: + - tool: Cutting + doAfter: 2 + + + - node: Screen + entity: WallmountTelescreenFrame + edges: + - to: Telescreen + steps: + - tool: Screwing + doAfter: 2 + - material: Glass + amount: 2 + doAfter: 2 + + - to: Wired + completed: + - !type:SpawnPrototype + prototype: SheetGlass1 + amount: 2 + steps: + - tool: Prying + doAfter: 2 + + + - node: Telescreen + entity: WallmountTelescreen + edges: + - to: Screen + steps: + - tool: Screwing + doAfter: 3 + +# TVs + +- type: constructionGraph + id: WallmountTelevision + start: start + graph: + - node: start + edges: + - to: TelevisionFrame + steps: + - material: Steel + amount: 2 + doAfter: 2 + + + - node: TelevisionFrame + entity: WallmountTelevisionFrame + edges: + - to: Wired + steps: + - material: Cable + amount: 5 + doAfter: 3 + + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 2 + + + - node: Wired + edges: + - to: Screen + steps: + - tool: Screwing + doAfter: 2 + - prototype: ComputerTelevisionCircuitboard + name: television board + icon: + sprite: Objects/Misc/module.rsi + state: cpuboard + + - to: TelevisionFrame + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 5 + - !type:SpawnPrototype + prototype: ComputerTelevisionCircuitboard + amount: 1 + steps: + - tool: Cutting + doAfter: 2 + + + - node: Screen + entity: WallmountTelevisionFrame + edges: + - to: Television + steps: + - tool: Screwing + doAfter: 2 + - material: Glass + amount: 2 + doAfter: 2 + + - to: Wired + completed: + - !type:SpawnPrototype + prototype: SheetGlass1 + amount: 2 + steps: + - tool: Prying + doAfter: 2 + + + - node: Television + entity: WallmountTelevision + edges: + - to: Screen + steps: + - tool: Screwing + doAfter: 3 + diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/makeshift_shield.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/makeshift_shield.yml new file mode 100644 index 000000000000..04111791890d --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/makeshift_shield.yml @@ -0,0 +1,17 @@ +- type: constructionGraph + id: MakeshiftShield + start: start + graph: + - node: start + edges: + - to: makeshiftShield + steps: + - material: Cable + amount: 15 + doAfter: 2 + - material: Steel + amount: 30 + doAfter: 2 + + - node: makeshiftShield + entity: MakeshiftShield diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/weapons/wooden_buckler.yml b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/wooden_buckler.yml new file mode 100644 index 000000000000..ea549328a41e --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/weapons/wooden_buckler.yml @@ -0,0 +1,24 @@ +- type: constructionGraph + id: WoodenBuckler + start: start + graph: + - node: start + edges: + - to: woodenBuckler + steps: + - tag: Handcuffs + icon: + sprite: Objects/Misc/cablecuffs.rsi + state: cuff + color: red + name: cuffs + doAfter: 2 + - material: WoodPlank + amount: 20 + doAfter: 2 + - material: Steel + amount: 10 + doAfter: 2 + + - node: woodenBuckler + entity: WoodenBuckler diff --git a/Resources/Prototypes/Recipes/Construction/utilities.yml b/Resources/Prototypes/Recipes/Construction/utilities.yml index 7f75369e70d5..3642fe0dea8f 100644 --- a/Resources/Prototypes/Recipes/Construction/utilities.yml +++ b/Resources/Prototypes/Recipes/Construction/utilities.yml @@ -1,3 +1,4 @@ +# SURVEILLANCE - type: construction name: camera id: camera @@ -11,6 +12,20 @@ state: camera objectType: Structure placementMode: SnapgridCenter + +- type: construction + name: telescreen + id: WallmountTelescreen + graph: WallmountTelescreen + startNode: start + targetNode: Telescreen + category: Utilities + description: "A surveillance camera monitor for the wall." + icon: + sprite: Structures/Machines/computers.rsi + state: telescreen + objectType: Structure + placementMode: SnapgridCenter # POWER - type: construction diff --git a/Resources/Prototypes/Recipes/Construction/weapons.yml b/Resources/Prototypes/Recipes/Construction/weapons.yml index e130075b8aac..81bbbbf1fb37 100644 --- a/Resources/Prototypes/Recipes/Construction/weapons.yml +++ b/Resources/Prototypes/Recipes/Construction/weapons.yml @@ -31,3 +31,24 @@ icon: Objects/Weapons/Guns/Battery/makeshift.rsi/icon.png objectType: Item +- type: construction + name: wooden buckler + id: WoodenBuckler + graph: WoodenBuckler + startNode: start + targetNode: woodenBuckler + category: Weapons + description: A nicely carved wooden shield! + icon: Objects/Weapons/Melee/shields.rsi/buckler-icon.png + objectType: Item + +- type: construction + name: makeshift shield + id: MakeshiftShield + graph: MakeshiftShield + startNode: start + targetNode: makeshiftShield + category: Weapons + description: Crude and falling apart. Why would you make this? + icon: Objects/Weapons/Melee/shields.rsi/makeshift-icon.png + objectType: Item diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index b3475a18f551..170c364d94e0 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -19,6 +19,17 @@ Steel: 300 Plastic: 300 +- type: latheRecipe + id: RiotShield + icon: + sprite: Objects/Weapons/Melee/shields.rsi + state: riot-icon + result: RiotShield + completetime: 4 + materials: + Steel: 400 + Glass: 400 + - type: latheRecipe id: Flash icon: diff --git a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml index 4a9d59d7d736..3d5cadd51ee1 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml @@ -18,6 +18,7 @@ - Armory - Maintenance - Service + - External - type: startingGear id: HoSGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml index fd1a5f156d16..d7dda60666cb 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/security_officer.yml @@ -12,6 +12,7 @@ - Brig - Maintenance - Service + - External - type: startingGear id: SecurityOfficerGear diff --git a/Resources/Prototypes/Roles/Jobs/Security/warden.yml b/Resources/Prototypes/Roles/Jobs/Security/warden.yml index 67864a0d2b25..dbe7213c1466 100644 --- a/Resources/Prototypes/Roles/Jobs/Security/warden.yml +++ b/Resources/Prototypes/Roles/Jobs/Security/warden.yml @@ -13,6 +13,7 @@ - Maintenance - Service - Brig + - External - type: startingGear id: WardenGear diff --git a/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-left.png b/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-left.png index cfcd235b6041..8971b545c64c 100644 Binary files a/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-left.png and b/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-left.png differ diff --git a/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-right.png b/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-right.png index d272d40c9f97..a92eb4f35d43 100644 Binary files a/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-right.png and b/Resources/Textures/Objects/Fun/toys.rsi/capgun-inhand-right.png differ diff --git a/Resources/Textures/Objects/Tools/lantern.rsi/burnt.png b/Resources/Textures/Objects/Tools/lantern.rsi/burnt.png new file mode 100644 index 000000000000..d9f5bd0bbb6f Binary files /dev/null and b/Resources/Textures/Objects/Tools/lantern.rsi/burnt.png differ diff --git a/Resources/Textures/Objects/Tools/lantern.rsi/flashing.png b/Resources/Textures/Objects/Tools/lantern.rsi/flashing.png new file mode 100644 index 000000000000..7573695619f2 Binary files /dev/null and b/Resources/Textures/Objects/Tools/lantern.rsi/flashing.png differ diff --git a/Resources/Textures/Objects/Tools/lantern.rsi/meta.json b/Resources/Textures/Objects/Tools/lantern.rsi/meta.json index e040d0598a97..4f60017e73c5 100644 --- a/Resources/Textures/Objects/Tools/lantern.rsi/meta.json +++ b/Resources/Textures/Objects/Tools/lantern.rsi/meta.json @@ -1,4 +1,4 @@ -{ +{ "version": 1, "license": "CC-BY-SA-3.0", "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/9bebd81ae0b0a7f952b59886a765c681205de31f", @@ -25,6 +25,12 @@ "name": "on-inhand-left", "directions": 4 }, + { + "name": "burnt" + }, + { + "name": "flashing" + }, { "name": "on-inhand-right", "directions": 4 diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-icon.png new file mode 100644 index 000000000000..a3d5f13be2fd Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-left.png new file mode 100644 index 000000000000..0eaa616fe63a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-right.png new file mode 100644 index 000000000000..14a8b2560a3c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/buckler-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-icon.png new file mode 100644 index 000000000000..13dd52422eba Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-left.png new file mode 100644 index 000000000000..46294e54323a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right-on.png new file mode 100644 index 000000000000..bdea4cdae8d3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right-on.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right.png new file mode 100644 index 000000000000..ca89fa559ea1 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-on.png new file mode 100644 index 000000000000..9ea7f2796b3e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield-on.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield1-inhand-left-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield1-inhand-left-on.png new file mode 100644 index 000000000000..3c8a2b38091a Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/eshield1-inhand-left-on.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/makeshift-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/makeshift-icon.png new file mode 100644 index 000000000000..3c5cdb61dcc9 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/makeshift-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/meta.json new file mode 100644 index 000000000000..d44aa9260584 --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/meta.json @@ -0,0 +1,195 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/Citadel-Station-13/Citadel-Station-13/commit/84223c65f5caf667a84f3c0f49bc2a41cdc6c4e3", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "riot-icon" + }, + { + "name": "riot-inhand-right", + "directions": 4 + }, + { + "name": "riot-inhand-left", + "directions": 4 + }, + { + "name": "riot_laser-icon" + }, + { + "name": "riot_laser-inhand-right", + "directions": 4 + }, + { + "name": "riot_laser-inhand-left", + "directions": 4 + }, + { + "name": "riot_bullet-icon" + }, + { + "name": "riot_bullet-inhand-right", + "directions": 4 + }, + { + "name": "riot_bullet-inhand-left", + "directions": 4 + }, + { + "name": "ratvarian-icon" + }, + { + "name": "ratvarian-inhand-right", + "directions": 4 + }, + { + "name": "ratvarian-inhand-left", + "directions": 4 + }, + { + "name": "mirror-icon", + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + }, + { + "name": "mirror-inhand-right", + "directions": 4, + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + }, + { + "name": "mirror-inhand-left", + "directions": 4, + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + }, + { + "name": "buckler-icon" + }, + { + "name": "buckler-inhand-right", + "directions": 4 + }, + { + "name": "buckler-inhand-left", + "directions": 4 + }, + { + "name": "metal-icon" + }, + { + "name": "metal-inhand-right", + "directions": 4 + }, + { + "name": "metal-inhand-left", + "directions": 4 + }, + { + "name": "makeshift-icon" + }, + { + "name": "teleriot-icon" + }, + { + "name": "teleriot-inhand-right", + "directions": 4 + }, + { + "name": "teleriot-inhand-left", + "directions": 4 + }, + { + "name": "teleriot-on" + }, + { + "name": "teleriot-inhand-right-on", + "directions": 4 + }, + { + "name": "teleriot-inhand-left-on", + "directions": 4 + }, + { + "name": "eshield-icon" + }, + { + "name": "eshield-inhand-right", + "directions": 4 + }, + { + "name": "eshield-inhand-left", + "directions": 4 + }, + { + "name": "eshield-on" + }, + { + "name": "eshield-inhand-right-on", + "directions": 4 + }, + { + "name": "eshield1-inhand-left-on", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-icon.png new file mode 100644 index 000000000000..809691e9a5d3 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-left.png new file mode 100644 index 000000000000..dfc21c1e58d6 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-right.png new file mode 100644 index 000000000000..22d3727dd3ae Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/metal-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-icon.png new file mode 100644 index 000000000000..22ff0de0716f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-left.png new file mode 100644 index 000000000000..23e00c0734c7 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-right.png new file mode 100644 index 000000000000..0ce6509226b1 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/mirror-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-icon.png new file mode 100644 index 000000000000..4988d84e43f4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-left.png new file mode 100644 index 000000000000..0f6bb836f638 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-right.png new file mode 100644 index 000000000000..a0cb5577cd22 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/ratvarian-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-icon.png new file mode 100644 index 000000000000..29b2087910cb Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-left.png new file mode 100644 index 000000000000..f4d5743d0d51 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-right.png new file mode 100644 index 000000000000..2765e99f2098 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-icon.png new file mode 100644 index 000000000000..3efef44a6f5f Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-left.png new file mode 100644 index 000000000000..2dfe40f05225 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-right.png new file mode 100644 index 000000000000..468f4ea08948 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_bullet-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-icon.png new file mode 100644 index 000000000000..dd00a61e4113 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-left.png new file mode 100644 index 000000000000..d0cad8761c3e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-right.png new file mode 100644 index 000000000000..f29fe962d9e4 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/riot_laser-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-icon.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-icon.png new file mode 100644 index 000000000000..a3a42435dd99 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-icon.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left-on.png new file mode 100644 index 000000000000..02fc79343efd Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left-on.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left.png new file mode 100644 index 000000000000..e2e170d529e5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-left.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right-on.png new file mode 100644 index 000000000000..0174ec54bc5e Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right-on.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right.png new file mode 100644 index 000000000000..9d56b04c1885 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-inhand-right.png differ diff --git a/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-on.png b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-on.png new file mode 100644 index 000000000000..8cb575af35d5 Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Melee/shields.rsi/teleriot-on.png differ diff --git a/Resources/Textures/Structures/Machines/computers.rsi/meta.json b/Resources/Textures/Structures/Machines/computers.rsi/meta.json index 2ea8b234f6d6..653238d34cdb 100644 --- a/Resources/Textures/Structures/Machines/computers.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/computers.rsi/meta.json @@ -1558,7 +1558,12 @@ "name": "television" }, { - "name": "television_broken" + "name": "telescreen", + "directions": 4 + }, + { + "name": "telescreen_broken", + "directions": 4 }, { "name": "detective_television" diff --git a/Resources/Textures/Structures/Machines/computers.rsi/telescreen.png b/Resources/Textures/Structures/Machines/computers.rsi/telescreen.png new file mode 100644 index 000000000000..6659b1736ada Binary files /dev/null and b/Resources/Textures/Structures/Machines/computers.rsi/telescreen.png differ diff --git a/Resources/Textures/Structures/Machines/computers.rsi/telescreen_broken.png b/Resources/Textures/Structures/Machines/computers.rsi/telescreen_broken.png new file mode 100644 index 000000000000..e6faf190db97 Binary files /dev/null and b/Resources/Textures/Structures/Machines/computers.rsi/telescreen_broken.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/icon.png b/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/icon.png new file mode 100644 index 000000000000..575fa57c2239 Binary files /dev/null and b/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/meta.json b/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/meta.json new file mode 100644 index 000000000000..8e421a125903 --- /dev/null +++ b/Resources/Textures/Structures/Piping/Atmospherics/tinyfan.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 0.01, + 0.01, + 0.01, + 0.01 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/meta.json new file mode 100644 index 000000000000..437216e96a29 --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Created by Peptide90 for SS14", + "size": { + "x": 64, + "y": 32 + }, + "states": [ + { + "name": "television_wall" + }, + { + "name": "television_wall_off" + }, + { + "name": "television_wallbroken" + }, + { + "name": "television_wallscreen", + "delays": [ + [ + 0.7, + 0.7, + 0.7, + 0.7, + 0.7, + 0.7 + ] + ] + } + ] +} diff --git a/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall.png b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall.png new file mode 100644 index 000000000000..af87be387a3b Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall.png differ diff --git a/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall_off.png b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall_off.png new file mode 100644 index 000000000000..af87be387a3b Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wall_off.png differ diff --git a/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallbroken.png b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallbroken.png new file mode 100644 index 000000000000..35c51f62f412 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallbroken.png differ diff --git a/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallscreen.png b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallscreen.png new file mode 100644 index 000000000000..c23028d3c6be Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/flatscreentv.rsi/television_wallscreen.png differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/full.png b/Resources/Textures/Structures/Walls/metal.rsi/full.png deleted file mode 100644 index 02ae3ff3cc8a..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/full.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/meta.json b/Resources/Textures/Structures/Walls/metal.rsi/meta.json deleted file mode 100644 index 04a5d9b6670d..000000000000 --- a/Resources/Textures/Structures/Walls/metal.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/vgstation-coders/vgstation13/raw/99cc2ab62d65a3a7b554dc7b21ff5f57c835f973/icons/turf/walls.dmi", "states": [{"name": "full"}, {"name": "metal0", "directions": 4}, {"name": "metal1", "directions": 4}, {"name": "metal2", "directions": 4}, {"name": "metal3", "directions": 4}, {"name": "metal4", "directions": 4}, {"name": "metal5", "directions": 4}, {"name": "metal6", "directions": 4}, {"name": "metal7", "directions": 4}]} \ No newline at end of file diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal0.png b/Resources/Textures/Structures/Walls/metal.rsi/metal0.png deleted file mode 100644 index fe570c054fac..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal0.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal1.png b/Resources/Textures/Structures/Walls/metal.rsi/metal1.png deleted file mode 100644 index 4374ed1e1011..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal1.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal2.png b/Resources/Textures/Structures/Walls/metal.rsi/metal2.png deleted file mode 100644 index fe570c054fac..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal2.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal3.png b/Resources/Textures/Structures/Walls/metal.rsi/metal3.png deleted file mode 100644 index 4374ed1e1011..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal3.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal4.png b/Resources/Textures/Structures/Walls/metal.rsi/metal4.png deleted file mode 100644 index 95e408947910..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal4.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal5.png b/Resources/Textures/Structures/Walls/metal.rsi/metal5.png deleted file mode 100644 index d4f50d419fb8..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal5.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal6.png b/Resources/Textures/Structures/Walls/metal.rsi/metal6.png deleted file mode 100644 index 95e408947910..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal6.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/metal.rsi/metal7.png b/Resources/Textures/Structures/Walls/metal.rsi/metal7.png deleted file mode 100644 index a880e87e0e00..000000000000 Binary files a/Resources/Textures/Structures/Walls/metal.rsi/metal7.png and /dev/null differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/full.png b/Resources/Textures/Structures/Walls/solidrust.rsi/full.png new file mode 100644 index 000000000000..f76449b04a60 Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/full.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/meta.json b/Resources/Textures/Structures/Walls/solidrust.rsi/meta.json new file mode 100644 index 000000000000..3176ddd0ccc9 --- /dev/null +++ b/Resources/Textures/Structures/Walls/solidrust.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/vgstation-coders/vgstation13/raw/99cc2ab62d65a3a7b554dc7b21ff5f57c835f973/icons/turf/walls.dmi", "states": [{"name": "full"}, {"name": "solidrust0", "directions": 4}, {"name": "solidrust1", "directions": 4}, {"name": "solidrust2", "directions": 4}, {"name": "solidrust3", "directions": 4}, {"name": "solidrust4", "directions": 4}, {"name": "solidrust5", "directions": 4}, {"name": "solidrust6", "directions": 4}, {"name": "solidrust7", "directions": 4}]} \ No newline at end of file diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust0.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust0.png new file mode 100644 index 000000000000..063c345fb76f Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust0.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust1.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust1.png new file mode 100644 index 000000000000..7cf44a388ec9 Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust1.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust2.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust2.png new file mode 100644 index 000000000000..063c345fb76f Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust2.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust3.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust3.png new file mode 100644 index 000000000000..7cf44a388ec9 Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust3.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust4.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust4.png new file mode 100644 index 000000000000..dc035c9933fe Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust4.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust5.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust5.png new file mode 100644 index 000000000000..a9e64f62c3f9 Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust5.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust6.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust6.png new file mode 100644 index 000000000000..dc035c9933fe Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust6.png differ diff --git a/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust7.png b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust7.png new file mode 100644 index 000000000000..396f37008bad Binary files /dev/null and b/Resources/Textures/Structures/Walls/solidrust.rsi/solidrust7.png differ diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 8e005442480e..21399c20741f 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -524,6 +524,7 @@ public sealed class $CLASS$ : Shared$CLASS$ { True True True + True True True True