]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add arrivals (#14755)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Wed, 22 Mar 2023 09:29:55 +0000 (20:29 +1100)
committerGitHub <noreply@github.com>
Wed, 22 Mar 2023 09:29:55 +0000 (04:29 -0500)
* Arrivals

* More arrivals and shitty uhh preload

* cvar

* a

* clockin + maps

* shitter prevention

* Placement

* a

* cvar for tests and dev

* weh

39 files changed:
Content.Client/GameTicking/Managers/ClientGameTicker.cs
Content.Client/Lobby/LobbyState.cs
Content.IntegrationTests/PoolManager.cs
Content.Server/GameTicking/GameTicker.Lobby.cs
Content.Server/GameTicking/GameTicker.RoundFlow.cs
Content.Server/GameTicking/GameTicker.Spawning.cs
Content.Server/GameTicking/GameTicker.cs
Content.Server/Physics/Controllers/MoverController.cs
Content.Server/Shuttles/Components/ArrivalsShuttleComponent.cs [new file with mode: 0644]
Content.Server/Shuttles/Components/ArrivalsSourceComponent.cs [new file with mode: 0644]
Content.Server/Shuttles/Components/ClockedInComponent.cs [new file with mode: 0644]
Content.Server/Shuttles/Components/PendingClockInComponent.cs [new file with mode: 0644]
Content.Server/Shuttles/Components/StationArrivalsComponent.cs [new file with mode: 0644]
Content.Server/Shuttles/Events/FTLStartedEvent.cs [new file with mode: 0644]
Content.Server/Shuttles/Systems/ArrivalsSystem.cs [new file with mode: 0644]
Content.Server/Shuttles/Systems/DockingSystem.AutoDock.cs
Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs
Content.Server/Shuttles/Systems/ShuttleSystem.EmergencyShuttle.cs
Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
Content.Server/Spawners/EntitySystems/SpawnPointSystem.cs
Content.Server/Station/Systems/StationSpawningSystem.cs
Content.Server/Tiles/FloorTileSystem.cs [deleted file]
Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs
Content.Shared/CCVar/CCVars.cs
Content.Shared/GameTicking/SharedGameTicker.cs
Content.Shared/Shuttles/Components/PreventPilotComponent.cs [new file with mode: 0644]
Content.Shared/Tiles/FloorTileAttemptEvent.cs [new file with mode: 0644]
Content.Shared/Tiles/FloorTileComponent.cs [moved from Content.Server/Tiles/FloorTileComponent.cs with 87% similarity]
Content.Shared/Tiles/FloorTileSystem.cs [new file with mode: 0644]
Content.Shared/Tiles/ProtectedGridComponent.cs [new file with mode: 0644]
Resources/ConfigPresets/Build/development.toml
Resources/Locale/en-US/game-ticking/game-ticker.ftl
Resources/Locale/en-US/lobby/lobby-state.ftl
Resources/Locale/en-US/shuttles/arrivals.ftl [new file with mode: 0644]
Resources/Locale/en-US/shuttles/console.ftl
Resources/Locale/en-US/tiles/placement.ftl [new file with mode: 0644]
Resources/Locale/en-US/voting/managers/vote-manager.ftl
Resources/Maps/Misc/terminal.yml [new file with mode: 0644]
Resources/Maps/Shuttles/arrivals.yml [new file with mode: 0644]

index f1e29a2ea1a1cae01c3d17c4bdb8f353d1cdc768..5177ad037c4d16b197128479386a712f1b952fc1 100644 (file)
@@ -34,6 +34,7 @@ namespace Content.Client.GameTicking.Managers
         [ViewVariables] public bool DisallowedLateJoin { get; private set; }
         [ViewVariables] public string? ServerInfoBlob { get; private set; }
         [ViewVariables] public TimeSpan StartTime { get; private set; }
+        [ViewVariables] public TimeSpan PreloadTime { get; private set; }
         [ViewVariables] public TimeSpan RoundStartTimeSpan { get; private set; }
         [ViewVariables] public new bool Paused { get; private set; }
 
@@ -89,6 +90,7 @@ namespace Content.Client.GameTicking.Managers
         private void LobbyStatus(TickerLobbyStatusEvent message)
         {
             StartTime = message.StartTime;
+            PreloadTime = message.PreloadTime;
             RoundStartTimeSpan = message.RoundStartTimeSpan;
             IsGameStarted = message.IsRoundStarted;
             AreWeReady = message.YouAreReady;
index 628e698d311ca2c41af0210c4af3df9c78cd4b95..02efe0daa1d57a81c74549c3573e60e628f074b5 100644 (file)
@@ -138,6 +138,10 @@ namespace Content.Client.Lobby
             {
                 text = Loc.GetString("lobby-state-paused");
             }
+            else if ((_gameTicker.StartTime - _gameTicker.PreloadTime) < _gameTiming.CurTime)
+            {
+                text = Loc.GetString("lobby-state-preloading");
+            }
             else
             {
                 var difference = _gameTicker.StartTime - _gameTiming.CurTime;
index 3054be4996bc00e71efe8472c3e79a99477caff6..997238d0567834c974a19898f569f1a3de3f1ab7 100644 (file)
@@ -53,6 +53,7 @@ public static class PoolManager
         (CVars.ThreadParallelCount.Name,      "1"),
         (CCVars.GameRoleTimers.Name,          "false"),
         (CCVars.CargoShuttles.Name,           "false"),
+        (CCVars.ArrivalsShuttles.Name,        "false"),
         (CCVars.EmergencyShuttleEnabled.Name, "false"),
         (CCVars.ProcgenPreload.Name,          "false"),
         // @formatter:on
index 4dfa75d459cc7240a5d4d1c7c913e24c9860df41..0ef3ba85c4b48fd308e326a3d02ada638b123f26 100644 (file)
@@ -1,6 +1,5 @@
 using System.Linq;
 using Content.Shared.GameTicking;
-using Content.Server.Station.Systems;
 using Content.Server.Station.Components;
 using Robust.Server.Player;
 using Robust.Shared.Network;
@@ -18,6 +17,12 @@ namespace Content.Server.GameTicking
         [ViewVariables]
         private TimeSpan _roundStartTime;
 
+        /// <summary>
+        /// How long before RoundStartTime do we load maps.
+        /// </summary>
+        [ViewVariables]
+        public TimeSpan RoundPreloadTime { get; } = TimeSpan.FromSeconds(15);
+
         [ViewVariables]
         private TimeSpan _pauseTime;
 
@@ -93,7 +98,7 @@ namespace Content.Server.GameTicking
         private TickerLobbyStatusEvent GetStatusMsg(IPlayerSession session)
         {
             _playerGameStatuses.TryGetValue(session.UserId, out var status);
-            return new TickerLobbyStatusEvent(RunLevel != GameRunLevel.PreRoundLobby, LobbySong, LobbyBackground,status == PlayerGameStatus.ReadyToPlay, _roundStartTime, _roundStartTimeSpan, Paused);
+            return new TickerLobbyStatusEvent(RunLevel != GameRunLevel.PreRoundLobby, LobbySong, LobbyBackground,status == PlayerGameStatus.ReadyToPlay, _roundStartTime, RoundPreloadTime, _roundStartTimeSpan, Paused);
         }
 
         private void SendStatusToAll()
index 2e4121e505e47e7121e8082f9b730edb4b027b26..e64837ca9fcecabd1abcaabb67369718372f041a 100644 (file)
@@ -69,6 +69,16 @@ namespace Content.Server.GameTicking
         [ViewVariables]
         public int RoundId { get; private set; }
 
+        /// <summary>
+        /// Returns true if the round's map is eligible to be updated.
+        /// </summary>
+        /// <returns></returns>
+        public bool CanUpdateMap()
+        {
+            return RunLevel == GameRunLevel.PreRoundLobby &&
+                   _roundStartTime - RoundPreloadTime > _gameTiming.CurTime;
+        }
+
         /// <summary>
         ///     Loads all the maps for the given round.
         /// </summary>
@@ -77,11 +87,13 @@ namespace Content.Server.GameTicking
         /// </remarks>
         private void LoadMaps()
         {
+            if (_mapManager.MapExists(DefaultMap))
+                return;
+
             AddGamePresetRules();
 
             DefaultMap = _mapManager.CreateMap();
             _mapManager.AddUninitializedMap(DefaultMap);
-            var startTime = _gameTiming.RealTime;
 
             var maps = new List<GameMapPrototype>();
 
@@ -121,9 +133,6 @@ namespace Content.Server.GameTicking
 
                 LoadGameMap(map, toLoad, null);
             }
-
-            var timeSpan = _gameTiming.RealTime - startTime;
-            _sawmill.Info($"Loaded maps in {timeSpan.TotalMilliseconds:N2}ms.");
         }
 
 
@@ -170,6 +179,7 @@ namespace Content.Server.GameTicking
 
             SendServerMessage(Loc.GetString("game-ticker-start-round"));
 
+            // Just in case it hasn't been loaded previously we'll try loading it.
             LoadMaps();
 
             // map has been selected so update the lobby info text
@@ -487,14 +497,23 @@ namespace Content.Server.GameTicking
                 RoundLengthMetric.Inc(frameTime);
             }
 
-            if (RunLevel != GameRunLevel.PreRoundLobby || Paused ||
-                _roundStartTime > _gameTiming.CurTime ||
+            if (RunLevel != GameRunLevel.PreRoundLobby ||
+                Paused ||
+                _roundStartTime - RoundPreloadTime > _gameTiming.CurTime ||
                 _roundStartCountdownHasNotStartedYetDueToNoPlayers)
             {
                 return;
             }
 
-            StartRound();
+            if (_roundStartTime < _gameTiming.CurTime)
+            {
+                StartRound();
+            }
+            // Preload maps so we can start faster
+            else if (_roundStartTime - RoundPreloadTime < _gameTiming.CurTime)
+            {
+                LoadMaps();
+            }
         }
 
         public TimeSpan RoundDuration()
index 6acef242f2b87b00eb3ffbeac203da3b888ad072..0826638a6fb18c04776e1fa053d12eb23e941d0f 100644 (file)
@@ -3,6 +3,7 @@ using System.Linq;
 using Content.Server.Ghost;
 using Content.Server.Ghost.Components;
 using Content.Server.Players;
+using Content.Server.Shuttles.Systems;
 using Content.Server.Spawners.Components;
 using Content.Server.Speech.Components;
 using Content.Server.Station.Components;
@@ -227,6 +228,13 @@ namespace Content.Server.GameTicking
                     Loc.GetString("job-greet-station-name", ("stationName", metaData.EntityName)));
             }
 
+            // Arrivals is unable to do this during spawning as no actor is attached yet.
+            // We also want this message last.
+            if (lateJoin && _arrivals.Enabled)
+            {
+                _chatManager.DispatchServerMessage(player, Loc.GetString("latejoin-arrivals-direction"));
+            }
+
             // We raise this event directed to the mob, but also broadcast it so game rules can do something now.
             PlayersJoinedRoundNormally++;
             var aev = new PlayerSpawnCompleteEvent(mob, player, jobId, lateJoin, PlayersJoinedRoundNormally, station, character);
index 97f07cb1d4420720b6065aef777d0e94b396daba..a7f7ef547131ce37f214a0e8fbea822f3b935b66 100644 (file)
@@ -9,6 +9,7 @@ using Content.Server.Maps;
 using Content.Server.Players.PlayTimeTracking;
 using Content.Server.Preferences.Managers;
 using Content.Server.ServerUpdates;
+using Content.Server.Shuttles.Systems;
 using Content.Server.Station.Systems;
 using Content.Shared.Chat;
 using Content.Shared.Damage;
@@ -34,8 +35,8 @@ namespace Content.Server.GameTicking
 {
     public sealed partial class GameTicker : SharedGameTicker
     {
+        [Dependency] private readonly ArrivalsSystem _arrivals = default!;
         [Dependency] private readonly MapLoaderSystem _map = default!;
-        [Dependency] private readonly MobStateSystem _mobState = default!;
         [Dependency] private readonly SharedTransformSystem _transform = default!;
 
         [ViewVariables] private bool _initialized;
index a202c44784d0d7d65e8b5979c897f263ec0ac0b0..2e9e4fcb808dbb00baba1acc04ee2ca18d9e24a0 100644 (file)
@@ -264,7 +264,7 @@ namespace Content.Server.Physics.Controllers
             // Reset inputs for non-piloted shuttles.
             foreach (var (shuttle, _) in _shuttlePilots)
             {
-                if (newPilots.ContainsKey(shuttle) || FTLLocked(shuttle)) continue;
+                if (newPilots.ContainsKey(shuttle) || CanPilot(shuttle)) continue;
 
                 _thruster.DisableLinearThrusters(shuttle);
             }
@@ -275,7 +275,7 @@ namespace Content.Server.Physics.Controllers
             // then do the movement input once for it.
             foreach (var (shuttle, pilots) in _shuttlePilots)
             {
-                if (Paused(shuttle.Owner) || FTLLocked(shuttle) || !TryComp(shuttle.Owner, out PhysicsComponent? body)) continue;
+                if (Paused(shuttle.Owner) || CanPilot(shuttle) || !TryComp(shuttle.Owner, out PhysicsComponent? body)) continue;
 
                 var shuttleNorthAngle = Transform(body.Owner).WorldRotation;
 
@@ -559,10 +559,11 @@ namespace Content.Server.Physics.Controllers
             }
         }
 
-        private bool FTLLocked(ShuttleComponent shuttle)
+        private bool CanPilot(ShuttleComponent shuttle)
         {
-            return (TryComp<FTLComponent>(shuttle.Owner, out var ftl) &&
-                    (ftl.State & (FTLState.Starting | FTLState.Travelling | FTLState.Arriving)) != 0x0);
+            return TryComp<FTLComponent>(shuttle.Owner, out var ftl) &&
+                   (ftl.State & (FTLState.Starting | FTLState.Travelling | FTLState.Arriving)) != 0x0 ||
+                   HasComp<PreventPilotComponent>(shuttle.Owner);
         }
 
     }
diff --git a/Content.Server/Shuttles/Components/ArrivalsShuttleComponent.cs b/Content.Server/Shuttles/Components/ArrivalsShuttleComponent.cs
new file mode 100644 (file)
index 0000000..564f795
--- /dev/null
@@ -0,0 +1,13 @@
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
+
+namespace Content.Server.Shuttles.Components;
+
+[RegisterComponent]
+public sealed class ArrivalsShuttleComponent : Component
+{
+    [DataField("station")]
+    public EntityUid Station;
+
+    [DataField("nextTransfer", customTypeSerializer:typeof(TimeOffsetSerializer))]
+    public TimeSpan NextTransfer;
+}
diff --git a/Content.Server/Shuttles/Components/ArrivalsSourceComponent.cs b/Content.Server/Shuttles/Components/ArrivalsSourceComponent.cs
new file mode 100644 (file)
index 0000000..549a5b2
--- /dev/null
@@ -0,0 +1,10 @@
+namespace Content.Server.Shuttles.Components;
+
+/// <summary>
+/// Added to a designated arrivals station for players to spawn at, if enabled.
+/// </summary>
+[RegisterComponent]
+public sealed class ArrivalsSourceComponent : Component
+{
+
+}
diff --git a/Content.Server/Shuttles/Components/ClockedInComponent.cs b/Content.Server/Shuttles/Components/ClockedInComponent.cs
new file mode 100644 (file)
index 0000000..5415b72
--- /dev/null
@@ -0,0 +1,11 @@
+namespace Content.Server.Shuttles.Components;
+
+/// <summary>
+/// Added to players after having been spawned onto the station.
+/// Prevents them from taking the arrivals shuttle.
+/// </summary>
+[RegisterComponent]
+public sealed class ClockedInComponent : Component
+{
+
+}
diff --git a/Content.Server/Shuttles/Components/PendingClockInComponent.cs b/Content.Server/Shuttles/Components/PendingClockInComponent.cs
new file mode 100644 (file)
index 0000000..549bc13
--- /dev/null
@@ -0,0 +1,10 @@
+namespace Content.Server.Shuttles.Components;
+
+/// <summary>
+/// Added to arrivals latejoins until they have arrived at the station.
+/// </summary>
+[RegisterComponent]
+public sealed class PendingClockInComponent : Component
+{
+
+}
diff --git a/Content.Server/Shuttles/Components/StationArrivalsComponent.cs b/Content.Server/Shuttles/Components/StationArrivalsComponent.cs
new file mode 100644 (file)
index 0000000..fded1b1
--- /dev/null
@@ -0,0 +1,15 @@
+using Robust.Shared.Utility;
+
+namespace Content.Server.Shuttles.Components;
+
+/// <summary>
+/// Added to a station that is available for arrivals shuttles.
+/// </summary>
+[RegisterComponent]
+public sealed class StationArrivalsComponent : Component
+{
+    [DataField("shuttle")]
+    public EntityUid Shuttle;
+
+    [DataField("shuttlePath")] public ResourcePath ShuttlePath = new("/Maps/Shuttles/arrivals.yml");
+}
diff --git a/Content.Server/Shuttles/Events/FTLStartedEvent.cs b/Content.Server/Shuttles/Events/FTLStartedEvent.cs
new file mode 100644 (file)
index 0000000..0915591
--- /dev/null
@@ -0,0 +1,9 @@
+using Robust.Shared.Map;
+
+namespace Content.Server.Shuttles.Events;
+
+/// <summary>
+/// Raised when a shuttle has moved to FTL space.
+/// </summary>
+[ByRefEvent]
+public readonly record struct FTLStartedEvent(EntityUid? FromMapUid, Matrix3 FTLFrom, Angle FromRotation);
diff --git a/Content.Server/Shuttles/Systems/ArrivalsSystem.cs b/Content.Server/Shuttles/Systems/ArrivalsSystem.cs
new file mode 100644 (file)
index 0000000..97bf75b
--- /dev/null
@@ -0,0 +1,372 @@
+using System.Linq;
+using Content.Server.Administration;
+using Content.Server.Chat.Managers;
+using Content.Server.GameTicking;
+using Content.Server.GameTicking.Events;
+using Content.Server.Shuttles.Components;
+using Content.Server.Shuttles.Events;
+using Content.Server.Spawners.Components;
+using Content.Server.Spawners.EntitySystems;
+using Content.Server.Station.Components;
+using Content.Server.Station.Systems;
+using Content.Shared.Administration;
+using Content.Shared.CCVar;
+using Content.Shared.Shuttles.Components;
+using Content.Shared.Spawners.Components;
+using Content.Shared.Tiles;
+using Robust.Server.GameObjects;
+using Robust.Shared.Configuration;
+using Robust.Shared.Console;
+using Robust.Shared.Map;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+using Robust.Shared.Utility;
+
+namespace Content.Server.Shuttles.Systems;
+
+/// <summary>
+/// If enabled spawns players on a separate arrivals station before they can transfer to the main station.
+/// </summary>
+public sealed class ArrivalsSystem : EntitySystem
+{
+    [Dependency] private readonly IConfigurationManager _cfgManager = default!;
+    [Dependency] private readonly IConsoleHost _console = default!;
+    [Dependency] private readonly IGameTiming _timing = default!;
+    [Dependency] private readonly IMapManager _mapManager = default!;
+    [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly GameTicker _ticker = default!;
+    [Dependency] private readonly MapLoaderSystem _loader = default!;
+    [Dependency] private readonly SharedTransformSystem _transform = default!;
+    [Dependency] private readonly ShuttleSystem _shuttles = default!;
+    [Dependency] private readonly StationSpawningSystem _stationSpawning = default!;
+    [Dependency] private readonly StationSystem _station = default!;
+
+    /// <summary>
+    /// If enabled then spawns players on an alternate map so they can take a shuttle to the station.
+    /// </summary>
+    public bool Enabled { get; private set; }
+
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<PlayerSpawningEvent>(OnPlayerSpawn, before: new []{typeof(SpawnPointSystem)});
+        SubscribeLocalEvent<StationArrivalsComponent, ComponentStartup>(OnArrivalsStartup);
+        SubscribeLocalEvent<ArrivalsShuttleComponent, ComponentStartup>(OnShuttleStartup);
+        SubscribeLocalEvent<ArrivalsShuttleComponent, EntityUnpausedEvent>(OnShuttleUnpaused);
+        SubscribeLocalEvent<StationInitializedEvent>(OnStationInit);
+        SubscribeLocalEvent<RoundStartingEvent>(OnRoundStarting);
+        SubscribeLocalEvent<ArrivalsShuttleComponent, FTLStartedEvent>(OnArrivalsFTL);
+
+        // Don't invoke immediately as it will get set in the natural course of things.
+        Enabled = _cfgManager.GetCVar(CCVars.ArrivalsShuttles);
+        _cfgManager.OnValueChanged(CCVars.ArrivalsShuttles, SetArrivals);
+
+        // Command so admins can set these for funsies
+        _console.RegisterCommand("arrivals", ArrivalsCommand, ArrivalsCompletion);
+    }
+
+    private CompletionResult ArrivalsCompletion(IConsoleShell shell, string[] args)
+    {
+        if (args.Length != 1)
+            return CompletionResult.Empty;
+
+        return new CompletionResult(new CompletionOption[]
+        {
+            // Enables and disable are separate comms in case you don't want to accidentally toggle it, compared to
+            // returns which doesn't have an immediate effect
+            new("enable", Loc.GetString("cmd-arrivals-enable-hint")),
+            new("disable", Loc.GetString("cmd-arrivals-disable-hint")),
+            new("returns", Loc.GetString("cmd-arrivals-returns-hint")),
+            new ("force", Loc.GetString("cmd-arrivals-force-hint"))
+        }, "Option");
+    }
+
+    [AdminCommand(AdminFlags.Fun)]
+    private void ArrivalsCommand(IConsoleShell shell, string argstr, string[] args)
+    {
+        if (args.Length != 1)
+        {
+            shell.WriteError(Loc.GetString("cmd-arrivals-invalid"));
+            return;
+        }
+
+        switch (args[0])
+        {
+            case "enable":
+                _cfgManager.SetCVar(CCVars.ArrivalsShuttles, true);
+                break;
+            case "disable":
+                _cfgManager.SetCVar(CCVars.ArrivalsShuttles, false);
+                break;
+            case "returns":
+                var existing = _cfgManager.GetCVar(CCVars.ArrivalsReturns);
+                _cfgManager.SetCVar(CCVars.ArrivalsReturns, !existing);
+                shell.WriteLine(Loc.GetString("cmd-arrivals-returns", ("value", !existing)));
+                break;
+            case "force":
+                var query = AllEntityQuery<PendingClockInComponent, TransformComponent>();
+                var spawnPoints = EntityQuery<SpawnPointComponent, TransformComponent>().ToList();
+
+                TryGetArrivals(out var arrivalsUid);
+
+                while (query.MoveNext(out var uid, out _, out var pendingXform))
+                {
+                    _random.Shuffle(spawnPoints);
+
+                    foreach (var (point, xform) in spawnPoints)
+                    {
+                        if (point.SpawnType != SpawnPointType.LateJoin || xform.GridUid == arrivalsUid)
+                            continue;
+
+                        _transform.SetCoordinates(uid, pendingXform, xform.Coordinates);
+                        break;
+                    }
+
+                    RemCompDeferred<PendingClockInComponent>(uid);
+                    shell.WriteLine(Loc.GetString("cmd-arrivals-forced", ("uid", ToPrettyString(uid))));
+                }
+                break;
+            default:
+                shell.WriteError(Loc.GetString($"cmd-arrivals-invalid"));
+                break;
+        }
+    }
+
+    public override void Shutdown()
+    {
+        base.Shutdown();
+        _cfgManager.UnsubValueChanged(CCVars.ArrivalsShuttles, SetArrivals);
+    }
+
+    private void OnArrivalsFTL(EntityUid uid, ArrivalsShuttleComponent component, ref FTLStartedEvent args)
+    {
+        // Anyone already clocked in yeet them off the shuttle.
+        if (!_cfgManager.GetCVar(CCVars.ArrivalsReturns) && args.FromMapUid != null)
+        {
+            var clockedQuery = AllEntityQuery<ClockedInComponent, TransformComponent>();
+
+            // Clock them in when they FTL
+            while (clockedQuery.MoveNext(out var cUid, out _, out var xform))
+            {
+                if (xform.GridUid != uid)
+                    continue;
+
+                var rotation = xform.LocalRotation;
+                _transform.SetCoordinates(cUid, new EntityCoordinates(args.FromMapUid.Value, args.FTLFrom.Transform(xform.LocalPosition)));
+                _transform.SetWorldRotation(cUid, args.FromRotation + rotation);
+            }
+        }
+
+        var pendingQuery = AllEntityQuery<PendingClockInComponent, TransformComponent>();
+
+        // Clock them in when they FTL
+        while (pendingQuery.MoveNext(out var pUid, out _, out var xform))
+        {
+            if (xform.GridUid != uid)
+                continue;
+
+            EnsureComp<ClockedInComponent>(pUid);
+        }
+    }
+
+    private void OnStationInit(StationInitializedEvent ev)
+    {
+        EnsureComp<StationArrivalsComponent>(ev.Station);
+    }
+
+    private void OnPlayerSpawn(PlayerSpawningEvent ev)
+    {
+        // Only works on latejoin even if enabled.
+        if (!Enabled || _ticker.RunLevel != GameRunLevel.InRound)
+            return;
+
+        var points = EntityQuery<SpawnPointComponent, TransformComponent>().ToList();
+        _random.Shuffle(points);
+        TryGetArrivals(out var arrivals);
+
+        if (TryComp<TransformComponent>(arrivals, out var arrivalsXform))
+        {
+            var mapId = arrivalsXform.MapID;
+
+            foreach (var (spawnPoint, xform) in points)
+            {
+                if (spawnPoint.SpawnType != SpawnPointType.LateJoin || xform.MapID != mapId)
+                    continue;
+
+                ev.SpawnResult = _stationSpawning.SpawnPlayerMob(
+                    xform.Coordinates,
+                    ev.Job,
+                    ev.HumanoidCharacterProfile,
+                    ev.Station);
+
+                EnsureComp<PendingClockInComponent>(ev.SpawnResult.Value);
+                return;
+            }
+        }
+    }
+
+    private void OnShuttleStartup(EntityUid uid, ArrivalsShuttleComponent component, ComponentStartup args)
+    {
+        EnsureComp<PreventPilotComponent>(uid);
+    }
+
+    private void OnShuttleUnpaused(EntityUid uid, ArrivalsShuttleComponent component, ref EntityUnpausedEvent args)
+    {
+        component.NextTransfer += args.PausedTime;
+    }
+
+    private bool TryGetArrivals(out EntityUid uid)
+    {
+        var arrivalsQuery = EntityQueryEnumerator<ArrivalsSourceComponent>();
+
+        while (arrivalsQuery.MoveNext(out uid, out _))
+        {
+            return true;
+        }
+
+        return false;
+    }
+
+    public override void Update(float frameTime)
+    {
+        base.Update(frameTime);
+
+        var query = EntityQueryEnumerator<ArrivalsShuttleComponent, ShuttleComponent, TransformComponent>();
+        var curTime = _timing.CurTime;
+        TryGetArrivals(out var arrivals);
+
+        // TODO: FTL fucker, if on an edge tile every N seconds check for wall or w/e
+        // TODO: Docking should be per-grid rather than per dock and bump off when undocking.
+
+        // TODO: Stop dispatch if emergency shuttle has arrived.
+        // TODO: Need server join message specifying shuttle wait time or smth.
+        // TODO: Need maps
+        // TODO: Need emergency suits on shuttle probs
+        // TODO: Need some kind of comp to shunt people off if they try to get on?
+        if (TryComp<TransformComponent>(arrivals, out var arrivalsXform))
+        {
+            while (query.MoveNext(out var comp, out var shuttle, out var xform))
+            {
+                if (comp.NextTransfer > curTime || !TryComp<StationDataComponent>(comp.Station, out var data))
+                    continue;
+
+                // Go back to arrivals source
+                if (xform.MapUid != arrivalsXform.MapUid)
+                {
+                    if (arrivals.IsValid())
+                        _shuttles.FTLTravel(shuttle, arrivals, dock: true);
+                }
+                // Go to station
+                else
+                {
+                    var targetGrid = _station.GetLargestGrid(data);
+
+                    if (targetGrid != null)
+                        _shuttles.FTLTravel(shuttle, targetGrid.Value, dock: true);
+                }
+
+                comp.NextTransfer += TimeSpan.FromSeconds(_cfgManager.GetCVar(CCVars.ArrivalsCooldown));
+            }
+        }
+    }
+
+    private void OnRoundStarting(RoundStartingEvent ev)
+    {
+        // Setup arrivals station
+        if (!Enabled)
+            return;
+
+        SetupArrivalsStation();
+    }
+
+    private void SetupArrivalsStation()
+    {
+        var mapId = _mapManager.CreateMap();
+
+        if (!_loader.TryLoad(mapId, _cfgManager.GetCVar(CCVars.ArrivalsMap).ToString(), out var uids))
+        {
+            return;
+        }
+
+        foreach (var id in uids)
+        {
+            EnsureComp<ArrivalsSourceComponent>(id);
+            EnsureComp<ProtectedGridComponent>(id);
+        }
+
+        // Handle roundstart stations.
+        var query = AllEntityQuery<StationArrivalsComponent>();
+
+        while (query.MoveNext(out var uid, out var comp))
+        {
+            SetupShuttle(uid, comp);
+        }
+    }
+
+    private void SetArrivals(bool obj)
+    {
+        Enabled = obj;
+
+        if (Enabled)
+        {
+            SetupArrivalsStation();
+            var query = AllEntityQuery<StationArrivalsComponent>();
+
+            while (query.MoveNext(out var sUid, out var comp))
+            {
+                SetupShuttle(sUid, comp);
+            }
+        }
+        else
+        {
+            var sourceQuery = AllEntityQuery<ArrivalsSourceComponent>();
+
+            while (sourceQuery.MoveNext(out var uid, out _))
+            {
+                QueueDel(uid);
+            }
+
+            var shuttleQuery = AllEntityQuery<ArrivalsShuttleComponent>();
+
+            while (shuttleQuery.MoveNext(out var uid, out _))
+            {
+                QueueDel(uid);
+            }
+        }
+    }
+
+    private void OnArrivalsStartup(EntityUid uid, StationArrivalsComponent component, ComponentStartup args)
+    {
+        if (!Enabled)
+            return;
+
+        // If it's a latespawn station then this will fail but that's okey
+        SetupShuttle(uid, component);
+    }
+
+    private void SetupShuttle(EntityUid uid, StationArrivalsComponent component)
+    {
+        if (!Deleted(component.Shuttle))
+            return;
+
+        // Spawn arrivals on a dummy map then dock it to the source.
+        var dummyMap = _mapManager.CreateMap();
+
+        if (TryGetArrivals(out var arrivals) &&
+            _loader.TryLoad(dummyMap, component.ShuttlePath.ToString(), out var shuttleUids))
+        {
+            component.Shuttle = shuttleUids[0];
+            var shuttleComp = Comp<ShuttleComponent>(component.Shuttle);
+            var arrivalsComp = EnsureComp<ArrivalsShuttleComponent>(component.Shuttle);
+            arrivalsComp.Station = uid;
+            EnsureComp<ProtectedGridComponent>(uid);
+            _shuttles.FTLTravel(shuttleComp, arrivals, hyperspaceTime: 10f, dock: true);
+            arrivalsComp.NextTransfer = _timing.CurTime + TimeSpan.FromSeconds(_cfgManager.GetCVar(CCVars.ArrivalsCooldown));
+        }
+
+        // Don't start the arrivals shuttle immediately docked so power has a time to stabilise?
+        var timer = AddComp<TimedDespawnComponent>(_mapManager.GetMapEntityId(dummyMap));
+        timer.Lifetime = 15f;
+    }
+}
index d120ca2b71a810c0ed9aa45795368e9379804b8d..3b56894ed4e1e6f71fb5ff07aa82d7a4ee55bf18 100644 (file)
@@ -71,7 +71,11 @@ public sealed partial class DockingSystem
 
         // TODO: Validation
         if (!TryComp<DockingComponent>(args.DockEntity, out var dock) ||
-            !dock.Docked) return;
+            !dock.Docked ||
+            HasComp<PreventPilotComponent>(Transform(uid).GridUid))
+        {
+            return;
+        }
 
         Undock(dock);
     }
@@ -81,7 +85,12 @@ public sealed partial class DockingSystem
         _sawmill.Debug($"Received autodock request for {ToPrettyString(args.DockEntity)}");
         var player = args.Session.AttachedEntity;
 
-        if (player == null || !HasComp<DockingComponent>(args.DockEntity)) return;
+        if (player == null ||
+            !HasComp<DockingComponent>(args.DockEntity) ||
+            HasComp<PreventPilotComponent>(Transform(uid).GridUid))
+        {
+            return;
+        }
 
         // TODO: Validation
         var comp = EnsureComp<AutoDockComponent>(args.DockEntity);
index 94c65bf212ce193c56850a39768e62c86e875551..3147dc01c2b86b38c20861afd351bfd8114d04e9 100644 (file)
@@ -63,7 +63,10 @@ namespace Content.Server.Shuttles.Systems
 
         private void OnDestinationMessage(EntityUid uid, ShuttleConsoleComponent component, ShuttleConsoleDestinationMessage args)
         {
-            if (!TryComp<FTLDestinationComponent>(args.Destination, out var dest)) return;
+            if (!TryComp<FTLDestinationComponent>(args.Destination, out var dest))
+            {
+                return;
+            }
 
             if (!dest.Enabled) return;
 
@@ -77,10 +80,16 @@ namespace Content.Server.Shuttles.Systems
             RaiseLocalEvent(entity.Value, ref getShuttleEv);
             entity = getShuttleEv.Console;
 
-            if (entity == null || dest.Whitelist?.IsValid(entity.Value, EntityManager) == false) return;
+            if (entity == null || dest.Whitelist?.IsValid(entity.Value, EntityManager) == false)
+            {
+                return;
+            }
 
             if (!TryComp<TransformComponent>(entity, out var xform) ||
-                !TryComp<ShuttleComponent>(xform.GridUid, out var shuttle)) return;
+                !TryComp<ShuttleComponent>(xform.GridUid, out var shuttle))
+            {
+                return;
+            }
 
             if (HasComp<FTLComponent>(xform.GridUid))
             {
index 59427c269ee85703cc44f68188ffd15c5df4a51c..fa8338b1008f663eb5da2c0bd61921a8671f8345 100644 (file)
@@ -11,6 +11,7 @@ using Content.Server.Station.Systems;
 using Content.Shared.CCVar;
 using Content.Shared.Database;
 using Content.Shared.Shuttles.Events;
+using Content.Shared.Tiles;
 using Robust.Server.GameObjects;
 using Robust.Server.Maps;
 using Robust.Server.Player;
@@ -448,6 +449,7 @@ public sealed partial class ShuttleSystem
 
        _shuttleIndex += _mapManager.GetGrid(shuttle.Value).LocalAABB.Width + ShuttleSpawnBuffer;
        component.EmergencyShuttle = shuttle;
+       EnsureComp<ProtectedGridComponent>(shuttle.Value);
    }
 
    private void CleanupEmergencyShuttle()
index 78191c64b3f55fe9beb9e10468a89be6888fa707..bada13d9a0aa40470d3b27347bce8d48a5719302 100644 (file)
@@ -15,6 +15,7 @@ using System.Diagnostics.CodeAnalysis;
 using Content.Server.Shuttles.Events;
 using Content.Shared.Buckle.Components;
 using Content.Shared.Doors.Components;
+using Content.Shared.Shuttles.Components;
 using Robust.Shared.Map.Components;
 using Robust.Shared.Physics;
 using Robust.Shared.Physics.Components;
@@ -40,7 +41,6 @@ public sealed partial class ShuttleSystem
     private const float DefaultTravelTime = 30f;
     private const float DefaultArrivalTime = 5f;
     private const float FTLCooldown = 30f;
-
     private const float ShuttleFTLRange = 100f;
 
     /// <summary>
@@ -84,6 +84,12 @@ public sealed partial class ShuttleSystem
 
     public bool CanFTL(EntityUid? uid, [NotNullWhen(false)] out string? reason, TransformComponent? xform = null)
     {
+        if (HasComp<PreventPilotComponent>(uid))
+        {
+            reason = Loc.GetString("shuttle-console-prevent");
+            return false;
+        }
+
         reason = null;
 
         if (!TryComp<MapGridComponent>(uid, out var grid) ||
@@ -223,6 +229,9 @@ public sealed partial class ShuttleSystem
                     DoTheDinosaur(xform);
 
                     comp.State = FTLState.Travelling;
+                    var fromMapUid = xform.MapUid;
+                    var fromMatrix = _transform.GetWorldMatrix(xform);
+                    var fromRotation = _transform.GetWorldRotation(xform);
 
                     var width = Comp<MapGridComponent>(uid).LocalAABB.Width;
                     xform.Coordinates = new EntityCoordinates(_mapManager.GetMapEntityId(_hyperSpaceMap!.Value), new Vector2(_index + width / 2f, 0f));
@@ -239,14 +248,16 @@ public sealed partial class ShuttleSystem
                         _physics.SetAngularDamping(body, 0f);
                     }
 
+                    SetDockBolts(uid, true);
+                    _console.RefreshShuttleConsoles(uid);
+                    var ev = new FTLStartedEvent(fromMapUid, fromMatrix, fromRotation);
+                    RaiseLocalEvent(uid, ref ev);
+
                     if (comp.TravelSound != null)
                     {
                         comp.TravelStream = SoundSystem.Play(comp.TravelSound.GetSound(),
                             Filter.Pvs(uid, 4f, entityManager: EntityManager), comp.TravelSound.Params);
                     }
-
-                    SetDockBolts(uid, true);
-                    _console.RefreshShuttleConsoles(uid);
                     break;
                 // Arriving, play effects
                 case FTLState.Travelling:
index f0e936859d5c5bd63542c0ec18baa5fca4d658ee..60388bded2d3ad99f21e5cf3991af5033ad0dc35 100644 (file)
@@ -1,5 +1,6 @@
 using System.Linq;
 using Content.Server.GameTicking;
+using Content.Server.Shuttles.Components;
 using Content.Server.Spawners.Components;
 using Content.Server.Station.Systems;
 using Robust.Shared.Random;
@@ -20,6 +21,9 @@ public sealed class SpawnPointSystem : EntitySystem
 
     private void OnSpawnPlayer(PlayerSpawningEvent args)
     {
+        if (args.SpawnResult != null)
+            return;
+
         // TODO: Cache all this if it ends up important.
         var points = EntityQuery<SpawnPointComponent>().ToList();
         _random.Shuffle(points);
@@ -37,9 +41,11 @@ public sealed class SpawnPointSystem : EntitySystem
                     args.HumanoidCharacterProfile,
                     args.Station);
 
+                EnsureComp<ClockedInComponent>(args.SpawnResult.Value);
                 return;
             }
-            else if (_gameTicker.RunLevel != GameRunLevel.InRound && spawnPoint.SpawnType == SpawnPointType.Job && (args.Job == null || spawnPoint.Job?.ID == args.Job.Prototype.ID))
+
+            if (_gameTicker.RunLevel != GameRunLevel.InRound && spawnPoint.SpawnType == SpawnPointType.Job && (args.Job == null || spawnPoint.Job?.ID == args.Job.Prototype.ID))
             {
                 args.SpawnResult = _stationSpawning.SpawnPlayerMob(
                     xform.Coordinates,
@@ -47,6 +53,7 @@ public sealed class SpawnPointSystem : EntitySystem
                     args.HumanoidCharacterProfile,
                     args.Station);
 
+                EnsureComp<ClockedInComponent>(args.SpawnResult.Value);
                 return;
             }
         }
@@ -62,6 +69,7 @@ public sealed class SpawnPointSystem : EntitySystem
                 args.HumanoidCharacterProfile,
                 args.Station);
 
+            EnsureComp<ClockedInComponent>(args.SpawnResult.Value);
             return;
         }
 
index cebbfa6a10bf031fd3d08fef12a7acc71343208c..65577ab05a42cf845604380ab8b0d4fa74724b34 100644 (file)
@@ -8,6 +8,7 @@ using Content.Server.PDA;
 using Content.Server.Roles;
 using Content.Server.Station.Components;
 using Content.Server.Mind.Commands;
+using Content.Server.Shuttles.Components;
 using Content.Shared.Access.Systems;
 using Content.Shared.CCVar;
 using Content.Shared.Humanoid.Prototypes;
diff --git a/Content.Server/Tiles/FloorTileSystem.cs b/Content.Server/Tiles/FloorTileSystem.cs
deleted file mode 100644 (file)
index fc6603c..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-using Content.Server.Stack;
-using Content.Shared.Audio;
-using Content.Shared.Interaction;
-using Content.Shared.Maps;
-using Content.Shared.Physics;
-using Content.Shared.Stacks;
-using Robust.Shared.Audio;
-using Robust.Shared.Map;
-using Robust.Shared.Map.Components;
-using Robust.Shared.Physics;
-using Robust.Shared.Physics.Components;
-using Robust.Shared.Player;
-using Robust.Shared.Random;
-
-namespace Content.Server.Tiles
-{
-    public sealed class FloorTileSystem : EntitySystem
-    {
-        [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
-        [Dependency] private readonly IMapManager _mapManager = default!;
-        [Dependency] private readonly IRobustRandom _random = default!;
-        [Dependency] private readonly StackSystem _stackSystem = default!;
-        [Dependency] private readonly SharedAudioSystem _audio = default!;
-        [Dependency] private readonly EntityLookupSystem _lookup = default!;
-
-        public override void Initialize()
-        {
-            base.Initialize();
-            SubscribeLocalEvent<FloorTileComponent, AfterInteractEvent>(OnAfterInteract);
-        }
-
-        private void OnAfterInteract(EntityUid uid, FloorTileComponent component, AfterInteractEvent args)
-        {
-            if (!args.CanReach || args.Handled)
-                return;
-
-            if (!TryComp<StackComponent>(uid, out var stack))
-                return;
-
-            if (component.OutputTiles == null)
-                return;
-
-            // this looks a bit sussy but it might be because it needs to be able to place off of grids and expand them
-            var location = args.ClickLocation.AlignWithClosestGridTile();
-            var physics = GetEntityQuery<PhysicsComponent>();
-            foreach (var ent in location.GetEntitiesInTile(lookupSystem: _lookup))
-            {
-                // check that we the tile we're trying to access isn't blocked by a wall or something
-                if (physics.TryGetComponent(ent, out var phys) &&
-                    phys.BodyType == BodyType.Static &&
-                    phys.Hard &&
-                    (phys.CollisionLayer & (int) CollisionGroup.Impassable) != 0)
-                    return;
-            }
-            var locationMap = location.ToMap(EntityManager);
-            if (locationMap.MapId == MapId.Nullspace)
-                return;
-            _mapManager.TryGetGrid(location.EntityId, out var mapGrid);
-
-            foreach (var currentTile in component.OutputTiles)
-            {
-                var currentTileDefinition = (ContentTileDefinition) _tileDefinitionManager[currentTile];
-
-                if (mapGrid != null)
-                {
-                    var tile = mapGrid.GetTileRef(location);
-                    var baseTurf = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
-
-                    if (HasBaseTurf(currentTileDefinition, baseTurf.ID))
-                    {
-                        if (!_stackSystem.Use(uid, 1, stack))
-                            continue;
-
-                        PlaceAt(mapGrid, location, currentTileDefinition.TileId, component.PlaceTileSound);
-                        args.Handled = true;
-                        return;
-                    }
-                }
-                else if (HasBaseTurf(currentTileDefinition, ContentTileDefinition.SpaceID))
-                {
-                    mapGrid = _mapManager.CreateGrid(locationMap.MapId);
-                    var gridXform = Transform(mapGrid.Owner);
-                    gridXform.WorldPosition = locationMap.Position;
-                    location = new EntityCoordinates(mapGrid.Owner, Vector2.Zero);
-                    PlaceAt(mapGrid, location, _tileDefinitionManager[component.OutputTiles[0]].TileId, component.PlaceTileSound, mapGrid.TileSize / 2f);
-                    args.Handled = true;
-                    return;
-                }
-            }
-        }
-
-        public bool HasBaseTurf(ContentTileDefinition tileDef, string baseTurf)
-        {
-            foreach (var tileBaseTurf in tileDef.BaseTurfs)
-            {
-                if (baseTurf == tileBaseTurf)
-                    return true;
-            }
-
-            return false;
-        }
-
-        private void PlaceAt(MapGridComponent mapGrid, EntityCoordinates location, ushort tileId, SoundSpecifier placeSound, float offset = 0)
-        {
-            var variant = _random.Pick(((ContentTileDefinition) _tileDefinitionManager[tileId]).PlacementVariants);
-            mapGrid.SetTile(location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
-            _audio.Play(placeSound, Filter.Pvs(location), location, true, AudioHelpers.WithVariation(0.125f, _random));
-        }
-    }
-}
index 8ca122a5b2ae0d8f299d0f2c36d133ebaa189536..30bb5c6e3456800a7e25a5930ce938ff6c75c9ab 100644 (file)
@@ -199,7 +199,7 @@ namespace Content.Server.Voting.Managers
 
                 _adminLogger.Add(LogType.Vote, LogImpact.Medium, $"Map vote finished: {picked.MapName}");
                 var ticker = _entityManager.EntitySysManager.GetEntitySystem<GameTicker>();
-                if (ticker.RunLevel == GameRunLevel.PreRoundLobby)
+                if (ticker.CanUpdateMap())
                 {
                     if (_gameMapManager.TrySelectMapIfEligible(picked.ID))
                     {
@@ -208,7 +208,14 @@ namespace Content.Server.Voting.Managers
                 }
                 else
                 {
-                    _chatManager.DispatchServerAnnouncement(Loc.GetString("ui-vote-map-notlobby"));
+                    if (ticker.RoundPreloadTime <= TimeSpan.Zero)
+                    {
+                        _chatManager.DispatchServerAnnouncement(Loc.GetString("ui-vote-map-notlobby"));
+                    }
+                    else
+                    {
+                        _chatManager.DispatchServerAnnouncement(Loc.GetString("ui-vote-map-notlobby-time"));
+                    }
                 }
             };
         }
index 38018ed84b64bd50d23c5ebb048c6dfbd94f3bca..d50ad12461856bce13dd3b5d75063db81e29d839 100644 (file)
@@ -1055,6 +1055,30 @@ namespace Content.Shared.CCVar
         public static readonly CVarDef<bool> CameraRotationLocked =
             CVarDef.Create("shuttle.camera_rotation_locked", false, CVar.REPLICATED);
 
+        /// <summary>
+        /// Whether the arrivals shuttle is enabled.
+        /// </summary>
+        public static readonly CVarDef<bool> ArrivalsShuttles =
+            CVarDef.Create("shuttle.arrivals", true, CVar.SERVERONLY);
+
+        /// <summary>
+        /// The map to use for the arrivals station.
+        /// </summary>
+        public static readonly CVarDef<ResourcePath> ArrivalsMap =
+            CVarDef.Create("shuttle.arrivals_map", new ResourcePath("/Maps/Misc/terminal.yml"), CVar.SERVERONLY);
+
+        /// <summary>
+        /// Cooldown between arrivals departures. This should be longer than the FTL time or it will double cycle.
+        /// </summary>
+        public static readonly CVarDef<float> ArrivalsCooldown =
+            CVarDef.Create("shuttle.arrivals_cooldown", 90f, CVar.SERVERONLY);
+
+        /// <summary>
+        /// Are players allowed to return on the arrivals shuttle.
+        /// </summary>
+        public static readonly CVarDef<bool> ArrivalsReturns =
+            CVarDef.Create("shuttle.arrivals_returns", false, CVar.SERVERONLY);
+
         /// <summary>
         /// Whether cargo shuttles are enabled.
         /// </summary>
index 7c93f85a3e0906a38335294419594593db26124c..28f29a4142ec06af24a826f38bf85f1d24a5ee68 100644 (file)
@@ -45,16 +45,18 @@ namespace Content.Shared.GameTicking
         public bool YouAreReady { get; }
         // UTC.
         public TimeSpan StartTime { get; }
+        public TimeSpan PreloadTime { get; }
         public TimeSpan RoundStartTimeSpan { get; }
         public bool Paused { get; }
 
-        public TickerLobbyStatusEvent(bool isRoundStarted, string? lobbySong, string? lobbyBackground, bool youAreReady, TimeSpan startTime, TimeSpan roundStartTimeSpan, bool paused)
+        public TickerLobbyStatusEvent(bool isRoundStarted, string? lobbySong, string? lobbyBackground, bool youAreReady, TimeSpan startTime, TimeSpan preloadTime, TimeSpan roundStartTimeSpan, bool paused)
         {
             IsRoundStarted = isRoundStarted;
             LobbySong = lobbySong;
             LobbyBackground = lobbyBackground;
             YouAreReady = youAreReady;
             StartTime = startTime;
+            PreloadTime = preloadTime;
             RoundStartTimeSpan = roundStartTimeSpan;
             Paused = paused;
         }
diff --git a/Content.Shared/Shuttles/Components/PreventPilotComponent.cs b/Content.Shared/Shuttles/Components/PreventPilotComponent.cs
new file mode 100644 (file)
index 0000000..76bff89
--- /dev/null
@@ -0,0 +1,12 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Shuttles.Components;
+
+/// <summary>
+/// Add to grids that you do not want manually piloted under any circumstances.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed class PreventPilotComponent : Component
+{
+
+}
diff --git a/Content.Shared/Tiles/FloorTileAttemptEvent.cs b/Content.Shared/Tiles/FloorTileAttemptEvent.cs
new file mode 100644 (file)
index 0000000..7d4480f
--- /dev/null
@@ -0,0 +1,7 @@
+namespace Content.Shared.Tiles;
+
+/// <summary>
+/// Raised directed on a grid when attempting a floor tile placement.
+/// </summary>
+[ByRefEvent]
+public record struct FloorTileAttemptEvent(bool Cancelled);
similarity index 87%
rename from Content.Server/Tiles/FloorTileComponent.cs
rename to Content.Shared/Tiles/FloorTileComponent.cs
index 96cebe897188cdaeb7f9ff9c567daa2fff70c240..df4d5296198f5f165d1598d2c08410aa62623eb0 100644 (file)
@@ -1,14 +1,15 @@
 using Content.Shared.Maps;
 using Robust.Shared.Audio;
+using Robust.Shared.GameStates;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
 
-namespace Content.Server.Tiles
+namespace Content.Shared.Tiles
 {
     /// <summary>
     /// This gives items floor tile behavior, but it doesn't have to be a literal floor tile.
     /// A lot of materials use this too. Note that the AfterInteract will fail without a stack component on the item.
     /// </summary>
-    [RegisterComponent]
+    [RegisterComponent, NetworkedComponent]
     public sealed class FloorTileComponent : Component
     {
         [DataField("outputs", customTypeSerializer: typeof(PrototypeIdListSerializer<ContentTileDefinition>))]
diff --git a/Content.Shared/Tiles/FloorTileSystem.cs b/Content.Shared/Tiles/FloorTileSystem.cs
new file mode 100644 (file)
index 0000000..1f84801
--- /dev/null
@@ -0,0 +1,127 @@
+using Content.Shared.Audio;
+using Content.Shared.Interaction;
+using Content.Shared.Maps;
+using Content.Shared.Physics;
+using Content.Shared.Popups;
+using Content.Shared.Stacks;
+using Robust.Shared.Audio;
+using Robust.Shared.Map;
+using Robust.Shared.Map.Components;
+using Robust.Shared.Network;
+using Robust.Shared.Physics;
+using Robust.Shared.Physics.Components;
+using Robust.Shared.Player;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+
+namespace Content.Shared.Tiles;
+
+public sealed class FloorTileSystem : EntitySystem
+{
+    [Dependency] private readonly IGameTiming _timing = default!;
+    [Dependency] private readonly IMapManager _mapManager = default!;
+    [Dependency] private readonly INetManager _netManager = default!;
+    [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly ITileDefinitionManager _tileDefinitionManager = default!;
+    [Dependency] private readonly EntityLookupSystem _lookup = default!;
+    [Dependency] private readonly SharedAudioSystem _audio = default!;
+    [Dependency] private readonly SharedPopupSystem _popup = default!;
+    [Dependency] private readonly SharedStackSystem _stackSystem = default!;
+    [Dependency] private readonly SharedTransformSystem _transform = default!;
+
+    public override void Initialize()
+    {
+        base.Initialize();
+        SubscribeLocalEvent<FloorTileComponent, AfterInteractEvent>(OnAfterInteract);
+    }
+
+    private void OnAfterInteract(EntityUid uid, FloorTileComponent component, AfterInteractEvent args)
+    {
+        if (!args.CanReach || args.Handled)
+            return;
+
+        if (!TryComp<StackComponent>(uid, out var stack))
+            return;
+
+        if (component.OutputTiles == null)
+            return;
+
+        // this looks a bit sussy but it might be because it needs to be able to place off of grids and expand them
+        var location = args.ClickLocation.AlignWithClosestGridTile();
+        var physics = GetEntityQuery<PhysicsComponent>();
+        foreach (var ent in location.GetEntitiesInTile(lookupSystem: _lookup))
+        {
+            // check that we the tile we're trying to access isn't blocked by a wall or something
+            if (physics.TryGetComponent(ent, out var phys) &&
+                phys.BodyType == BodyType.Static &&
+                phys.Hard &&
+                (phys.CollisionLayer & (int) CollisionGroup.Impassable) != 0)
+                return;
+        }
+        var locationMap = location.ToMap(EntityManager, _transform);
+        if (locationMap.MapId == MapId.Nullspace)
+            return;
+        _mapManager.TryGetGrid(location.EntityId, out var mapGrid);
+
+        foreach (var currentTile in component.OutputTiles)
+        {
+            var currentTileDefinition = (ContentTileDefinition) _tileDefinitionManager[currentTile];
+
+            if (mapGrid != null)
+            {
+                var ev = new FloorTileAttemptEvent();
+                RaiseLocalEvent(mapGrid);
+
+                if (HasComp<ProtectedGridComponent>(mapGrid.Owner) || ev.Cancelled)
+                {
+                    if (_netManager.IsClient && _timing.IsFirstTimePredicted)
+                        _popup.PopupEntity(Loc.GetString("invalid-floor-placement"), args.User);
+
+                    return;
+                }
+
+                var tile = mapGrid.GetTileRef(location);
+                var baseTurf = (ContentTileDefinition) _tileDefinitionManager[tile.Tile.TypeId];
+
+                if (HasBaseTurf(currentTileDefinition, baseTurf.ID))
+                {
+                    if (!_stackSystem.Use(uid, 1, stack))
+                        continue;
+
+                    PlaceAt(args.User, mapGrid, location, currentTileDefinition.TileId, component.PlaceTileSound);
+                    args.Handled = true;
+                    return;
+                }
+            }
+            else if (HasBaseTurf(currentTileDefinition, ContentTileDefinition.SpaceID))
+            {
+                mapGrid = _mapManager.CreateGrid(locationMap.MapId);
+                var gridXform = Transform(mapGrid.Owner);
+                _transform.SetWorldPosition(gridXform, locationMap.Position);
+                location = new EntityCoordinates(mapGrid.Owner, Vector2.Zero);
+                PlaceAt(args.User, mapGrid, location, _tileDefinitionManager[component.OutputTiles[0]].TileId, component.PlaceTileSound, mapGrid.TileSize / 2f);
+                args.Handled = true;
+                return;
+            }
+        }
+    }
+
+    public bool HasBaseTurf(ContentTileDefinition tileDef, string baseTurf)
+    {
+        foreach (var tileBaseTurf in tileDef.BaseTurfs)
+        {
+            if (baseTurf == tileBaseTurf)
+                return true;
+        }
+
+        return false;
+    }
+
+    private void PlaceAt(EntityUid user, MapGridComponent mapGrid, EntityCoordinates location, ushort tileId, SoundSpecifier placeSound, float offset = 0)
+    {
+        var variant = _random.Pick(((ContentTileDefinition) _tileDefinitionManager[tileId]).PlacementVariants);
+        mapGrid.SetTile(location.Offset(new Vector2(offset, offset)), new Tile(tileId, 0, variant));
+
+        _audio.PlayPredicted(placeSound, location, user, AudioHelpers.WithVariation(0.125f, _random));
+    }
+}
diff --git a/Content.Shared/Tiles/ProtectedGridComponent.cs b/Content.Shared/Tiles/ProtectedGridComponent.cs
new file mode 100644 (file)
index 0000000..2848c1c
--- /dev/null
@@ -0,0 +1,12 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared.Tiles;
+
+/// <summary>
+/// Prevents floor tile updates when attached to a grid.
+/// </summary>
+[RegisterComponent, NetworkedComponent]
+public sealed class ProtectedGridComponent : Component
+{
+
+}
index af662f2e5c404616b76b544c1908e07c09d92935..12fd79bdcec4e8775e679c021e75d48b3eb6ea4c 100644 (file)
@@ -14,3 +14,4 @@ preload = false
 auto_call_time = 0
 cargo = false
 emergency_enabled = false
+arrivals = false
index 0a6fceb89e5175c4de9e00a9b01a683174805e7c..5dbeb5088daea5647067a9e03ca0981e6c02a87e 100644 (file)
@@ -34,3 +34,4 @@ player-leave-message = Player {$name} left.
 
 latejoin-arrival-announcement = {$character} ({$job}) has arrived at the station!
 latejoin-arrival-sender = Station
+latejoin-arrivals-direction = A shuttle transferring you to your station will arrive shortly.
index e9a6218bd17f2db4e2244b7d870f09e0e001b10d..e63954a56009c45effa831b5b018931542d37677 100644 (file)
@@ -1,4 +1,5 @@
 lobby-state-paused = Paused
+lobby-state-preloading = Soon
 lobby-state-right-now-question = Right Now?
 lobby-state-right-now-confirmation = Right Now
 lobby-state-round-start-countdown-text = Round Starts In: {$timeLeft}
diff --git a/Resources/Locale/en-US/shuttles/arrivals.ftl b/Resources/Locale/en-US/shuttles/arrivals.ftl
new file mode 100644 (file)
index 0000000..d720be3
--- /dev/null
@@ -0,0 +1,10 @@
+cmd-arrivals-enable-hint = Enables arrivals
+cmd-arrivals-disable-hint = Disables arrivals
+
+cmd-arrivals-returns = Set arrivals returns to {$value}.
+cmd-arrivals-returns-hint = Toggles allowing players to return via arrivals.
+
+cmd-arrivals-invalid = Invalid arg supplied.
+
+cmd-arrivals-force-hint = Forces players to arrive.
+cmd-arrivals-forced = Forced {$uid} to arrive to the station.
\ No newline at end of file
index b23d0fd881a64883b68d750350dbf76aaee49227..a89a367d06e327edb12ed4a204e15e007e8c1212 100644 (file)
@@ -3,6 +3,7 @@ shuttle-pilot-end = Stopped piloting
 
 shuttle-console-in-ftl = Can't FTL while in FTL!
 shuttle-console-proximity = Too close to nearby objects
+shuttle-console-prevent = You are unable to pilot this ship.
 
 # Display
 shuttle-console-display-label = Display
diff --git a/Resources/Locale/en-US/tiles/placement.ftl b/Resources/Locale/en-US/tiles/placement.ftl
new file mode 100644 (file)
index 0000000..e4f148e
--- /dev/null
@@ -0,0 +1 @@
+invalid-floor-placement = Unable to place there
\ No newline at end of file
index 33129a95d5b0f83021166d0d243d4f3d17f84f97..18b67464f6293d80f68779571725fe2b48dad755 100644 (file)
@@ -17,4 +17,5 @@ ui-vote-gamemode-win = { $winner } won the gamemode vote!
 ui-vote-map-title = Next map
 ui-vote-map-tie = Tie for map vote! Picking... { $picked }
 ui-vote-map-win = { $winner } won the map vote!
-ui-vote-map-notlobby = Voting for maps is only valid in the pre-round lobby!
\ No newline at end of file
+ui-vote-map-notlobby-time = Voting for maps is only valid in the pre-round lobby!
+ui-vote-map-notlobby-time = Voting for maps is only valid in the pre-round lobby with { $time } remaining!
diff --git a/Resources/Maps/Misc/terminal.yml b/Resources/Maps/Misc/terminal.yml
new file mode 100644 (file)
index 0000000..92e451d
--- /dev/null
@@ -0,0 +1,6184 @@
+meta:
+  format: 3
+  name: DemoStation
+  author: Space-Wizards
+  postmapinit: false
+tilemap:
+  0: Space
+  1: FloorArcadeBlue
+  2: FloorArcadeBlue2
+  3: FloorArcadeRed
+  4: FloorAsteroidCoarseSand0
+  5: FloorAsteroidCoarseSandDug
+  6: FloorAsteroidIronsand1
+  7: FloorAsteroidIronsand2
+  8: FloorAsteroidIronsand3
+  9: FloorAsteroidIronsand4
+  10: FloorAsteroidSand
+  11: FloorAsteroidTile
+  12: FloorBar
+  13: FloorBasalt
+  14: FloorBlue
+  15: FloorBlueCircuit
+  16: FloorBoxing
+  17: FloorCarpetClown
+  18: FloorCarpetOffice
+  19: FloorCave
+  20: FloorCaveDrought
+  21: FloorClown
+  22: FloorDark
+  23: FloorDarkDiagonal
+  24: FloorDarkDiagonalMini
+  25: FloorDarkHerringbone
+  26: FloorDarkMini
+  27: FloorDarkMono
+  28: FloorDarkOffset
+  29: FloorDarkPavement
+  30: FloorDarkPavementVertical
+  31: FloorDarkPlastic
+  32: FloorDesert
+  33: FloorDirt
+  34: FloorEighties
+  35: FloorElevatorShaft
+  36: FloorFlesh
+  37: FloorFreezer
+  38: FloorGlass
+  39: FloorGold
+  40: FloorGrass
+  41: FloorGrassDark
+  42: FloorGrassJungle
+  43: FloorGrassLight
+  44: FloorGreenCircuit
+  45: FloorGym
+  46: FloorHydro
+  47: FloorKitchen
+  48: FloorLaundry
+  49: FloorLino
+  50: FloorLowDesert
+  51: FloorMetalDiamond
+  52: FloorMime
+  53: FloorMono
+  54: FloorPlanetDirt
+  55: FloorPlanetGrass
+  56: FloorPlastic
+  57: FloorRGlass
+  58: FloorReinforced
+  59: FloorRockVault
+  60: FloorShowroom
+  61: FloorShuttleBlue
+  62: FloorShuttleOrange
+  63: FloorShuttlePurple
+  64: FloorShuttleRed
+  65: FloorShuttleWhite
+  66: FloorSilver
+  67: FloorSnow
+  68: FloorSteel
+  69: FloorSteelDiagonal
+  70: FloorSteelDiagonalMini
+  71: FloorSteelDirty
+  72: FloorSteelHerringbone
+  73: FloorSteelMini
+  74: FloorSteelMono
+  75: FloorSteelOffset
+  76: FloorSteelPavement
+  77: FloorSteelPavementVertical
+  78: FloorTechMaint
+  79: FloorTechMaint2
+  80: FloorTechMaint3
+  81: FloorWhite
+  82: FloorWhiteDiagonal
+  83: FloorWhiteDiagonalMini
+  84: FloorWhiteHerringbone
+  85: FloorWhiteMini
+  86: FloorWhiteMono
+  87: FloorWhiteOffset
+  88: FloorWhitePavement
+  89: FloorWhitePavementVertical
+  90: FloorWhitePlastic
+  91: FloorWood
+  92: FloorWoodTile
+  93: Lattice
+  94: Plating
+entities:
+- uid: 0
+  components:
+  - name: NT-EM Terminal
+    type: MetaData
+  - parent: 1
+    type: Transform
+  - chunks:
+      -1,-1:
+        ind: -1,-1
+        tiles: AAAAAF4AAAAWAAAARAAAABYAAAMKAAAAFgAAAUQAAAIWAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAFgAAAUQAAAMWAAAACgAAABYAAABEAAADFgAAA14AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAABYAAAFEAAACFgAAAwoAAAAWAAABRAAAAxYAAANeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAAAWAAACRAAAABYAAAAKAAAAFgAAAUQAAAAWAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAEQAAANEAAACRAAAA0QAAAJEAAACXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABEAAAARAAAAyYAAABEAAADRAAAAV4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAARAAAAEQAAAImAAAARAAAAEQAAANeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEQAAANEAAACJgAAAEQAAANEAAACXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABEAAADRAAAAiYAAABEAAAARAAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAARAAAAkQAAAAmAAAARAAAAkQAAAJeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEQAAABEAAADRAAAAEQAAAJEAAABXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAARAAAA0QAAABEAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAF4AAAAWAAACRAAAAUQAAAJEAAACRAAAAUQAAAFEAAABXgAAAEQAAANEAAABRAAAAkQAAAJEAAACRAAAAQAAAABeAAAAFgAAAUQAAABEAAAAJgAAAEQAAAJEAAACRAAAAV4AAABEAAACRAAAA0QAAAJEAAAARAAAAkQAAAEAAAAAXgAAABYAAAFEAAAARAAAAiYAAABEAAAARAAAAUQAAANEAAADRAAAA0QAAAFEAAABRAAAAUQAAANEAAABAAAAAF4AAAAWAAABRAAAAUQAAAEmAAAARAAAAkQAAABEAAACRAAAAkQAAAJEAAAARAAAAUQAAAJEAAAARAAAAw==
+      0,0:
+        ind: 0,0
+        tiles: RAAAA0QAAANEAAACRAAAAEQAAANeAAAARAAAAUQAAAFEAAACJgAAAEQAAAFEAAADRAAAAV4AAAAAAAAAAAAAAEQAAAJEAAACRAAAAUQAAAFEAAAAXgAAAEQAAAFEAAACRAAAAiYAAABEAAAARAAAA0QAAAJeAAAAAAAAAAAAAABeAAAAXgAAAE4AAABeAAAAXgAAAF4AAABeAAAARAAAAkQAAAMmAAAARAAAAEQAAAFeAAAAXgAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAF4AAABdAAAAXgAAAEQAAABEAAACRAAAA0QAAABEAAACXgAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAABeAAAAXQAAAF4AAABeAAAARAAAAUQAAAJEAAAAXgAAAF4AAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXgAAAF0AAAAAAAAAXgAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAF4AAABdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+      0,-1:
+        ind: 0,-1
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAFgAAA0QAAAEWAAAACgAAABYAAAFEAAACFgAAA14AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAABYAAAJEAAACFgAAAAoAAAAWAAACRAAAAxYAAANeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAAAWAAAARAAAARYAAAMKAAAAFgAAAUQAAAAWAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAFgAAA0QAAAMWAAACCgAAABYAAANEAAACFgAAAV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABEAAAARAAAA0QAAAFEAAADRAAAAV4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAARAAAAUQAAAImAAAARAAAAkQAAAJeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAEQAAABEAAAAJgAAAEQAAANEAAABXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABEAAABRAAAACYAAABEAAABRAAAAV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAARAAAAkQAAAAmAAAARAAAAkQAAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEQAAAJEAAAAJgAAAEQAAANEAAADXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABEAAABRAAAAkQAAABEAAAARAAAAl4AAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAEQAAAFEAAADRAAAA14AAABeAAAAXgAAAAAAAAAAAAAARAAAA0QAAAFEAAADRAAAAEQAAAFeAAAARAAAAUQAAAJEAAACRAAAAUQAAABEAAADRAAAAl4AAAAAAAAAAAAAAEQAAAJEAAAARAAAA0QAAABEAAABXgAAAEQAAAJEAAABRAAAAyYAAABEAAADRAAAAEQAAAJeAAAAAAAAAAAAAABEAAABRAAAA0QAAANEAAAARAAAAEQAAABEAAADRAAAAEQAAAImAAAARAAAA0QAAAJEAAADXgAAAAAAAAAAAAAARAAAA0QAAANEAAABRAAAAEQAAABEAAADRAAAA0QAAABEAAABJgAAAEQAAABEAAAARAAAAl4AAAAAAAAAAAAAAA==
+      -1,0:
+        ind: -1,0
+        tiles: AAAAAF4AAAAWAAACRAAAAUQAAAFEAAADRAAAAEQAAABEAAACXgAAAEQAAABEAAABRAAAAEQAAAJEAAACRAAAAwAAAABeAAAAFgAAAxYAAAMWAAACFgAAAxYAAAIWAAABFgAAAl4AAABEAAADRAAAAEQAAABEAAADRAAAA0QAAAAAAAAAXgAAAF4AAAAxAAAAMQAAADEAAAAxAAAAMQAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAABeAAAAMQAAADEAAAAxAAAAMQAAADEAAABeAAAAXQAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAXgAAAF4AAAAxAAAAMQAAADEAAABeAAAAXgAAAF0AAABeAAAAXgAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXgAAAAAAAABdAAAAXgAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXQAAAF4AAABeAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+      0,-2:
+        ind: 0,-2
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAEQAAAJEAAADRAAAAV4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEQAAANEAAAAJgAAAEQAAANEAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABEAAACRAAAASYAAABEAAADRAAAA14AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAARAAAA0QAAAMmAAAARAAAA0QAAAFeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAEQAAAFEAAABRAAAA0QAAAFEAAACXgAAAF4AAABeAAAAAAAAAA==
+      -1,-2:
+        ind: -1,-2
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAARAAAAUQAAABEAAACXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAARAAAAEQAAAEmAAAARAAAA0QAAANeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAEQAAAJEAAABJgAAAEQAAAFEAAABXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABEAAADRAAAASYAAABEAAABRAAAAl4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAARAAAAkQAAANEAAADRAAAA0QAAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+    type: MapGrid
+  - type: Broadphase
+  - angularDamping: 0.05
+    linearDamping: 0.05
+    fixedRotation: False
+    bodyType: Dynamic
+    type: Physics
+  - fixtures: []
+    type: Fixtures
+  - id: Empty
+    type: BecomesStation
+  - type: OccluderTree
+  - type: Shuttle
+  - nextUpdate: 5103.5217478
+    type: GridPathfinding
+  - gravityShakeSound: !type:SoundPathSpecifier
+      path: /Audio/Effects/alert.ogg
+    type: Gravity
+  - chunkCollection:
+      version: 2
+      nodes:
+      - node:
+          color: '#FFFFFFFF'
+          id: BushCThree
+        decals:
+          0: 8.958727,-15.96412
+          5: -11.047659,-13.073495
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushc1
+        decals:
+          1: 8.967296,-13.917245
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassb5
+        decals:
+          2: 8.998546,-14.854745
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassb2
+        decals:
+          3: 9.014171,-12.979745
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushj3
+        decals:
+          8: -11.004659,-14.08912
+          10: 9.031511,-14.46412
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushf1
+        decals:
+          11: 8.984636,-13.12037
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushf2
+        decals:
+          12: 9.015886,-15.635995
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushe3
+        decals:
+          16: 8.954511,-13.729745
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushe4
+        decals:
+          14: -11.128177,-15.96412
+          17: 8.970136,-15.604745
+      - node:
+          color: '#D4D4D496'
+          id: QuarterTileOverlayGreyscale270
+        decals:
+          38: -12,-21
+          39: -12,-20
+          40: -13,-20
+          41: -13,-19
+          42: -13,-18
+          43: -13,-17
+          45: 8,-21
+          46: 8,-20
+          47: 7,-20
+          48: 7,-19
+          49: 7,-18
+          50: 7,-17
+      - node:
+          color: '#D4D4D496'
+          id: QuarterTileOverlayGreyscale180
+        decals:
+          32: -9,-17
+          33: -9,-18
+          34: -9,-19
+          35: -9,-20
+          36: -10,-20
+          37: -10,-21
+          51: 10,-21
+          52: 10,-20
+          53: 11,-20
+          54: 11,-19
+          55: 11,-18
+          56: 11,-17
+      - node:
+          color: '#D4D4D496'
+          id: HalfTileOverlayGreyscale180
+        decals:
+          44: -11,-21
+          57: 9,-21
+      - node:
+          color: '#D4D4D496'
+          id: QuarterTileOverlayGreyscale
+        decals:
+          18: -13,-6
+          19: -13,-7
+          20: -13,-8
+          21: -13,-9
+          22: -13,-10
+          23: -13,-11
+          24: -13,-12
+          58: 7,-12
+          59: 7,-11
+          60: 7,-10
+          61: 7,-9
+          62: 7,-8
+          63: 7,-7
+          64: 7,-6
+      - node:
+          color: '#D4D4D496'
+          id: QuarterTileOverlayGreyscale90
+        decals:
+          25: -9,-6
+          26: -9,-7
+          27: -9,-8
+          28: -9,-9
+          29: -9,-10
+          30: -9,-11
+          31: -9,-12
+          65: 11,-6
+          66: 11,-7
+          67: 11,-8
+          68: 11,-9
+          69: 11,-10
+          70: 11,-11
+          71: 11,-12
+      - node:
+          color: '#52B4E950'
+          id: QuarterTileOverlayGreyscale180
+        decals:
+          72: 11,-10
+          73: 11,-9
+          74: 11,-8
+          75: 11,-7
+          76: 11,-6
+          77: 11,-11
+          78: 11,-12
+          93: 8,-21
+          94: 7,-20
+          105: -13,-20
+          106: -12,-21
+          121: -9,-12
+          122: -9,-11
+          123: -9,-10
+          124: -9,-9
+          125: -9,-8
+          126: -9,-7
+          127: -9,-6
+      - node:
+          color: '#52B4E950'
+          id: QuarterTileOverlayGreyscale270
+        decals:
+          79: 7,-12
+          80: 7,-11
+          81: 7,-10
+          82: 7,-9
+          83: 7,-8
+          84: 7,-7
+          85: 7,-6
+          91: 10,-21
+          92: 11,-20
+          107: -10,-21
+          108: -9,-20
+          114: -13,-12
+          115: -13,-11
+          116: -13,-10
+          117: -13,-9
+          118: -13,-8
+          119: -13,-7
+          120: -13,-6
+      - node:
+          color: '#52B4E950'
+          id: QuarterTileOverlayGreyscale90
+        decals:
+          86: 11,-17
+          87: 11,-18
+          88: 11,-19
+          89: 11,-20
+          90: 10,-21
+          109: -10,-21
+          110: -9,-20
+          111: -9,-19
+          112: -9,-18
+          113: -9,-17
+      - node:
+          color: '#52B4E950'
+          id: QuarterTileOverlayGreyscale
+        decals:
+          95: 8,-21
+          96: 7,-20
+          97: 7,-19
+          98: 7,-18
+          99: 7,-17
+          100: -12,-21
+          101: -13,-20
+          102: -13,-19
+          103: -13,-18
+          104: -13,-17
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileSteelLineE
+        decals:
+          142: -14,-16
+          143: -14,-15
+          144: -14,-14
+          145: -14,-13
+          154: -10,-16
+          155: -10,-15
+          156: -10,-14
+          157: -10,-13
+          158: 6,-16
+          159: 6,-15
+          160: 6,-14
+          161: 6,-13
+          162: 10,-16
+          163: 10,-15
+          164: 10,-14
+          165: 10,-13
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileSteelLineW
+        decals:
+          146: -12,-16
+          147: -12,-15
+          148: -12,-14
+          149: -12,-13
+          150: -8,-16
+          151: -8,-15
+          152: -8,-14
+          153: -8,-13
+          166: 12,-16
+          167: 12,-15
+          168: 12,-14
+          169: 12,-13
+          170: 8,-16
+          171: 8,-15
+          172: 8,-14
+          173: 8,-13
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileSteelLineN
+        decals:
+          140: -9,-17
+          141: -13,-17
+          174: 7,-17
+          175: 11,-17
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileSteelLineS
+        decals:
+          138: -9,-12
+          139: -13,-12
+          176: 11,-12
+          177: 7,-12
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileDarkLineS
+        decals:
+          133: -9,-12
+          134: -10,-12
+          135: -11,-12
+          136: -12,-12
+          137: -13,-12
+          178: 10,-12
+          179: 9,-12
+          180: 8,-12
+      - node:
+          color: '#FFFFFFFF'
+          id: BrickTileDarkLineN
+        decals:
+          128: -9,-17
+          129: -10,-17
+          130: -11,-17
+          131: -12,-17
+          132: -13,-17
+          181: 10,-17
+          182: 9,-17
+          183: 8,-17
+      - node:
+          color: '#334E6DC8'
+          id: HalfTileOverlayGreyscale90
+        decals:
+          184: 0,0
+          188: 0,-2
+          189: 0,-1
+          190: 0,-3
+          204: -3,-3
+          205: -3,-2
+          206: -3,-1
+          207: -3,0
+      - node:
+          color: '#334E6DC8'
+          id: QuarterTileOverlayGreyscale
+        decals:
+          194: -1,-1
+          195: 0,-2
+          196: 0,-3
+          197: -1,-2
+          218: -8,0
+          219: -9,0
+          220: -10,0
+          221: -11,0
+          222: -12,0
+          223: -13,0
+          224: -13,-1
+          225: -13,-2
+          226: -13,-3
+          227: -13,-4
+      - node:
+          color: '#334E6DC8'
+          id: QuarterTileOverlayGreyscale270
+        decals:
+          200: 0,-2
+          201: -1,-1
+      - node:
+          color: '#334E6DC8'
+          id: HalfTileOverlayGreyscale270
+        decals:
+          185: -2,-2
+          186: -2,-1
+          187: -2,0
+          191: -2,-3
+          208: 1,-3
+          209: 1,-2
+          210: 1,-1
+          211: 1,0
+      - node:
+          color: '#334E6DC8'
+          id: FullTileOverlayGreyscale
+        decals:
+          212: -4,0
+          213: 2,-3
+      - node:
+          color: '#334E6DC8'
+          id: ThreeQuarterTileOverlayGreyscale270
+        decals:
+          214: 2,-2
+          215: 3,-3
+      - node:
+          color: '#FFFFFFFF'
+          id: WarnBox
+        decals:
+          228: -7,-18
+          229: -7,-11
+          230: -15,-11
+          231: -15,-18
+          232: 13,-18
+          233: 13,-11
+          234: 5,-11
+          235: 5,-18
+      - node:
+          color: '#FFFFFFFF'
+          id: Delivery
+        decals:
+          236: 14,-18
+          237: 12,-18
+          238: 6,-18
+          239: 4,-18
+          240: 4,-11
+          241: 6,-11
+          242: 12,-11
+          243: 14,-11
+          244: -6,-18
+          245: -8,-18
+          246: -14,-18
+          247: -16,-18
+          248: -16,-11
+          249: -14,-11
+          250: -8,-11
+          251: -6,-11
+      - node:
+          color: '#FFFFFFFF'
+          id: Bot
+        decals:
+          252: -9,-18
+          253: -13,-18
+          254: -13,-11
+          255: -9,-11
+          256: 7,-18
+          257: 7,-11
+          258: 11,-11
+          259: 11,-18
+      - node:
+          angle: -1.5707963267948966 rad
+          color: '#FFFFFFFF'
+          id: Arrows
+        decals:
+          260: 8,-18
+          261: 8,-11
+          262: -12,-18
+          263: -12,-11
+      - node:
+          angle: 1.5707963267948966 rad
+          color: '#FFFFFFFF'
+          id: Arrows
+        decals:
+          264: -10,-18
+          265: -10,-11
+          266: 10,-11
+          267: 10,-18
+      - node:
+          color: '#9FED5850'
+          id: HalfTileOverlayGreyscale180
+        decals:
+          272: 12,-4
+          273: 11,-4
+          274: 7,-4
+          275: 6,-4
+          282: 12,-1
+          283: 11,-1
+      - node:
+          color: '#9FED5850'
+          id: HalfTileOverlayGreyscale
+        decals:
+          276: 12,-2
+          277: 11,-2
+          278: 12,1
+          279: 11,1
+          280: 7,1
+          281: 6,1
+          290: 9,4
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassa3
+        decals:
+          4: -11.016409,-15.073495
+      - node:
+          color: '#FFFFFFFF'
+          id: BushATwo
+        decals:
+          6: -11.016409,-15.979745
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassb3
+        decals:
+          7: -10.985159,-14.010995
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushj2
+        decals:
+          9: -10.989034,-15.30787
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushf3
+        decals:
+          13: -11.034427,-14.62037
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushe2
+        decals:
+          15: -11.003177,-13.104745
+      - node:
+          color: '#334E6DC8'
+          id: QuarterTileOverlayGreyscale180
+        decals:
+          192: -2,0
+          193: -1,-1
+          198: -1,-2
+          199: -2,-1
+      - node:
+          color: '#334E6DC8'
+          id: QuarterTileOverlayGreyscale90
+        decals:
+          202: -1,-2
+          203: -2,-1
+      - node:
+          color: '#334E6DC8'
+          id: ThreeQuarterTileOverlayGreyscale90
+        decals:
+          216: -4,-1
+          217: -5,0
+      - node:
+          color: '#FFFFFFFF'
+          id: WarnLineE
+        decals:
+          268: 3,4
+      - node:
+          color: '#FFFFFFFF'
+          id: WarnCornerSmallSE
+        decals:
+          269: 3,5
+      - node:
+          color: '#FFFFFFFF'
+          id: WarnCornerSmallNE
+        decals:
+          270: 3,3
+      - node:
+          color: '#FFFFFFFF'
+          id: StandClear
+        decals:
+          271: 3,4
+      - node:
+          color: '#9FED5850'
+          id: ThreeQuarterTileOverlayGreyscale270
+        decals:
+          284: 7,2
+      - node:
+          color: '#9FED5850'
+          id: ThreeQuarterTileOverlayGreyscale90
+        decals:
+          285: 11,3
+          289: 10,4
+      - node:
+          color: '#9FED5850'
+          id: ThreeQuarterTileOverlayGreyscale180
+        decals:
+          286: 11,2
+      - node:
+          color: '#9FED5850'
+          id: ThreeQuarterTileOverlayGreyscale
+        decals:
+          287: 7,3
+          288: 8,4
+      - node:
+          color: '#9FED5850'
+          id: QuarterTileOverlayGreyscale
+        decals:
+          291: 8,3
+      - node:
+          color: '#9FED5850'
+          id: QuarterTileOverlayGreyscale90
+        decals:
+          292: 10,3
+    type: DecalGrid
+  - version: 2
+    data:
+      tiles:
+        -1,-1:
+          0: 65535
+        0,0:
+          0: 65535
+        0,-1:
+          0: 65535
+        -1,0:
+          0: 65535
+        -4,-3:
+          0: 53247
+        -4,-4:
+          0: 61166
+        -4,-2:
+          0: 60620
+        -4,-1:
+          0: 61166
+        -3,-4:
+          0: 65535
+        -3,-3:
+          0: 65535
+        -3,-2:
+          0: 65535
+        -3,-1:
+          0: 65535
+        -2,-4:
+          0: 13107
+        -2,-3:
+          0: 6007
+        -2,-2:
+          0: 61713
+        -2,-1:
+          0: 65535
+        -1,-2:
+          0: 61440
+        0,1:
+          0: 4095
+        1,0:
+          0: 65535
+        1,1:
+          0: 959
+        2,0:
+          0: 65535
+        2,1:
+          0: 255
+        3,0:
+          0: 4915
+        3,1:
+          0: 1
+        0,-2:
+          0: 61440
+        1,-3:
+          0: 53247
+        1,-2:
+          0: 64716
+        1,-1:
+          0: 65535
+        1,-4:
+          0: 61166
+        2,-4:
+          0: 65535
+        2,-3:
+          0: 65535
+        2,-2:
+          0: 65535
+        2,-1:
+          0: 65535
+        3,-4:
+          0: 13107
+        3,-3:
+          0: 6007
+        3,-2:
+          0: 12561
+        3,-1:
+          0: 13107
+        -4,0:
+          0: 52974
+        -4,1:
+          0: 140
+        -3,0:
+          0: 65535
+        -3,1:
+          0: 255
+        -2,0:
+          0: 65535
+        -2,1:
+          0: 3823
+        -1,1:
+          0: 4095
+        1,-5:
+          0: 65532
+        1,-6:
+          0: 51200
+        2,-6:
+          0: 65280
+        2,-5:
+          0: 65535
+        3,-6:
+          0: 4096
+        3,-5:
+          0: 30577
+        -4,-5:
+          0: 65532
+        -4,-6:
+          0: 51200
+        -3,-6:
+          0: 65280
+        -3,-5:
+          0: 65535
+        -2,-6:
+          0: 4096
+        -2,-5:
+          0: 30577
+      uniqueMixes:
+      - volume: 2500
+        temperature: 293.15
+        moles:
+        - 21.824879
+        - 82.10312
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+      chunkSize: 4
+    type: GridAtmosphere
+  - type: GasTileOverlay
+  - type: RadiationGridResistance
+- uid: 1
+  components:
+  - type: MetaData
+  - type: Transform
+  - index: 8
+    type: Map
+  - type: PhysicsMap
+  - type: Broadphase
+  - type: OccluderTree
+- uid: 2
+  type: AirlockExternalGlass
+  components:
+  - pos: 6.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 3
+  type: AirlockExternalGlass
+  components:
+  - pos: -7.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 4
+  type: AirlockExternalGlass
+  components:
+  - pos: -7.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 5
+  type: AirlockExternalGlass
+  components:
+  - pos: 6.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 6
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 4.5,-17.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 7
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 4.5,-10.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 8
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-17.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 9
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-10.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 10
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 11
+  type: AirlockExternalGlass
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 12
+  type: AirlockExternalGlass
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 13
+  type: AirlockExternalGlass
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -13.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 14
+  type: AirlockExternalGlass
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -13.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 15
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -15.5,-17.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 16
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -15.5,-10.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 17
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-17.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 18
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-10.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
+      density: 100
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      hard: False
+      id: docking
+    type: Fixtures
+- uid: 19
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 20
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -8.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 21
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -8.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 22
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 23
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -10.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 24
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 25
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -11.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 26
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 27
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 28
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 29
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 30
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 8.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 31
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 7.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 32
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 7.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 33
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 34
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 35
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 36
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 11.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 37
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 11.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 38
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 39
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 40
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 9.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 41
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 42
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 5.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 43
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 44
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 45
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 13.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 46
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 47
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 48
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -6.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 49
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 50
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 51
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -14.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 52
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -15.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 53
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 54
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -14.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 55
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -15.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 56
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 57
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -6.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 58
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 59
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 60
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -6.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 61
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 62
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 63
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -14.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 64
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -15.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 65
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 66
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -14.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 67
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -15.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 68
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 69
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -6.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 70
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 71
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 72
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 13.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 73
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 74
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 75
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 13.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 76
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 77
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 14.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 78
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 13.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 79
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 80
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 81
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 5.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 82
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 83
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 84
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 5.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 85
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 86
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 87
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 5.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 88
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 89
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 90
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 91
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 92
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 93
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 94
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 95
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 96
+  type: Grille
+  components:
+  - pos: -14.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 97
+  type: Grille
+  components:
+  - pos: -14.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 98
+  type: Grille
+  components:
+  - pos: -14.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 99
+  type: Grille
+  components:
+  - pos: -6.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 100
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 101
+  type: Grille
+  components:
+  - pos: 5.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 102
+  type: Grille
+  components:
+  - pos: 5.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 103
+  type: Grille
+  components:
+  - pos: 13.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 104
+  type: Grille
+  components:
+  - pos: 13.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 105
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 106
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 107
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 108
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 109
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 110
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 111
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 112
+  type: WallRiveted
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 6.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 113
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 114
+  type: WallRiveted
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -13.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 115
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 116
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 117
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 118
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 119
+  type: Stool
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -11.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 120
+  type: WallRiveted
+  components:
+  - pos: 5.5,1.5
+    parent: 0
+    type: Transform
+- uid: 121
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 122
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 123
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 124
+  type: SmallLight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -8.5,2.5
+    parent: 0
+    type: Transform
+- uid: 125
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 126
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 127
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -8.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 128
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -8.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 129
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 130
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -11.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 131
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 132
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 133
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 134
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 135
+  type: Grille
+  components:
+  - pos: 5.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 136
+  type: Grille
+  components:
+  - pos: 5.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 137
+  type: Grille
+  components:
+  - pos: 13.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 138
+  type: Grille
+  components:
+  - pos: 13.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 139
+  type: Grille
+  components:
+  - pos: -14.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 140
+  type: Grille
+  components:
+  - pos: -6.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 141
+  type: Grille
+  components:
+  - pos: -6.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 142
+  type: Grille
+  components:
+  - pos: -6.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 143
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 144
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 145
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -7.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 146
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -8.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 147
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 148
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 149
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 150
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 7.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 151
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 152
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 153
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 154
+  type: WallRiveted
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 155
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 156
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 157
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 158
+  type: WallRiveted
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 159
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 160
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 161
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 162
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 163
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 164
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 165
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 166
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 167
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 168
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 12.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 169
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 11.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 170
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 11.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 171
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 172
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 8.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 173
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 7.5,-21.5
+    parent: 0
+    type: Transform
+- uid: 174
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 7.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 175
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 176
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 177
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 178
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 179
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 180
+  type: WallRiveted
+  components:
+  - pos: 5.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 181
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 182
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -4.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 183
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 184
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 185
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 186
+  type: Grille
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 187
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 188
+  type: WallRiveted
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 189
+  type: WallRiveted
+  components:
+  - pos: 5.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 190
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 4.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 191
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 192
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 193
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 194
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 195
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 196
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 197
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -4.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 198
+  type: ReinforcedWindow
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -5.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 199
+  type: WallRiveted
+  components:
+  - pos: -6.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 200
+  type: SignShipDock
+  components:
+  - pos: 6.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 201
+  type: CableMV
+  components:
+  - pos: 6.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 202
+  type: WallRiveted
+  components:
+  - pos: -6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 203
+  type: CableMV
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 204
+  type: CableMV
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 205
+  type: APCBasic
+  components:
+  - pos: 6.5,2.5
+    parent: 0
+    type: Transform
+- uid: 206
+  type: APCBasic
+  components:
+  - pos: -13.5,2.5
+    parent: 0
+    type: Transform
+- uid: 207
+  type: WallRiveted
+  components:
+  - pos: -6.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 208
+  type: CableMV
+  components:
+  - pos: 0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 209
+  type: CableApcExtension
+  components:
+  - pos: -1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 210
+  type: CableMV
+  components:
+  - pos: 6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 211
+  type: APCBasic
+  components:
+  - pos: -13.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 212
+  type: APCBasic
+  components:
+  - pos: 6.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 213
+  type: SMESBasic
+  components:
+  - pos: -2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 214
+  type: CableMV
+  components:
+  - pos: 6.5,0.5
+    parent: 0
+    type: Transform
+- uid: 215
+  type: SubstationBasic
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 216
+  type: CableHV
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 217
+  type: CableApcExtension
+  components:
+  - pos: -4.5,3.5
+    parent: 0
+    type: Transform
+- uid: 218
+  type: CableMV
+  components:
+  - pos: 2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 219
+  type: CableMV
+  components:
+  - pos: 7.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 220
+  type: CableTerminal
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,4.5
+    parent: 0
+    type: Transform
+- uid: 221
+  type: CableMV
+  components:
+  - pos: 3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 222
+  type: CableHV
+  components:
+  - pos: -4.5,4.5
+    parent: 0
+    type: Transform
+- uid: 223
+  type: CableMV
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 224
+  type: CableMV
+  components:
+  - pos: 1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 225
+  type: CableHV
+  components:
+  - pos: -1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 226
+  type: CableMV
+  components:
+  - pos: 6.5,2.5
+    parent: 0
+    type: Transform
+- uid: 227
+  type: CableMV
+  components:
+  - pos: 8.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 228
+  type: CableMV
+  components:
+  - pos: 9.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 229
+  type: Grille
+  components:
+  - pos: -6.5,0.5
+    parent: 0
+    type: Transform
+- uid: 230
+  type: Grille
+  components:
+  - pos: 5.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 231
+  type: GeneratorUranium
+  components:
+  - pos: -4.5,4.5
+    parent: 0
+    type: Transform
+- uid: 232
+  type: Grille
+  components:
+  - pos: -6.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 233
+  type: Grille
+  components:
+  - pos: -8.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 234
+  type: Grille
+  components:
+  - pos: 11.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 235
+  type: Grille
+  components:
+  - pos: 7.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 236
+  type: PottedPlantRandom
+  components:
+  - pos: 7.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 237
+  type: PottedPlantRandom
+  components:
+  - pos: -12.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 238
+  type: PottedPlantRandom
+  components:
+  - pos: 11.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 239
+  type: PottedPlantRandom
+  components:
+  - pos: -8.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 240
+  type: ReinforcedWindow
+  components:
+  - pos: -12.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 241
+  type: ReinforcedWindow
+  components:
+  - pos: 11.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 242
+  type: ReinforcedWindow
+  components:
+  - pos: 7.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 243
+  type: ReinforcedWindow
+  components:
+  - pos: -8.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 244
+  type: Grille
+  components:
+  - pos: -12.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 245
+  type: SignShipDock
+  components:
+  - pos: -7.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 246
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: -7.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 247
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: -13.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 248
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: 12.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 249
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: 6.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 250
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: -13.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 251
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: 12.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 252
+  type: AirlockGlass
+  components:
+  - pos: -9.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 253
+  type: AirlockGlass
+  components:
+  - pos: -10.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 254
+  type: AirlockGlass
+  components:
+  - pos: -11.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 255
+  type: AirlockGlass
+  components:
+  - pos: 8.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 256
+  type: AirlockGlass
+  components:
+  - pos: 9.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 257
+  type: AirlockGlass
+  components:
+  - pos: 10.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 258
+  type: WallRiveted
+  components:
+  - pos: -14.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 259
+  type: WallRiveted
+  components:
+  - pos: 13.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 260
+  type: WallRiveted
+  components:
+  - pos: 13.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 261
+  type: WallRiveted
+  components:
+  - pos: -14.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 262
+  type: WallRiveted
+  components:
+  - pos: 13.5,1.5
+    parent: 0
+    type: Transform
+- uid: 263
+  type: WallRiveted
+  components:
+  - pos: 13.5,2.5
+    parent: 0
+    type: Transform
+- uid: 264
+  type: WallRiveted
+  components:
+  - pos: 12.5,2.5
+    parent: 0
+    type: Transform
+- uid: 265
+  type: WallRiveted
+  components:
+  - pos: -14.5,1.5
+    parent: 0
+    type: Transform
+- uid: 266
+  type: WallRiveted
+  components:
+  - pos: -14.5,2.5
+    parent: 0
+    type: Transform
+- uid: 267
+  type: WallRiveted
+  components:
+  - pos: -13.5,2.5
+    parent: 0
+    type: Transform
+- uid: 268
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 269
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 270
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 271
+  type: ReinforcedWindow
+  components:
+  - pos: -14.5,0.5
+    parent: 0
+    type: Transform
+- uid: 272
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 273
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 274
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 275
+  type: ReinforcedWindow
+  components:
+  - pos: 13.5,0.5
+    parent: 0
+    type: Transform
+- uid: 276
+  type: Grille
+  components:
+  - pos: 13.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 277
+  type: Grille
+  components:
+  - pos: 13.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 278
+  type: Grille
+  components:
+  - pos: 13.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 279
+  type: Grille
+  components:
+  - pos: 13.5,0.5
+    parent: 0
+    type: Transform
+- uid: 280
+  type: Grille
+  components:
+  - pos: -14.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 281
+  type: Grille
+  components:
+  - pos: -14.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 282
+  type: Grille
+  components:
+  - pos: -14.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 283
+  type: Grille
+  components:
+  - pos: -14.5,0.5
+    parent: 0
+    type: Transform
+- uid: 284
+  type: ReinforcedWindow
+  components:
+  - pos: -13.5,4.5
+    parent: 0
+    type: Transform
+- uid: 285
+  type: ReinforcedWindow
+  components:
+  - pos: -12.5,4.5
+    parent: 0
+    type: Transform
+- uid: 286
+  type: ReinforcedWindow
+  components:
+  - pos: -10.5,5.5
+    parent: 0
+    type: Transform
+- uid: 287
+  type: ReinforcedWindow
+  components:
+  - pos: -11.5,5.5
+    parent: 0
+    type: Transform
+- uid: 288
+  type: ReinforcedWindow
+  components:
+  - pos: -8.5,4.5
+    parent: 0
+    type: Transform
+- uid: 289
+  type: ReinforcedWindow
+  components:
+  - pos: -8.5,5.5
+    parent: 0
+    type: Transform
+- uid: 290
+  type: ReinforcedWindow
+  components:
+  - pos: -12.5,5.5
+    parent: 0
+    type: Transform
+- uid: 291
+  type: ReinforcedWindow
+  components:
+  - pos: -13.5,3.5
+    parent: 0
+    type: Transform
+- uid: 292
+  type: ReinforcedWindow
+  components:
+  - pos: -9.5,5.5
+    parent: 0
+    type: Transform
+- uid: 293
+  type: ReinforcedWindow
+  components:
+  - pos: 6.5,3.5
+    parent: 0
+    type: Transform
+- uid: 294
+  type: ReinforcedWindow
+  components:
+  - pos: -7.5,3.5
+    parent: 0
+    type: Transform
+- uid: 295
+  type: ReinforcedWindow
+  components:
+  - pos: -7.5,4.5
+    parent: 0
+    type: Transform
+- uid: 296
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -6.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 297
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -14.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 298
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -14.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 299
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -6.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 300
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 5.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 301
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 5.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 302
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 13.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 303
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 13.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 304
+  type: WallRiveted
+  components:
+  - pos: -7.5,2.5
+    parent: 0
+    type: Transform
+- uid: 305
+  type: Grille
+  components:
+  - pos: 5.5,0.5
+    parent: 0
+    type: Transform
+- uid: 306
+  type: WallRiveted
+  components:
+  - pos: -6.5,2.5
+    parent: 0
+    type: Transform
+- uid: 307
+  type: WallRiveted
+  components:
+  - pos: 6.5,2.5
+    parent: 0
+    type: Transform
+- uid: 308
+  type: ReinforcedWindow
+  components:
+  - pos: 6.5,4.5
+    parent: 0
+    type: Transform
+- uid: 309
+  type: ReinforcedWindow
+  components:
+  - pos: 7.5,4.5
+    parent: 0
+    type: Transform
+- uid: 310
+  type: ReinforcedWindow
+  components:
+  - pos: 7.5,5.5
+    parent: 0
+    type: Transform
+- uid: 311
+  type: ReinforcedWindow
+  components:
+  - pos: 8.5,5.5
+    parent: 0
+    type: Transform
+- uid: 312
+  type: ReinforcedWindow
+  components:
+  - pos: 9.5,5.5
+    parent: 0
+    type: Transform
+- uid: 313
+  type: ReinforcedWindow
+  components:
+  - pos: 10.5,5.5
+    parent: 0
+    type: Transform
+- uid: 314
+  type: ReinforcedWindow
+  components:
+  - pos: 11.5,5.5
+    parent: 0
+    type: Transform
+- uid: 315
+  type: ReinforcedWindow
+  components:
+  - pos: 11.5,4.5
+    parent: 0
+    type: Transform
+- uid: 316
+  type: ReinforcedWindow
+  components:
+  - pos: 12.5,4.5
+    parent: 0
+    type: Transform
+- uid: 317
+  type: ReinforcedWindow
+  components:
+  - pos: 12.5,3.5
+    parent: 0
+    type: Transform
+- uid: 318
+  type: Grille
+  components:
+  - pos: -13.5,3.5
+    parent: 0
+    type: Transform
+- uid: 319
+  type: Grille
+  components:
+  - pos: -13.5,4.5
+    parent: 0
+    type: Transform
+- uid: 320
+  type: Grille
+  components:
+  - pos: -12.5,4.5
+    parent: 0
+    type: Transform
+- uid: 321
+  type: Grille
+  components:
+  - pos: -12.5,5.5
+    parent: 0
+    type: Transform
+- uid: 322
+  type: Grille
+  components:
+  - pos: -11.5,5.5
+    parent: 0
+    type: Transform
+- uid: 323
+  type: Grille
+  components:
+  - pos: -10.5,5.5
+    parent: 0
+    type: Transform
+- uid: 324
+  type: Grille
+  components:
+  - pos: -9.5,5.5
+    parent: 0
+    type: Transform
+- uid: 325
+  type: Grille
+  components:
+  - pos: -8.5,5.5
+    parent: 0
+    type: Transform
+- uid: 326
+  type: Grille
+  components:
+  - pos: -8.5,4.5
+    parent: 0
+    type: Transform
+- uid: 327
+  type: Grille
+  components:
+  - pos: -7.5,4.5
+    parent: 0
+    type: Transform
+- uid: 328
+  type: Grille
+  components:
+  - pos: -7.5,3.5
+    parent: 0
+    type: Transform
+- uid: 329
+  type: Grille
+  components:
+  - pos: 6.5,3.5
+    parent: 0
+    type: Transform
+- uid: 330
+  type: Grille
+  components:
+  - pos: 6.5,4.5
+    parent: 0
+    type: Transform
+- uid: 331
+  type: Grille
+  components:
+  - pos: 7.5,4.5
+    parent: 0
+    type: Transform
+- uid: 332
+  type: Grille
+  components:
+  - pos: 7.5,5.5
+    parent: 0
+    type: Transform
+- uid: 333
+  type: Grille
+  components:
+  - pos: 8.5,5.5
+    parent: 0
+    type: Transform
+- uid: 334
+  type: Grille
+  components:
+  - pos: 9.5,5.5
+    parent: 0
+    type: Transform
+- uid: 335
+  type: Grille
+  components:
+  - pos: 10.5,5.5
+    parent: 0
+    type: Transform
+- uid: 336
+  type: Grille
+  components:
+  - pos: 11.5,5.5
+    parent: 0
+    type: Transform
+- uid: 337
+  type: Grille
+  components:
+  - pos: 11.5,4.5
+    parent: 0
+    type: Transform
+- uid: 338
+  type: Grille
+  components:
+  - pos: 12.5,4.5
+    parent: 0
+    type: Transform
+- uid: 339
+  type: Grille
+  components:
+  - pos: 12.5,3.5
+    parent: 0
+    type: Transform
+- uid: 340
+  type: WallRiveted
+  components:
+  - pos: 5.5,2.5
+    parent: 0
+    type: Transform
+- uid: 341
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 342
+  type: ReinforcedWindow
+  components:
+  - pos: 5.5,0.5
+    parent: 0
+    type: Transform
+- uid: 343
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 344
+  type: ReinforcedWindow
+  components:
+  - pos: -6.5,0.5
+    parent: 0
+    type: Transform
+- uid: 345
+  type: FirelockGlass
+  components:
+  - pos: 5.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 346
+  type: FirelockGlass
+  components:
+  - pos: 5.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 347
+  type: FirelockGlass
+  components:
+  - pos: -6.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 348
+  type: FirelockGlass
+  components:
+  - pos: -6.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 349
+  type: CableMV
+  components:
+  - pos: 9.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 350
+  type: CableMV
+  components:
+  - pos: 5.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 351
+  type: CableApcExtension
+  components:
+  - pos: 3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 352
+  type: CableMV
+  components:
+  - pos: 2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 353
+  type: CableMV
+  components:
+  - pos: 4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 354
+  type: CableHV
+  components:
+  - pos: -3.5,4.5
+    parent: 0
+    type: Transform
+- uid: 355
+  type: CableHV
+  components:
+  - pos: -2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 356
+  type: CableMV
+  components:
+  - pos: 9.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 357
+  type: CableMV
+  components:
+  - pos: 9.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 358
+  type: CableMV
+  components:
+  - pos: 9.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 359
+  type: CableMV
+  components:
+  - pos: 9.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 360
+  type: CableMV
+  components:
+  - pos: 9.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 361
+  type: CableMV
+  components:
+  - pos: 9.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 362
+  type: CableMV
+  components:
+  - pos: 9.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 363
+  type: CableMV
+  components:
+  - pos: 9.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 364
+  type: CableMV
+  components:
+  - pos: 9.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 365
+  type: CableMV
+  components:
+  - pos: 9.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 366
+  type: CableMV
+  components:
+  - pos: 8.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 367
+  type: CableMV
+  components:
+  - pos: 7.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 368
+  type: CableMV
+  components:
+  - pos: 6.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 369
+  type: CableMV
+  components:
+  - pos: 0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 370
+  type: CableMV
+  components:
+  - pos: -0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 371
+  type: CableMV
+  components:
+  - pos: -1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 372
+  type: CableMV
+  components:
+  - pos: -2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 373
+  type: CableMV
+  components:
+  - pos: -3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 374
+  type: CableMV
+  components:
+  - pos: -4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 375
+  type: CableMV
+  components:
+  - pos: -5.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 376
+  type: CableMV
+  components:
+  - pos: -6.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 377
+  type: CableMV
+  components:
+  - pos: -7.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 378
+  type: CableMV
+  components:
+  - pos: -8.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 379
+  type: CableMV
+  components:
+  - pos: -9.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 380
+  type: CableMV
+  components:
+  - pos: -10.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 381
+  type: CableMV
+  components:
+  - pos: -11.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 382
+  type: CableMV
+  components:
+  - pos: -12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 383
+  type: CableMV
+  components:
+  - pos: -13.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 384
+  type: CableMV
+  components:
+  - pos: -13.5,0.5
+    parent: 0
+    type: Transform
+- uid: 385
+  type: CableMV
+  components:
+  - pos: -13.5,1.5
+    parent: 0
+    type: Transform
+- uid: 386
+  type: CableMV
+  components:
+  - pos: -13.5,2.5
+    parent: 0
+    type: Transform
+- uid: 387
+  type: CableMV
+  components:
+  - pos: -10.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 388
+  type: CableMV
+  components:
+  - pos: -10.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 389
+  type: CableMV
+  components:
+  - pos: -10.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 390
+  type: CableMV
+  components:
+  - pos: -10.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 391
+  type: CableMV
+  components:
+  - pos: -10.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 392
+  type: CableMV
+  components:
+  - pos: -10.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 393
+  type: CableMV
+  components:
+  - pos: -10.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 394
+  type: CableMV
+  components:
+  - pos: -10.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 395
+  type: CableMV
+  components:
+  - pos: -10.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 396
+  type: CableMV
+  components:
+  - pos: -10.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 397
+  type: CableMV
+  components:
+  - pos: -10.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 398
+  type: CableMV
+  components:
+  - pos: -11.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 399
+  type: CableMV
+  components:
+  - pos: -12.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 400
+  type: CableMV
+  components:
+  - pos: -13.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 401
+  type: WallRiveted
+  components:
+  - pos: -5.5,2.5
+    parent: 0
+    type: Transform
+- uid: 402
+  type: WallRiveted
+  components:
+  - pos: -5.5,3.5
+    parent: 0
+    type: Transform
+- uid: 403
+  type: WallRiveted
+  components:
+  - pos: -5.5,4.5
+    parent: 0
+    type: Transform
+- uid: 404
+  type: WallRiveted
+  components:
+  - pos: -5.5,5.5
+    parent: 0
+    type: Transform
+- uid: 405
+  type: WallRiveted
+  components:
+  - pos: -5.5,6.5
+    parent: 0
+    type: Transform
+- uid: 406
+  type: WallRiveted
+  components:
+  - pos: 4.5,2.5
+    parent: 0
+    type: Transform
+- uid: 407
+  type: WallRiveted
+  components:
+  - pos: 4.5,3.5
+    parent: 0
+    type: Transform
+- uid: 408
+  type: AirlockExternalEngineeringLocked
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 4.5,4.5
+    parent: 0
+    type: Transform
+- uid: 409
+  type: WallRiveted
+  components:
+  - pos: 4.5,5.5
+    parent: 0
+    type: Transform
+- uid: 410
+  type: WallRiveted
+  components:
+  - pos: 4.5,6.5
+    parent: 0
+    type: Transform
+- uid: 411
+  type: WallRiveted
+  components:
+  - pos: 3.5,6.5
+    parent: 0
+    type: Transform
+- uid: 412
+  type: WallRiveted
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 413
+  type: CableApcExtension
+  components:
+  - pos: 2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 414
+  type: WallRiveted
+  components:
+  - pos: 0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 415
+  type: WallRiveted
+  components:
+  - pos: -0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 416
+  type: WallRiveted
+  components:
+  - pos: -1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 417
+  type: WallRiveted
+  components:
+  - pos: -2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 418
+  type: WallRiveted
+  components:
+  - pos: -3.5,6.5
+    parent: 0
+    type: Transform
+- uid: 419
+  type: WallRiveted
+  components:
+  - pos: -4.5,6.5
+    parent: 0
+    type: Transform
+- uid: 420
+  type: CableApcExtension
+  components:
+  - pos: 2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 421
+  type: CableApcExtension
+  components:
+  - pos: 1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 422
+  type: CableApcExtension
+  components:
+  - pos: 2.5,5.5
+    parent: 0
+    type: Transform
+- uid: 423
+  type: WallRiveted
+  components:
+  - pos: 1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 424
+  type: CableApcExtension
+  components:
+  - pos: 0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 425
+  type: CableApcExtension
+  components:
+  - pos: -0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 426
+  type: CableApcExtension
+  components:
+  - pos: -2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 427
+  type: CableApcExtension
+  components:
+  - pos: -3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 428
+  type: CableMV
+  components:
+  - pos: 2.5,5.5
+    parent: 0
+    type: Transform
+- uid: 429
+  type: CableMV
+  components:
+  - pos: 2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 430
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 431
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 432
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 433
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 434
+  type: CableApcExtension
+  components:
+  - pos: 0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 435
+  type: CableApcExtension
+  components:
+  - pos: -0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 436
+  type: CableApcExtension
+  components:
+  - pos: -1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 437
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 438
+  type: CableApcExtension
+  components:
+  - pos: -3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 439
+  type: CableApcExtension
+  components:
+  - pos: -4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 440
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 441
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 442
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 443
+  type: CableApcExtension
+  components:
+  - pos: 2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 444
+  type: CableApcExtension
+  components:
+  - pos: 3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 445
+  type: CableApcExtension
+  components:
+  - pos: 4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 446
+  type: CableApcExtension
+  components:
+  - pos: -5.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 447
+  type: CableApcExtension
+  components:
+  - pos: -13.5,2.5
+    parent: 0
+    type: Transform
+- uid: 448
+  type: CableApcExtension
+  components:
+  - pos: -13.5,1.5
+    parent: 0
+    type: Transform
+- uid: 449
+  type: CableApcExtension
+  components:
+  - pos: -13.5,0.5
+    parent: 0
+    type: Transform
+- uid: 450
+  type: CableApcExtension
+  components:
+  - pos: -13.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 451
+  type: CableApcExtension
+  components:
+  - pos: -12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 452
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 453
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 454
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 455
+  type: CableApcExtension
+  components:
+  - pos: -8.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 456
+  type: CableApcExtension
+  components:
+  - pos: -7.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 457
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 458
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 459
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 460
+  type: CableApcExtension
+  components:
+  - pos: -10.5,0.5
+    parent: 0
+    type: Transform
+- uid: 461
+  type: CableApcExtension
+  components:
+  - pos: -10.5,1.5
+    parent: 0
+    type: Transform
+- uid: 462
+  type: CableApcExtension
+  components:
+  - pos: -10.5,2.5
+    parent: 0
+    type: Transform
+- uid: 463
+  type: CableApcExtension
+  components:
+  - pos: -10.5,3.5
+    parent: 0
+    type: Transform
+- uid: 464
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 465
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 466
+  type: CableApcExtension
+  components:
+  - pos: -11.5,3.5
+    parent: 0
+    type: Transform
+- uid: 467
+  type: CableApcExtension
+  components:
+  - pos: -9.5,3.5
+    parent: 0
+    type: Transform
+- uid: 468
+  type: CableApcExtension
+  components:
+  - pos: -13.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 469
+  type: CableApcExtension
+  components:
+  - pos: -12.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 470
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 471
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 472
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 473
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 474
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 475
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 476
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 477
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 478
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 479
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 480
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 481
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 482
+  type: CableApcExtension
+  components:
+  - pos: -12.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 483
+  type: CableApcExtension
+  components:
+  - pos: -13.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 484
+  type: CableApcExtension
+  components:
+  - pos: -14.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 485
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 486
+  type: CableApcExtension
+  components:
+  - pos: -8.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 487
+  type: CableApcExtension
+  components:
+  - pos: -7.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 488
+  type: CableApcExtension
+  components:
+  - pos: -6.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 489
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 490
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 491
+  type: CableApcExtension
+  components:
+  - pos: -8.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 492
+  type: CableApcExtension
+  components:
+  - pos: -7.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 493
+  type: CableApcExtension
+  components:
+  - pos: -6.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 494
+  type: CableApcExtension
+  components:
+  - pos: -12.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 495
+  type: CableApcExtension
+  components:
+  - pos: -13.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 496
+  type: CableApcExtension
+  components:
+  - pos: -14.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 497
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 498
+  type: CableApcExtension
+  components:
+  - pos: -12.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 499
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 500
+  type: CableApcExtension
+  components:
+  - pos: -8.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 501
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 502
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 503
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 504
+  type: CableApcExtension
+  components:
+  - pos: -10.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 505
+  type: CableApcExtension
+  components:
+  - pos: 6.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 506
+  type: CableApcExtension
+  components:
+  - pos: 7.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 507
+  type: CableApcExtension
+  components:
+  - pos: 7.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 508
+  type: CableApcExtension
+  components:
+  - pos: 6.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 509
+  type: CableApcExtension
+  components:
+  - pos: 5.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 510
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 511
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 512
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 513
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 514
+  type: CableApcExtension
+  components:
+  - pos: 11.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 515
+  type: CableApcExtension
+  components:
+  - pos: 12.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 516
+  type: CableApcExtension
+  components:
+  - pos: 13.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 517
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 518
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 519
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 520
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 521
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 522
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 523
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-18.5
+    parent: 0
+    type: Transform
+- uid: 524
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-19.5
+    parent: 0
+    type: Transform
+- uid: 525
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 526
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 527
+  type: CableApcExtension
+  components:
+  - pos: 7.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 528
+  type: CableApcExtension
+  components:
+  - pos: 6.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 529
+  type: CableApcExtension
+  components:
+  - pos: 5.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 530
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 531
+  type: CableApcExtension
+  components:
+  - pos: 11.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 532
+  type: CableApcExtension
+  components:
+  - pos: 12.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 533
+  type: CableApcExtension
+  components:
+  - pos: 13.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 534
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 535
+  type: CableApcExtension
+  components:
+  - pos: 7.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 536
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 537
+  type: CableApcExtension
+  components:
+  - pos: 11.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 538
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-9.5
+    parent: 0
+    type: Transform
+- uid: 539
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-8.5
+    parent: 0
+    type: Transform
+- uid: 540
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-7.5
+    parent: 0
+    type: Transform
+- uid: 541
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 542
+  type: CableApcExtension
+  components:
+  - pos: 6.5,2.5
+    parent: 0
+    type: Transform
+- uid: 543
+  type: CableApcExtension
+  components:
+  - pos: 6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 544
+  type: CableApcExtension
+  components:
+  - pos: 6.5,0.5
+    parent: 0
+    type: Transform
+- uid: 545
+  type: CableApcExtension
+  components:
+  - pos: 6.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 546
+  type: CableApcExtension
+  components:
+  - pos: 7.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 547
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 548
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 549
+  type: CableApcExtension
+  components:
+  - pos: 9.5,0.5
+    parent: 0
+    type: Transform
+- uid: 550
+  type: CableApcExtension
+  components:
+  - pos: 9.5,1.5
+    parent: 0
+    type: Transform
+- uid: 551
+  type: CableApcExtension
+  components:
+  - pos: 9.5,2.5
+    parent: 0
+    type: Transform
+- uid: 552
+  type: CableApcExtension
+  components:
+  - pos: 9.5,3.5
+    parent: 0
+    type: Transform
+- uid: 553
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 554
+  type: CableApcExtension
+  components:
+  - pos: 8.5,3.5
+    parent: 0
+    type: Transform
+- uid: 555
+  type: CableApcExtension
+  components:
+  - pos: 10.5,3.5
+    parent: 0
+    type: Transform
+- uid: 556
+  type: CableApcExtension
+  components:
+  - pos: 11.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 557
+  type: CableApcExtension
+  components:
+  - pos: 12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 558
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 559
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 560
+  type: CableApcExtension
+  components:
+  - pos: 9.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 561
+  type: CableApcExtension
+  components:
+  - pos: 8.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 562
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 563
+  type: Catwalk
+  components:
+  - pos: 0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 564
+  type: Catwalk
+  components:
+  - pos: -0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 565
+  type: Catwalk
+  components:
+  - pos: -1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 566
+  type: Catwalk
+  components:
+  - pos: -2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 567
+  type: Catwalk
+  components:
+  - pos: -3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 568
+  type: Catwalk
+  components:
+  - pos: -4.5,3.5
+    parent: 0
+    type: Transform
+- uid: 569
+  type: Catwalk
+  components:
+  - pos: -4.5,5.5
+    parent: 0
+    type: Transform
+- uid: 570
+  type: Catwalk
+  components:
+  - pos: -3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 571
+  type: Catwalk
+  components:
+  - pos: -2.5,5.5
+    parent: 0
+    type: Transform
+- uid: 572
+  type: Catwalk
+  components:
+  - pos: -1.5,5.5
+    parent: 0
+    type: Transform
+- uid: 573
+  type: Catwalk
+  components:
+  - pos: -0.5,5.5
+    parent: 0
+    type: Transform
+- uid: 574
+  type: Catwalk
+  components:
+  - pos: 0.5,5.5
+    parent: 0
+    type: Transform
+- uid: 575
+  type: ReinforcedWindow
+  components:
+  - pos: -4.5,2.5
+    parent: 0
+    type: Transform
+- uid: 576
+  type: ReinforcedWindow
+  components:
+  - pos: -3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 577
+  type: ReinforcedWindow
+  components:
+  - pos: -2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 578
+  type: ReinforcedWindow
+  components:
+  - pos: -1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 579
+  type: ReinforcedWindow
+  components:
+  - pos: -0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 580
+  type: CableMV
+  components:
+  - pos: 2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 581
+  type: CableApcExtension
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 582
+  type: APCBasic
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 583
+  type: Grille
+  components:
+  - pos: -0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 584
+  type: Grille
+  components:
+  - pos: -1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 585
+  type: Grille
+  components:
+  - pos: -2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 586
+  type: Grille
+  components:
+  - pos: -3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 587
+  type: Grille
+  components:
+  - pos: -4.5,2.5
+    parent: 0
+    type: Transform
+- uid: 588
+  type: CableMV
+  components:
+  - pos: 2.5,1.5
+    parent: 0
+    type: Transform
+- uid: 589
+  type: CableMV
+  components:
+  - pos: 2.5,0.5
+    parent: 0
+    type: Transform
+- uid: 590
+  type: ReinforcedWindow
+  components:
+  - pos: 0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 591
+  type: Grille
+  components:
+  - pos: 3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 592
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 593
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 594
+  type: Grille
+  components:
+  - pos: 0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 595
+  type: ReinforcedWindow
+  components:
+  - pos: 1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 596
+  type: ReinforcedWindow
+  components:
+  - pos: 3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 597
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 9.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 598
+  type: Catwalk
+  components:
+  - pos: 1.5,5.5
+    parent: 0
+    type: Transform
+- uid: 599
+  type: Catwalk
+  components:
+  - pos: 3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 600
+  type: Catwalk
+  components:
+  - pos: 3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 601
+  type: Catwalk
+  components:
+  - pos: 2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 602
+  type: Catwalk
+  components:
+  - pos: 1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 603
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 604
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 605
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -11.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 606
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -11.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 607
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -11.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 608
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -11.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 609
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 610
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 611
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 612
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 613
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 614
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 615
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 616
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 617
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 618
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 619
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 620
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 621
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 622
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 623
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 624
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 625
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 8.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 626
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 8.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 627
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 8.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 628
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 8.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 629
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 630
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 631
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 632
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 633
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -10.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 634
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 9.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 635
+  type: VendingMachineCola
+  components:
+  - flags: SessionSpecific
+    type: MetaData
+  - pos: -12.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 636
+  type: AlwaysPoweredWallLight
+  components:
+  - pos: 9.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 637
+  type: VendingMachineSnack
+  components:
+  - flags: SessionSpecific
+    type: MetaData
+  - pos: -12.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 638
+  type: WarpPoint
+  components:
+  - pos: -0.5,1.5
+    parent: 0
+    type: Transform
+  - location: Terminal
+    type: WarpPoint
+- uid: 639
+  type: Stool
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -9.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 640
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -2.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 641
+  type: SmallLight
+  components:
+  - pos: -14.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 642
+  type: SmallLight
+  components:
+  - pos: -6.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 643
+  type: SmallLight
+  components:
+  - pos: -14.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 644
+  type: SmallLight
+  components:
+  - pos: -6.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 645
+  type: SmallLight
+  components:
+  - pos: 5.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 646
+  type: SmallLight
+  components:
+  - pos: 13.5,-10.5
+    parent: 0
+    type: Transform
+- uid: 647
+  type: SmallLight
+  components:
+  - pos: 13.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 648
+  type: SmallLight
+  components:
+  - pos: 5.5,-17.5
+    parent: 0
+    type: Transform
+- uid: 649
+  type: AlwaysPoweredWallLight
+  components:
+  - pos: -10.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 650
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -10.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 651
+  type: CableApcExtension
+  components:
+  - pos: 10.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 652
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 653
+  type: CableApcExtension
+  components:
+  - pos: -11.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 654
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 655
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 656
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 657
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 658
+  type: CableApcExtension
+  components:
+  - pos: -9.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 659
+  type: WindowReinforcedDirectional
+  components:
+  - pos: 9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 660
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 661
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 662
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 9.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 663
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 9.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 664
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 665
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 666
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 9.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 667
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 9.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 668
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 669
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 670
+  type: WindowReinforcedDirectional
+  components:
+  - pos: -10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 671
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 672
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -10.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 673
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -10.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 674
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 675
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 676
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -10.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 677
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -10.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 678
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 679
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -9.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 680
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -11.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 681
+  type: WindowReinforcedDirectional
+  components:
+  - pos: -11.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 682
+  type: WindowReinforcedDirectional
+  components:
+  - pos: -9.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 683
+  type: WindowReinforcedDirectional
+  components:
+  - pos: 10.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 684
+  type: WindowReinforcedDirectional
+  components:
+  - pos: 8.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 685
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 8.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 686
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 10.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 687
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -7.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 688
+  type: AtmosDeviceFanTiny
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 4.5,4.5
+    parent: 0
+    type: Transform
+- uid: 689
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 690
+  type: FirelockEdge
+  components:
+  - pos: -8.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 691
+  type: SmallLight
+  components:
+  - pos: -0.5,5.5
+    parent: 0
+    type: Transform
+- uid: 692
+  type: SmallLight
+  components:
+  - pos: 3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 693
+  type: SmallLight
+  components:
+  - pos: -4.5,5.5
+    parent: 0
+    type: Transform
+- uid: 694
+  type: FirelockEdge
+  components:
+  - pos: -12.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 695
+  type: FirelockEdge
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -8.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 696
+  type: FirelockEdge
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -12.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 697
+  type: FirelockEdge
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 7.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 698
+  type: FirelockEdge
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 11.5,-16.5
+    parent: 0
+    type: Transform
+- uid: 699
+  type: FirelockEdge
+  components:
+  - pos: 11.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 700
+  type: FirelockEdge
+  components:
+  - pos: 7.5,-11.5
+    parent: 0
+    type: Transform
+- uid: 701
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 5.5,3.5
+    parent: 0
+    type: Transform
+- uid: 702
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -6.5,3.5
+    parent: 0
+    type: Transform
+- uid: 703
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -8.5,1.5
+    parent: 0
+    type: Transform
+- uid: 704
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -9.5,1.5
+    parent: 0
+    type: Transform
+- uid: 705
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -11.5,1.5
+    parent: 0
+    type: Transform
+- uid: 706
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -12.5,1.5
+    parent: 0
+    type: Transform
+- uid: 707
+  type: CarpetGreen
+  components:
+  - pos: -11.5,2.5
+    parent: 0
+    type: Transform
+- uid: 708
+  type: CarpetGreen
+  components:
+  - pos: -11.5,3.5
+    parent: 0
+    type: Transform
+- uid: 709
+  type: VendingMachineCigs
+  components:
+  - flags: SessionSpecific
+    type: MetaData
+  - pos: -11.5,4.5
+    parent: 0
+    type: Transform
+- uid: 710
+  type: TableCarpet
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -8.5,2.5
+    parent: 0
+    type: Transform
+- uid: 711
+  type: ComfyChair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -8.5,3.5
+    parent: 0
+    type: Transform
+- uid: 712
+  type: ComfyChair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,2.5
+    parent: 0
+    type: Transform
+- uid: 713
+  type: ComfyChair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -12.5,3.5
+    parent: 0
+    type: Transform
+- uid: 714
+  type: CarpetGreen
+  components:
+  - pos: -10.5,2.5
+    parent: 0
+    type: Transform
+- uid: 715
+  type: CarpetGreen
+  components:
+  - pos: -10.5,3.5
+    parent: 0
+    type: Transform
+- uid: 716
+  type: CarpetGreen
+  components:
+  - pos: -9.5,2.5
+    parent: 0
+    type: Transform
+- uid: 717
+  type: CarpetGreen
+  components:
+  - pos: -9.5,3.5
+    parent: 0
+    type: Transform
+- uid: 718
+  type: TableCarpet
+  components:
+  - pos: -9.5,4.5
+    parent: 0
+    type: Transform
+- uid: 719
+  type: LampGold
+  components:
+  - pos: -9.496585,4.914251
+    parent: 0
+    type: Transform
+- uid: 720
+  type: SignNosmoking
+  components:
+  - pos: -7.5,2.5
+    parent: 0
+    type: Transform
+- uid: 721
+  type: Windoor
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -10.5,1.5
+    parent: 0
+    type: Transform
+- uid: 722
+  type: ComfyChair
+  components:
+  - pos: -10.5,4.5
+    parent: 0
+    type: Transform
+- uid: 723
+  type: Stool
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 10.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 724
+  type: Stool
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 8.5,-20.5
+    parent: 0
+    type: Transform
+- uid: 725
+  type: Grille
+  components:
+  - pos: 2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 726
+  type: Grille
+  components:
+  - pos: 1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 727
+  type: BlockGameArcade
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 728
+  type: BlockGameArcade
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,0.5
+    parent: 0
+    type: Transform
+- uid: 729
+  type: Stool
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -12.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 730
+  type: Stool
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -12.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 731
+  type: SpaceVillainArcadeFilled
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 732
+  type: SpaceVillainArcadeFilled
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 733
+  type: PottedPlantRandom
+  components:
+  - pos: -8.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 734
+  type: ReinforcedWindow
+  components:
+  - pos: 2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 735
+  type: Chair
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 10.5,4.5
+    parent: 0
+    type: Transform
+- uid: 736
+  type: Chair
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 8.5,4.5
+    parent: 0
+    type: Transform
+- uid: 737
+  type: ChessBoard
+  components:
+  - pos: 9.521464,4.5636826
+    parent: 0
+    type: Transform
+- uid: 738
+  type: Stool
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 739
+  type: Table
+  components:
+  - pos: 9.5,4.5
+    parent: 0
+    type: Transform
+- uid: 740
+  type: Stool
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -12.5,0.5
+    parent: 0
+    type: Transform
+- uid: 741
+  type: PottedPlantRandom
+  components:
+  - pos: -7.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 742
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -13.5,1.5
+    parent: 0
+    type: Transform
+- uid: 743
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 744
+  type: AlwaysPoweredWallLight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 12.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 745
+  type: Chair
+  components:
+  - pos: 12.5,1.5
+    parent: 0
+    type: Transform
+- uid: 746
+  type: Chair
+  components:
+  - pos: 11.5,1.5
+    parent: 0
+    type: Transform
+- uid: 747
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 748
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 11.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 749
+  type: Chair
+  components:
+  - pos: 12.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 750
+  type: Chair
+  components:
+  - pos: 11.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 751
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 12.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 752
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 11.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 753
+  type: Chair
+  components:
+  - pos: 6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 754
+  type: Chair
+  components:
+  - pos: 7.5,1.5
+    parent: 0
+    type: Transform
+- uid: 755
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 6.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 756
+  type: Chair
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 7.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 757
+  type: Table
+  components:
+  - pos: 11.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 758
+  type: Table
+  components:
+  - pos: 12.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 759
+  type: Table
+  components:
+  - pos: 12.5,0.5
+    parent: 0
+    type: Transform
+- uid: 760
+  type: Table
+  components:
+  - pos: 11.5,0.5
+    parent: 0
+    type: Transform
+- uid: 761
+  type: BoxFolderYellow
+  components:
+  - pos: 12.452511,-2.444745
+    parent: 0
+    type: Transform
+- uid: 762
+  type: Pen
+  components:
+  - pos: 11.5468645,0.58650494
+    parent: 0
+    type: Transform
+- uid: 763
+  type: SpawnPointLatejoin
+  components:
+  - pos: -7.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 764
+  type: SpawnPointLatejoin
+  components:
+  - pos: -7.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 765
+  type: SpawnPointLatejoin
+  components:
+  - pos: -7.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 766
+  type: SpawnPointLatejoin
+  components:
+  - pos: -7.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 767
+  type: SpawnPointLatejoin
+  components:
+  - pos: -9.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 768
+  type: SpawnPointLatejoin
+  components:
+  - pos: -9.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 769
+  type: SpawnPointLatejoin
+  components:
+  - pos: -9.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 770
+  type: SpawnPointLatejoin
+  components:
+  - pos: -9.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 771
+  type: SpawnPointLatejoin
+  components:
+  - pos: -11.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 772
+  type: SpawnPointLatejoin
+  components:
+  - pos: -11.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 773
+  type: SpawnPointLatejoin
+  components:
+  - pos: -11.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 774
+  type: SpawnPointLatejoin
+  components:
+  - pos: -11.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 775
+  type: SpawnPointLatejoin
+  components:
+  - pos: -13.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 776
+  type: SpawnPointLatejoin
+  components:
+  - pos: -13.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 777
+  type: SpawnPointLatejoin
+  components:
+  - pos: -13.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 778
+  type: SpawnPointLatejoin
+  components:
+  - pos: -13.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 779
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 780
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 781
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 782
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 783
+  type: SpawnPointLatejoin
+  components:
+  - pos: 8.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 784
+  type: SpawnPointLatejoin
+  components:
+  - pos: 8.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 785
+  type: SpawnPointLatejoin
+  components:
+  - pos: 8.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 786
+  type: SpawnPointLatejoin
+  components:
+  - pos: 8.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 787
+  type: SpawnPointLatejoin
+  components:
+  - pos: 10.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 788
+  type: SpawnPointLatejoin
+  components:
+  - pos: 10.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 789
+  type: SpawnPointLatejoin
+  components:
+  - pos: 10.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 790
+  type: SpawnPointLatejoin
+  components:
+  - pos: 10.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 791
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-15.5
+    parent: 0
+    type: Transform
+- uid: 792
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-14.5
+    parent: 0
+    type: Transform
+- uid: 793
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-13.5
+    parent: 0
+    type: Transform
+- uid: 794
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-12.5
+    parent: 0
+    type: Transform
+- uid: 795
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 796
+  type: SpawnPointLatejoin
+  components:
+  - pos: 11.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 797
+  type: SpawnPointLatejoin
+  components:
+  - pos: 11.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 798
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 799
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 800
+  type: SpawnPointLatejoin
+  components:
+  - pos: 11.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 801
+  type: SpawnPointLatejoin
+  components:
+  - pos: 7.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 802
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 803
+  type: SpawnPointLatejoin
+  components:
+  - pos: 6.5,1.5
+    parent: 0
+    type: Transform
+- uid: 804
+  type: SpawnPointLatejoin
+  components:
+  - pos: 7.5,1.5
+    parent: 0
+    type: Transform
+- uid: 805
+  type: SpawnPointLatejoin
+  components:
+  - pos: 11.5,1.5
+    parent: 0
+    type: Transform
+- uid: 806
+  type: SpawnPointLatejoin
+  components:
+  - pos: 12.5,1.5
+    parent: 0
+    type: Transform
+- uid: 807
+  type: SpawnPointLatejoin
+  components:
+  - pos: 10.5,4.5
+    parent: 0
+    type: Transform
+- uid: 808
+  type: SpawnPointLatejoin
+  components:
+  - pos: -8.5,3.5
+    parent: 0
+    type: Transform
+- uid: 809
+  type: SpawnPointLatejoin
+  components:
+  - pos: 8.5,4.5
+    parent: 0
+    type: Transform
+- uid: 810
+  type: SpawnPointLatejoin
+  components:
+  - pos: -10.5,4.5
+    parent: 0
+    type: Transform
+- uid: 811
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,3.5
+    parent: 0
+    type: Transform
+- uid: 812
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,2.5
+    parent: 0
+    type: Transform
+- uid: 813
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 814
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 815
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 816
+  type: SpawnPointLatejoin
+  components:
+  - pos: -12.5,0.5
+    parent: 0
+    type: Transform
+- uid: 817
+  type: GravityGeneratorMini
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+...
diff --git a/Resources/Maps/Shuttles/arrivals.yml b/Resources/Maps/Shuttles/arrivals.yml
new file mode 100644 (file)
index 0000000..9098bd2
--- /dev/null
@@ -0,0 +1,2512 @@
+meta:
+  format: 3
+  name: DemoStation
+  author: Space-Wizards
+  postmapinit: false
+tilemap:
+  0: Space
+  1: FloorArcadeBlue
+  2: FloorArcadeBlue2
+  3: FloorArcadeRed
+  4: FloorAsteroidCoarseSand0
+  5: FloorAsteroidCoarseSandDug
+  6: FloorAsteroidIronsand1
+  7: FloorAsteroidIronsand2
+  8: FloorAsteroidIronsand3
+  9: FloorAsteroidIronsand4
+  10: FloorAsteroidSand
+  11: FloorAsteroidTile
+  12: FloorBar
+  13: FloorBasalt
+  14: FloorBlue
+  15: FloorBlueCircuit
+  16: FloorBoxing
+  17: FloorCarpetClown
+  18: FloorCarpetOffice
+  19: FloorCave
+  20: FloorCaveDrought
+  21: FloorClown
+  22: FloorDark
+  23: FloorDarkDiagonal
+  24: FloorDarkDiagonalMini
+  25: FloorDarkHerringbone
+  26: FloorDarkMini
+  27: FloorDarkMono
+  28: FloorDarkOffset
+  29: FloorDarkPavement
+  30: FloorDarkPavementVertical
+  31: FloorDarkPlastic
+  32: FloorDesert
+  33: FloorDirt
+  34: FloorEighties
+  35: FloorElevatorShaft
+  36: FloorFlesh
+  37: FloorFreezer
+  38: FloorGlass
+  39: FloorGold
+  40: FloorGrass
+  41: FloorGrassDark
+  42: FloorGrassJungle
+  43: FloorGrassLight
+  44: FloorGreenCircuit
+  45: FloorGym
+  46: FloorHydro
+  47: FloorKitchen
+  48: FloorLaundry
+  49: FloorLino
+  50: FloorLowDesert
+  51: FloorMetalDiamond
+  52: FloorMime
+  53: FloorMono
+  54: FloorPlanetDirt
+  55: FloorPlanetGrass
+  56: FloorPlastic
+  57: FloorRGlass
+  58: FloorReinforced
+  59: FloorRockVault
+  60: FloorShowroom
+  61: FloorShuttleBlue
+  62: FloorShuttleOrange
+  63: FloorShuttlePurple
+  64: FloorShuttleRed
+  65: FloorShuttleWhite
+  66: FloorSilver
+  67: FloorSnow
+  68: FloorSteel
+  69: FloorSteelDiagonal
+  70: FloorSteelDiagonalMini
+  71: FloorSteelDirty
+  72: FloorSteelHerringbone
+  73: FloorSteelMini
+  74: FloorSteelMono
+  75: FloorSteelOffset
+  76: FloorSteelPavement
+  77: FloorSteelPavementVertical
+  78: FloorTechMaint
+  79: FloorTechMaint2
+  80: FloorTechMaint3
+  81: FloorWhite
+  82: FloorWhiteDiagonal
+  83: FloorWhiteDiagonalMini
+  84: FloorWhiteHerringbone
+  85: FloorWhiteMini
+  86: FloorWhiteMono
+  87: FloorWhiteOffset
+  88: FloorWhitePavement
+  89: FloorWhitePavementVertical
+  90: FloorWhitePlastic
+  91: FloorWood
+  92: FloorWoodTile
+  93: Lattice
+  94: Plating
+entities:
+- uid: 0
+  components:
+  - type: MetaData
+  - parent: invalid
+    type: Transform
+  - chunks:
+      -1,-1:
+        ind: -1,-1
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAQQAAAEEAAABBAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAD0AAAA9AAAAPQAAAD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABBAAAAPQAAAEEAAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAQQAAAD0AAABBAAAAKAAAAA==
+      0,0:
+        ind: 0,0
+        tiles: QQAAAD0AAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAA9AAAAQQAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAPQAAAEEAAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAD0AAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0AAAA9AAAAPQAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAQQAAAEEAAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAABeAAAAXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+      -1,0:
+        ind: -1,0
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAQQAAAD0AAABBAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEEAAAA9AAAAQQAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABBAAAAPQAAAEEAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAQQAAAD0AAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAD0AAAA9AAAAPQAAAD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABBAAAAQQAAAEEAAAA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0AAABeAAAAQQAAAD0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAEEAAAA9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+      0,-1:
+        ind: 0,-1
+        tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4AAABeAAAAXgAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeAAAAXgAAAF4AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAEEAAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0AAAA9AAAAPQAAAD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAPQAAAEEAAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAD0AAABBAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+    type: MapGrid
+  - type: Broadphase
+  - angularDamping: 0.05
+    linearDamping: 0.05
+    fixedRotation: False
+    bodyType: Dynamic
+    type: Physics
+  - fixtures: []
+    type: Fixtures
+  - id: Empty
+    type: BecomesStation
+  - type: OccluderTree
+  - type: Shuttle
+  - nextUpdate: 763.4245734
+    type: GridPathfinding
+  - gravityShakeSound: !type:SoundPathSpecifier
+      path: /Audio/Effects/alert.ogg
+    type: Gravity
+  - chunkCollection:
+      version: 2
+      nodes:
+      - node:
+          color: '#FFFFFFFF'
+          id: Grasse3
+        decals:
+          0: -1,-1
+      - node:
+          color: '#FFFFFFFF'
+          id: Flowerspv3
+        decals:
+          7: -1,-1
+      - node:
+          color: '#FFFFFFFF'
+          id: BushCThree
+        decals:
+          9: -1,-1
+      - node:
+          color: '#FFFFFFFF'
+          id: Grasse2
+        decals:
+          1: -1,0
+      - node:
+          color: '#FFFFFFFF'
+          id: Grasse1
+        decals:
+          2: -1,1
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassd3
+        decals:
+          3: -1,2
+      - node:
+          color: '#FFFFFFFF'
+          id: Flowersy3
+        decals:
+          4: -1,2
+      - node:
+          color: '#FFFFFFFF'
+          id: Flowersy4
+        decals:
+          5: -1,0
+      - node:
+          color: '#FFFFFFFF'
+          id: Flowersbr3
+        decals:
+          6: -1,1
+      - node:
+          color: '#FFFFFFFF'
+          id: Grassb5
+        decals:
+          8: -1,2
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushi3
+        decals:
+          10: -1,0
+      - node:
+          color: '#FFFFFFFF'
+          id: Bushe3
+        decals:
+          11: -1,1
+    type: DecalGrid
+  - version: 2
+    data:
+      tiles:
+        -1,-1:
+          0: 3
+          1: 65532
+        -1,0:
+          1: 65535
+        -2,-2:
+          1: 34816
+        -2,-1:
+          1: 34952
+        -1,-2:
+          1: 65520
+        0,0:
+          1: 65535
+        0,1:
+          1: 32687
+          0: 80
+        0,2:
+          1: 307
+        -2,0:
+          1: 34952
+        -2,1:
+          1: 2184
+        -1,1:
+          1: 65455
+          0: 80
+        -1,2:
+          1: 3310
+        0,-2:
+          1: 65392
+        0,-1:
+          1: 65531
+          0: 4
+      uniqueMixes:
+      - volume: 2500
+        temperature: 293.15
+        moles:
+        - 20.078888
+        - 75.53487
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+      - volume: 2500
+        temperature: 293.15
+        moles:
+        - 21.824879
+        - 82.10312
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+        - 0
+      chunkSize: 4
+    type: GridAtmosphere
+  - type: GasTileOverlay
+  - type: RadiationGridResistance
+- uid: 1
+  type: WallShuttle
+  components:
+  - pos: 3.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 2
+  type: WallShuttle
+  components:
+  - pos: 3.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 3
+  type: WallShuttle
+  components:
+  - pos: -4.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 4
+  type: WallShuttle
+  components:
+  - pos: -4.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 5
+  type: WallShuttle
+  components:
+  - pos: -4.5,3.5
+    parent: 0
+    type: Transform
+- uid: 6
+  type: WallShuttle
+  components:
+  - pos: -4.5,5.5
+    parent: 0
+    type: Transform
+- uid: 7
+  type: WallShuttle
+  components:
+  - pos: 3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 8
+  type: WallShuttle
+  components:
+  - pos: 3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 9
+  type: WallShuttle
+  components:
+  - pos: 3.5,6.5
+    parent: 0
+    type: Transform
+- uid: 10
+  type: WallShuttle
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 11
+  type: WallShuttle
+  components:
+  - pos: -4.5,6.5
+    parent: 0
+    type: Transform
+- uid: 12
+  type: WallShuttle
+  components:
+  - pos: -3.5,6.5
+    parent: 0
+    type: Transform
+- uid: 13
+  type: WallShuttle
+  components:
+  - pos: -2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 14
+  type: WallShuttle
+  components:
+  - pos: -2.5,7.5
+    parent: 0
+    type: Transform
+- uid: 15
+  type: WallShuttle
+  components:
+  - pos: 1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 16
+  type: WallShuttle
+  components:
+  - pos: 1.5,7.5
+    parent: 0
+    type: Transform
+- uid: 17
+  type: WallShuttle
+  components:
+  - pos: 3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 18
+  type: WallShuttle
+  components:
+  - pos: 2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 19
+  type: WallShuttle
+  components:
+  - pos: -4.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 20
+  type: WallShuttle
+  components:
+  - pos: -3.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 21
+  type: WallShuttle
+  components:
+  - pos: -0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 22
+  type: WallShuttle
+  components:
+  - pos: 2.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 23
+  type: WallShuttle
+  components:
+  - pos: 3.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 24
+  type: WallShuttle
+  components:
+  - pos: -3.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 25
+  type: WallShuttle
+  components:
+  - pos: -4.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 26
+  type: WallShuttle
+  components:
+  - pos: -0.5,-6.5
+    parent: 0
+    type: Transform
+- uid: 27
+  type: WallShuttle
+  components:
+  - pos: -0.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 28
+  type: ShuttleWindow
+  components:
+  - pos: 3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 29
+  type: ShuttleWindow
+  components:
+  - pos: 3.5,0.5
+    parent: 0
+    type: Transform
+- uid: 30
+  type: ShuttleWindow
+  components:
+  - pos: 3.5,1.5
+    parent: 0
+    type: Transform
+- uid: 31
+  type: ShuttleWindow
+  components:
+  - pos: 3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 32
+  type: ShuttleWindow
+  components:
+  - pos: -4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 33
+  type: ShuttleWindow
+  components:
+  - pos: -4.5,0.5
+    parent: 0
+    type: Transform
+- uid: 34
+  type: ShuttleWindow
+  components:
+  - pos: -4.5,1.5
+    parent: 0
+    type: Transform
+- uid: 35
+  type: ShuttleWindow
+  components:
+  - pos: -4.5,2.5
+    parent: 0
+    type: Transform
+- uid: 36
+  type: ShuttleWindow
+  components:
+  - pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 37
+  type: ShuttleWindow
+  components:
+  - pos: -2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 38
+  type: ShuttleWindow
+  components:
+  - pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 39
+  type: ShuttleWindow
+  components:
+  - pos: 1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 40
+  type: ShuttleWindow
+  components:
+  - pos: 0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 41
+  type: ShuttleWindow
+  components:
+  - pos: -1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 42
+  type: ShuttleWindow
+  components:
+  - pos: -2.5,8.5
+    parent: 0
+    type: Transform
+- uid: 43
+  type: ShuttleWindow
+  components:
+  - pos: -1.5,9.5
+    parent: 0
+    type: Transform
+- uid: 44
+  type: Grille
+  components:
+  - pos: 3.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 45
+  type: ShuttleWindow
+  components:
+  - pos: -2.5,9.5
+    parent: 0
+    type: Transform
+- uid: 46
+  type: ShuttleWindow
+  components:
+  - pos: -1.5,10.5
+    parent: 0
+    type: Transform
+- uid: 47
+  type: ShuttleWindow
+  components:
+  - pos: -0.5,10.5
+    parent: 0
+    type: Transform
+- uid: 48
+  type: ShuttleWindow
+  components:
+  - pos: 0.5,10.5
+    parent: 0
+    type: Transform
+- uid: 49
+  type: ShuttleWindow
+  components:
+  - pos: 0.5,9.5
+    parent: 0
+    type: Transform
+- uid: 50
+  type: ShuttleWindow
+  components:
+  - pos: 1.5,9.5
+    parent: 0
+    type: Transform
+- uid: 51
+  type: ShuttleWindow
+  components:
+  - pos: 1.5,8.5
+    parent: 0
+    type: Transform
+- uid: 52
+  type: Grille
+  components:
+  - pos: 3.5,0.5
+    parent: 0
+    type: Transform
+- uid: 53
+  type: Grille
+  components:
+  - pos: 3.5,1.5
+    parent: 0
+    type: Transform
+- uid: 54
+  type: Grille
+  components:
+  - pos: 3.5,2.5
+    parent: 0
+    type: Transform
+- uid: 55
+  type: Grille
+  components:
+  - pos: -4.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 56
+  type: Grille
+  components:
+  - pos: -4.5,0.5
+    parent: 0
+    type: Transform
+- uid: 57
+  type: Grille
+  components:
+  - pos: -4.5,1.5
+    parent: 0
+    type: Transform
+- uid: 58
+  type: Grille
+  components:
+  - pos: -4.5,2.5
+    parent: 0
+    type: Transform
+- uid: 59
+  type: Grille
+  components:
+  - pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 60
+  type: Grille
+  components:
+  - pos: -2.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 61
+  type: Grille
+  components:
+  - pos: 1.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 62
+  type: Grille
+  components:
+  - pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 63
+  type: Grille
+  components:
+  - pos: 0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 64
+  type: Grille
+  components:
+  - pos: -1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 65
+  type: Grille
+  components:
+  - pos: -2.5,8.5
+    parent: 0
+    type: Transform
+- uid: 66
+  type: Grille
+  components:
+  - pos: -2.5,9.5
+    parent: 0
+    type: Transform
+- uid: 67
+  type: Grille
+  components:
+  - pos: -1.5,9.5
+    parent: 0
+    type: Transform
+- uid: 68
+  type: Grille
+  components:
+  - pos: -1.5,10.5
+    parent: 0
+    type: Transform
+- uid: 69
+  type: Grille
+  components:
+  - pos: -0.5,10.5
+    parent: 0
+    type: Transform
+- uid: 70
+  type: Grille
+  components:
+  - pos: 0.5,10.5
+    parent: 0
+    type: Transform
+- uid: 71
+  type: Grille
+  components:
+  - pos: 0.5,9.5
+    parent: 0
+    type: Transform
+- uid: 72
+  type: Grille
+  components:
+  - pos: 1.5,9.5
+    parent: 0
+    type: Transform
+- uid: 73
+  type: Grille
+  components:
+  - pos: 1.5,8.5
+    parent: 0
+    type: Transform
+- uid: 74
+  type: WallShuttle
+  components:
+  - pos: -0.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 75
+  type: WallShuttle
+  components:
+  - pos: -0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 76
+  type: SMESBasic
+  components:
+  - pos: 0.5,7.5
+    parent: 0
+    type: Transform
+- uid: 77
+  type: SubstationWallBasic
+  components:
+  - pos: 1.5,6.5
+    parent: 0
+    type: Transform
+- uid: 78
+  type: GeneratorWallmountAPU
+  components:
+  - pos: 1.5,7.5
+    parent: 0
+    type: Transform
+- uid: 79
+  type: CableHV
+  components:
+  - pos: 0.5,7.5
+    parent: 0
+    type: Transform
+- uid: 80
+  type: CableHV
+  components:
+  - pos: 1.5,7.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 81
+  type: CableHV
+  components:
+  - pos: 1.5,6.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 82
+  type: CableHV
+  components:
+  - pos: -0.5,7.5
+    parent: 0
+    type: Transform
+- uid: 83
+  type: CableHV
+  components:
+  - pos: -0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 84
+  type: CableTerminal
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,7.5
+    parent: 0
+    type: Transform
+- uid: 85
+  type: CableHV
+  components:
+  - pos: -0.5,5.5
+    parent: 0
+    type: Transform
+- uid: 86
+  type: CableHV
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 87
+  type: CableHV
+  components:
+  - pos: -1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 88
+  type: CableHV
+  components:
+  - pos: -2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 89
+  type: CableHV
+  components:
+  - pos: -2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 90
+  type: CableHV
+  components:
+  - pos: -2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 91
+  type: CableHV
+  components:
+  - pos: -2.5,1.5
+    parent: 0
+    type: Transform
+- uid: 92
+  type: CableHV
+  components:
+  - pos: -2.5,0.5
+    parent: 0
+    type: Transform
+- uid: 93
+  type: CableHV
+  components:
+  - pos: -2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 94
+  type: CableHV
+  components:
+  - pos: -2.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 95
+  type: CableHV
+  components:
+  - pos: -2.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 96
+  type: CableHV
+  components:
+  - pos: -1.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 97
+  type: CableHV
+  components:
+  - pos: -0.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 98
+  type: CableHV
+  components:
+  - pos: 0.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 99
+  type: CableHV
+  components:
+  - pos: 1.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 100
+  type: CableHV
+  components:
+  - pos: 1.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 101
+  type: CableHV
+  components:
+  - pos: 1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 102
+  type: CableHV
+  components:
+  - pos: 1.5,0.5
+    parent: 0
+    type: Transform
+- uid: 103
+  type: CableHV
+  components:
+  - pos: 1.5,1.5
+    parent: 0
+    type: Transform
+- uid: 104
+  type: CableHV
+  components:
+  - pos: 1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 105
+  type: CableHV
+  components:
+  - pos: 1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 106
+  type: CableHV
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 107
+  type: CableHV
+  components:
+  - pos: 0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 108
+  type: CableHV
+  components:
+  - pos: -1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 109
+  type: CableHV
+  components:
+  - pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 110
+  type: CableHV
+  components:
+  - pos: -1.5,-5.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 111
+  type: CableHV
+  components:
+  - pos: 0.5,-5.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 112
+  type: CableHV
+  components:
+  - pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 113
+  type: CableHV
+  components:
+  - pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 114
+  type: GeneratorUranium
+  components:
+  - pos: -1.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 115
+  type: GeneratorUranium
+  components:
+  - pos: 0.5,-5.5
+    parent: 0
+    type: Transform
+- uid: 116
+  type: APCBasic
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 117
+  type: CableMV
+  components:
+  - pos: 1.5,6.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 118
+  type: CableMV
+  components:
+  - pos: 1.5,5.5
+    parent: 0
+    type: Transform
+- uid: 119
+  type: CableMV
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 120
+  type: CableMV
+  components:
+  - pos: 0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 121
+  type: CableMV
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 122
+  type: CableMV
+  components:
+  - pos: -0.5,3.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 123
+  type: CableApcExtension
+  components:
+  - pos: -0.5,3.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 124
+  type: CableApcExtension
+  components:
+  - pos: -0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 125
+  type: CableApcExtension
+  components:
+  - pos: -1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 126
+  type: CableApcExtension
+  components:
+  - pos: -2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 127
+  type: CableApcExtension
+  components:
+  - pos: -2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 128
+  type: CableApcExtension
+  components:
+  - pos: -2.5,2.5
+    parent: 0
+    type: Transform
+- uid: 129
+  type: CableApcExtension
+  components:
+  - pos: -2.5,1.5
+    parent: 0
+    type: Transform
+- uid: 130
+  type: CableApcExtension
+  components:
+  - pos: -2.5,0.5
+    parent: 0
+    type: Transform
+- uid: 131
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 132
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 133
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 134
+  type: CableApcExtension
+  components:
+  - pos: -1.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 135
+  type: CableApcExtension
+  components:
+  - pos: -0.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 136
+  type: CableApcExtension
+  components:
+  - pos: 0.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 137
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 138
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 139
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 140
+  type: CableApcExtension
+  components:
+  - pos: 1.5,0.5
+    parent: 0
+    type: Transform
+- uid: 141
+  type: CableApcExtension
+  components:
+  - pos: 1.5,1.5
+    parent: 0
+    type: Transform
+- uid: 142
+  type: CableApcExtension
+  components:
+  - pos: 1.5,2.5
+    parent: 0
+    type: Transform
+- uid: 143
+  type: CableApcExtension
+  components:
+  - pos: 1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 144
+  type: CableApcExtension
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+- uid: 145
+  type: CableApcExtension
+  components:
+  - pos: 0.5,4.5
+    parent: 0
+    type: Transform
+- uid: 146
+  type: CableApcExtension
+  components:
+  - pos: -0.5,5.5
+    parent: 0
+    type: Transform
+- uid: 147
+  type: CableApcExtension
+  components:
+  - pos: -0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 148
+  type: CableApcExtension
+  components:
+  - pos: -0.5,7.5
+    parent: 0
+    type: Transform
+- uid: 149
+  type: CableApcExtension
+  components:
+  - pos: -0.5,8.5
+    parent: 0
+    type: Transform
+- uid: 150
+  type: CableApcExtension
+  components:
+  - pos: -1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 151
+  type: CableApcExtension
+  components:
+  - pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 152
+  type: CableApcExtension
+  components:
+  - pos: 0.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 153
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 154
+  type: CableApcExtension
+  components:
+  - pos: -1.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 155
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-4.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 156
+  type: CableApcExtension
+  components:
+  - pos: -2.5,-5.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 157
+  type: CableApcExtension
+  components:
+  - pos: 1.5,-5.5
+    parent: 0
+    type: Transform
+  - enabled: True
+    type: AmbientSound
+- uid: 158
+  type: CableApcExtension
+  components:
+  - pos: -1.5,8.5
+    parent: 0
+    type: Transform
+- uid: 159
+  type: CableApcExtension
+  components:
+  - pos: 0.5,8.5
+    parent: 0
+    type: Transform
+- uid: 160
+  type: CableApcExtension
+  components:
+  - pos: -3.5,4.5
+    parent: 0
+    type: Transform
+- uid: 161
+  type: CableApcExtension
+  components:
+  - pos: 2.5,4.5
+    parent: 0
+    type: Transform
+- uid: 162
+  type: CableApcExtension
+  components:
+  - pos: 2.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 163
+  type: CableApcExtension
+  components:
+  - pos: -3.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 164
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 3.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 165
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: 3.5,4.5
+    parent: 0
+    type: Transform
+- uid: 166
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -4.5,4.5
+    parent: 0
+    type: Transform
+- uid: 167
+  type: AtmosDeviceFanTiny
+  components:
+  - pos: -4.5,-2.5
+    parent: 0
+    type: Transform
+- uid: 168
+  type: Gyroscope
+  components:
+  - pos: 1.5,-5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 169
+  type: Thruster
+  components:
+  - pos: 2.5,7.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 170
+  type: Thruster
+  components:
+  - pos: -3.5,7.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 171
+  type: Thruster
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -1.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 172
+  type: Thruster
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -2.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 173
+  type: Thruster
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 1.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 174
+  type: Thruster
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 0.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 175
+  type: Thruster
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 176
+  type: Thruster
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,-6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 177
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 3.5,-2.5
+    parent: 0
+    type: Transform
+  - fixtures:
+    - shape: !type:PolygonShape
+        radius: 0.01
+        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
+      density: 100
+      hard: True
+      restitution: 0
+      friction: 0.4
+      id: null
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      mask: []
+      layer: []
+      density: 1
+      hard: False
+      restitution: 0
+      friction: 0.4
+      id: docking
+    type: Fixtures
+- uid: 178
+  type: AirlockGlassShuttle
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 3.5,4.5
+    parent: 0
+    type: Transform
+  - fixtures:
+    - shape: !type:PolygonShape
+        radius: 0.01
+        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
+      density: 100
+      hard: True
+      restitution: 0
+      friction: 0.4
+      id: null
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      mask: []
+      layer: []
+      density: 1
+      hard: False
+      restitution: 0
+      friction: 0.4
+      id: docking
+    type: Fixtures
+- uid: 179
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -4.5,4.5
+    parent: 0
+    type: Transform
+  - fixtures:
+    - shape: !type:PolygonShape
+        radius: 0.01
+        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
+      density: 100
+      hard: True
+      restitution: 0
+      friction: 0.4
+      id: null
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      mask: []
+      layer: []
+      density: 1
+      hard: False
+      restitution: 0
+      friction: 0.4
+      id: docking
+    type: Fixtures
+- uid: 180
+  type: AirlockGlassShuttle
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -4.5,-2.5
+    parent: 0
+    type: Transform
+  - fixtures:
+    - shape: !type:PolygonShape
+        radius: 0.01
+        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
+      density: 100
+      hard: True
+      restitution: 0
+      friction: 0.4
+      id: null
+    - shape: !type:PhysShapeCircle
+        radius: 0.2
+        position: 0,-0.5
+      mask: []
+      layer: []
+      density: 1
+      hard: False
+      restitution: 0
+      friction: 0.4
+      id: docking
+    type: Fixtures
+- uid: 181
+  type: GasPort
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -1.5,7.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 182
+  type: GasPipeBend
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,8.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 183
+  type: GasPipeBend
+  components:
+  - pos: -0.5,8.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 184
+  type: GasPassiveGate
+  components:
+  - pos: -0.5,7.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 185
+  type: GasPipeStraight
+  components:
+  - pos: -0.5,6.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 186
+  type: GasPipeFourway
+  components:
+  - pos: -0.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 187
+  type: GasPipeBend
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -2.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 188
+  type: GasPipeBend
+  components:
+  - pos: 1.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 189
+  type: GasPipeBend
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 1.5,-3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 190
+  type: GasPipeBend
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -2.5,-3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 191
+  type: GasPipeTJunction
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -0.5,-3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 192
+  type: GasPipeStraight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 193
+  type: GasPipeStraight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 194
+  type: GasPipeStraight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,-3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 195
+  type: GasPipeStraight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 196
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,-2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 197
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,-1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 198
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 199
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 200
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 201
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 202
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 203
+  type: GasPipeStraight
+  components:
+  - pos: 1.5,4.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 204
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,-2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 205
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,-1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 206
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 207
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 208
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 209
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 210
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,3.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 211
+  type: GasPipeStraight
+  components:
+  - pos: -2.5,4.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 212
+  type: GasVentPump
+  components:
+  - pos: -0.5,-2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 213
+  type: GasVentPump
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -0.5,4.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 214
+  type: AirCanister
+  components:
+  - pos: -1.5,7.5
+    parent: 0
+    type: Transform
+- uid: 215
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 216
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -0.5,0.5
+    parent: 0
+    type: Transform
+- uid: 217
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -0.5,1.5
+    parent: 0
+    type: Transform
+- uid: 218
+  type: WindowReinforcedDirectional
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 219
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,2.5
+    parent: 0
+    type: Transform
+- uid: 220
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,1.5
+    parent: 0
+    type: Transform
+- uid: 221
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,0.5
+    parent: 0
+    type: Transform
+- uid: 222
+  type: WindowReinforcedDirectional
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -0.5,-0.5
+    parent: 0
+    type: Transform
+- uid: 223
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 224
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 225
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 226
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 227
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -1.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 228
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -1.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 229
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -1.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 230
+  type: ChairPilotSeat
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -1.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 231
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 232
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 233
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 234
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 235
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,-0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 236
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,0.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 237
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,1.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 238
+  type: ChairPilotSeat
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,2.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 239
+  type: ChairPilotSeat
+  components:
+  - pos: 1.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 240
+  type: ChairPilotSeat
+  components:
+  - pos: -2.5,5.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 241
+  type: ChairPilotSeat
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -0.5,8.5
+    parent: 0
+    type: Transform
+  - bodyType: Static
+    type: Physics
+- uid: 242
+  type: ComputerShuttle
+  components:
+  - pos: -0.5,9.5
+    parent: 0
+    type: Transform
+- uid: 243
+  type: TableReinforced
+  components:
+  - pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 244
+  type: TableReinforced
+  components:
+  - pos: -1.5,8.5
+    parent: 0
+    type: Transform
+- uid: 245
+  type: TableReinforced
+  components:
+  - pos: 0.5,8.5
+    parent: 0
+    type: Transform
+- uid: 246
+  type: TableReinforced
+  components:
+  - pos: -0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 247
+  type: TableReinforced
+  components:
+  - pos: -1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 248
+  type: TableReinforced
+  components:
+  - pos: 0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 249
+  type: TableReinforced
+  components:
+  - pos: -1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 250
+  type: TableReinforced
+  components:
+  - pos: 2.5,5.5
+    parent: 0
+    type: Transform
+- uid: 251
+  type: TableReinforced
+  components:
+  - pos: -3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 252
+  type: ClosetEmergencyFilledRandom
+  components:
+  - pos: 0.5,5.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 253
+  type: ClosetFireFilled
+  components:
+  - pos: -1.5,5.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 254
+  type: PottedPlantRandom
+  components:
+  - pos: 2.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 255
+  type: PottedPlantRandom
+  components:
+  - pos: 2.5,3.5
+    parent: 0
+    type: Transform
+- uid: 256
+  type: PottedPlantRandom
+  components:
+  - pos: -3.5,3.5
+    parent: 0
+    type: Transform
+- uid: 257
+  type: PottedPlantRandom
+  components:
+  - pos: -3.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 258
+  type: BlockGameArcade
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: -1.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 259
+  type: SpaceVillainArcadeFilled
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: 0.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 260
+  type: ClosetEmergencyFilledRandom
+  components:
+  - pos: -2.5,-3.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 261
+  type: VendingMachineClothing
+  components:
+  - flags: SessionSpecific
+    type: MetaData
+  - pos: 1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 262
+  type: Rack
+  components:
+  - pos: 2.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 263
+  type: Rack
+  components:
+  - pos: -3.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 264
+  type: Intercom
+  components:
+  - pos: -0.5,-1.5
+    parent: 0
+    type: Transform
+- uid: 265
+  type: PowerCellRecharger
+  components:
+  - pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 266
+  type: MedkitFilled
+  components:
+  - pos: -0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 267
+  type: ToolboxEmergencyFilled
+  components:
+  - pos: -1.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 268
+  type: NitrogenTankFilled
+  components:
+  - pos: -3.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 269
+  type: NitrogenTankFilled
+  components:
+  - pos: 2.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 270
+  type: EmergencyOxygenTankFilled
+  components:
+  - pos: 2.5708976,-3.5851696
+    parent: 0
+    type: Transform
+- uid: 271
+  type: EmergencyOxygenTankFilled
+  components:
+  - pos: -3.4291024,-3.5851696
+    parent: 0
+    type: Transform
+- uid: 272
+  type: ClothingMaskBreath
+  components:
+  - pos: 2.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 273
+  type: ClothingMaskBreath
+  components:
+  - pos: -3.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 274
+  type: CrowbarRed
+  components:
+  - pos: 0.5,-3.5
+    parent: 0
+    type: Transform
+- uid: 275
+  type: ClothingBackpack
+  components:
+  - pos: 2.5,5.5
+    parent: 0
+    type: Transform
+- uid: 276
+  type: ToolboxEmergencyFilled
+  components:
+  - pos: -3.5,5.5
+    parent: 0
+    type: Transform
+- uid: 277
+  type: ExtinguisherCabinetFilled
+  components:
+  - pos: -0.5,-4.5
+    parent: 0
+    type: Transform
+- uid: 278
+  type: AirlockCommandGlassLocked
+  components:
+  - name: Cockpit
+    type: MetaData
+  - pos: -0.5,6.5
+    parent: 0
+    type: Transform
+- uid: 279
+  type: Poweredlight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,5.5
+    parent: 0
+    type: Transform
+  - powerLoad: 0
+    type: ApcPowerReceiver
+- uid: 280
+  type: Poweredlight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,3.5
+    parent: 0
+    type: Transform
+  - powerLoad: 0
+    type: ApcPowerReceiver
+- uid: 281
+  type: Poweredlight
+  components:
+  - rot: -1.5707963267948966 rad
+    pos: 2.5,-1.5
+    parent: 0
+    type: Transform
+  - powerLoad: 0
+    type: ApcPowerReceiver
+- uid: 282
+  type: Poweredlight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -3.5,-3.5
+    parent: 0
+    type: Transform
+  - powerLoad: 0
+    type: ApcPowerReceiver
+- uid: 283
+  type: Poweredlight
+  components:
+  - rot: 1.5707963267948966 rad
+    pos: -1.5,7.5
+    parent: 0
+    type: Transform
+  - powerLoad: 0
+    type: ApcPowerReceiver
+- uid: 284
+  type: MaintenanceFluffSpawner
+  components:
+  - pos: 0.5,3.5
+    parent: 0
+    type: Transform
+- uid: 285
+  type: MaintenanceFluffSpawner
+  components:
+  - pos: -1.5,3.5
+    parent: 0
+    type: Transform
+- uid: 286
+  type: ClosetWallFireFilledRandom
+  components:
+  - pos: 2.5,6.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 287
+  type: ClosetWallFireFilledRandom
+  components:
+  - rot: 3.141592653589793 rad
+    pos: -3.5,-4.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 288
+  type: ClosetWallEmergencyFilledRandom
+  components:
+  - rot: 3.141592653589793 rad
+    pos: 2.5,-4.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 289
+  type: ClosetWallEmergencyFilledRandom
+  components:
+  - pos: -3.5,6.5
+    parent: 0
+    type: Transform
+  - air:
+      volume: 200
+      immutable: False
+      temperature: 293.14963
+      moles:
+      - 1.7459903
+      - 6.568249
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+      - 0
+    type: EntityStorage
+- uid: 290
+  type: PosterLegitNanotrasenLogo
+  components:
+  - pos: -2.5,6.5
+    parent: 0
+    type: Transform
+- uid: 291
+  type: GravityGeneratorMini
+  components:
+  - pos: -2.5,-5.5
+    parent: 0
+    type: Transform
+...