]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add trade stations (#23863)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Fri, 19 Jan 2024 02:02:28 +0000 (13:02 +1100)
committerGitHub <noreply@github.com>
Fri, 19 Jan 2024 02:02:28 +0000 (13:02 +1100)
* puters

* Start on fulfillment

* weh

* Smol update

* FTL sound fixes or smth iunno

* Add consoles

* More tweaks

* Make it unanchorable

* final wehs

* weh

* Fix 1 test

* Shrimply bump the distance

* cat

17 files changed:
Content.Client/Cargo/UI/CargoPalletMenu.xaml
Content.Client/Cargo/UI/CargoPalletMenu.xaml.cs
Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs
Content.Server/Cargo/Components/StationCargoOrderDatabaseComponent.cs
Content.Server/Cargo/Components/TradeStationComponent.cs [new file with mode: 0644]
Content.Server/Cargo/Systems/CargoSystem.Orders.cs
Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs
Content.Server/Cargo/Systems/CargoSystem.Telepad.cs
Content.Server/Cargo/Systems/CargoSystem.cs
Content.Server/Shuttles/Components/GridSpawnComponent.cs
Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
Content.Server/Shuttles/Systems/ShuttleSystem.GridFill.cs
Content.Server/Shuttles/Systems/ShuttleSystem.cs
Content.Shared/Cargo/Components/CargoShuttleComponent.cs
Resources/Locale/en-US/cargo/cargo-console-component.ftl
Resources/Maps/Shuttles/trading_outpost.yml
Resources/Prototypes/Entities/Stations/base.yml

index 489c6cb8f6113931b28845afa753cfc151be9531..d791c9ce3aff26b2f5a36edb0bf5612512ecab1c 100644 (file)
@@ -1,9 +1,9 @@
 <controls:FancyWindow xmlns="https://spacestation14.io"
-            xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
-            xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
+                      xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
             SetSize="300 150"
-            MinSize="300 150">
-    <BoxContainer Orientation="Vertical">
+            MinSize="300 150"
+                      Title="{Loc 'cargo-pallet-console-menu-title'}">
+    <BoxContainer Orientation="Vertical" Margin="5">
         <BoxContainer Orientation="Horizontal">
             <Label Text="{Loc 'cargo-pallet-menu-appraisal-label'}"
                    StyleClasses="LabelKeyText" />
index c46ecf562d62444bf0f188bbad6253403d8f3736..3ac0117dc701e73969e1701b37ddb7ca67f29d22 100644 (file)
@@ -17,7 +17,6 @@ public sealed partial class CargoPalletMenu : FancyWindow
         RobustXamlLoader.Load(this);
         SellButton.OnPressed += OnSellPressed;
         AppraiseButton.OnPressed += OnAppraisePressed;
-        Title = Loc.GetString("cargo-pallet-console-menu-title");
     }
 
     public void SetAppraisal(int amount)
index 0255afa50e93625ff5190046404b81d5d446b75e..e14a8264678da0e11a1ff2489ad7c2ce4db96107 100644 (file)
@@ -67,7 +67,7 @@ namespace Content.IntegrationTests.Tests.Destructible
                     Assert.That(spawnEntitiesBehavior.Spawn.Values.Single(), Is.EqualTo(new MinMax { Min = 1, Max = 1 }));
                 });
 
-                var entitiesInRange = sEntityManager.System<EntityLookupSystem>().GetEntitiesInRange(coordinates, 2);
+                var entitiesInRange = sEntityManager.System<EntityLookupSystem>().GetEntitiesInRange(coordinates, 3, LookupFlags.All | LookupFlags.Approximate);
                 var found = false;
 
                 foreach (var entity in entitiesInRange)
@@ -86,7 +86,7 @@ namespace Content.IntegrationTests.Tests.Destructible
                     break;
                 }
 
-                Assert.That(found, Is.True);
+                Assert.That(found, Is.True, $"Unable to find {SpawnedEntityId} nearby for destructible test; found {entitiesInRange.Count} entities.");
             });
             await pair.CleanReturnAsync();
         }
index 6c19dbc4a2a50faf02e17d9780219eefa8e0bbe1..c30db08bbe5fa73c415a68a0caef938ee9aea852 100644 (file)
@@ -1,5 +1,6 @@
 using Content.Shared.Cargo;
 using Content.Shared.Cargo.Prototypes;
+using Robust.Shared.Prototypes;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
 namespace Content.Server.Cargo.Components;
@@ -30,4 +31,10 @@ public sealed partial class StationCargoOrderDatabaseComponent : Component
     /// </summary>
     [DataField("shuttle")]
     public EntityUid? Shuttle;
+
+    /// <summary>
+    ///     The paper-type prototype to spawn with the order information.
+    /// </summary>
+    [DataField]
+    public EntProtoId PrinterOutput = "PaperCargoInvoice";
 }
diff --git a/Content.Server/Cargo/Components/TradeStationComponent.cs b/Content.Server/Cargo/Components/TradeStationComponent.cs
new file mode 100644 (file)
index 0000000..0422470
--- /dev/null
@@ -0,0 +1,10 @@
+namespace Content.Server.Cargo.Components;
+
+/// <summary>
+/// Target for approved orders to spawn at.
+/// </summary>
+[RegisterComponent]
+public sealed partial class TradeStationComponent : Component
+{
+
+}
index f659357ad382ba933bd7a79446decc3fedd03407..4a150c3c1a8b26d37a162f73d34bb69c50842508 100644 (file)
@@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
 using Content.Server.Cargo.Components;
 using Content.Server.Labels.Components;
 using Content.Server.Paper;
+using Content.Server.Station.Components;
 using Content.Shared.Cargo;
 using Content.Shared.Cargo.BUI;
 using Content.Shared.Cargo.Events;
@@ -10,6 +11,7 @@ using Content.Shared.Database;
 using Robust.Shared.Map;
 using Robust.Shared.Player;
 using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Cargo.Systems
@@ -87,10 +89,12 @@ namespace Content.Server.Cargo.Systems
                 return;
             }
 
-            var bankAccount = GetBankAccount(uid, component);
+            var station = _station.GetOwningStation(uid);
 
             // No station to deduct from.
-            if (!TryGetOrderDatabase(uid, out var dbUid, out var orderDatabase, component) || bankAccount == null)
+            if (!TryComp(station, out StationBankAccountComponent? bank) ||
+                !TryComp(station, out StationDataComponent? stationData) ||
+                !TryGetOrderDatabase(station, out var orderDatabase))
             {
                 ConsolePopup(args.Session, Loc.GetString("cargo-console-station-not-found"));
                 PlayDenySound(uid, component);
@@ -136,32 +140,82 @@ namespace Content.Server.Cargo.Systems
             var cost = order.Price * order.OrderQuantity;
 
             // Not enough balance
-            if (cost > bankAccount.Balance)
+            if (cost > bank.Balance)
             {
                 ConsolePopup(args.Session, Loc.GetString("cargo-console-insufficient-funds", ("cost", cost)));
                 PlayDenySound(uid, component);
                 return;
             }
 
+            // No slots at the trade station
+            _listEnts.Clear();
+            GetTradeStations(stationData, ref _listEnts);
+            EntityUid? tradeDestination = null;
+
+            // Try to fulfill from any station where possible, if the pad is not occupied.
+            foreach (var trade in _listEnts)
+            {
+                var tradePads = GetCargoPallets(trade);
+                _random.Shuffle(tradePads);
+
+                var freePads = GetFreeCargoPallets(trade, tradePads);
+
+                foreach (var pad in freePads)
+                {
+                    var coordinates = new EntityCoordinates(trade, pad.Transform.LocalPosition);
+
+                    if (FulfillOrder(order, coordinates, orderDatabase.PrinterOutput))
+                    {
+                        tradeDestination = trade;
+                        break;
+                    }
+                }
+
+                if (tradeDestination != null)
+                    break;
+            }
+
+            if (tradeDestination == null)
+            {
+                ConsolePopup(args.Session, Loc.GetString("cargo-console-unfulfilled"));
+                PlayDenySound(uid, component);
+                return;
+            }
+
             _idCardSystem.TryFindIdCard(player, out var idCard);
             // ReSharper disable once ConditionalAccessQualifierIsNonNullableAccordingToAPIContract
             order.SetApproverData(idCard.Comp?.FullName, idCard.Comp?.JobTitle);
-            _audio.PlayPvs(_audio.GetSound(component.ConfirmSound), uid);
+            _audio.PlayPvs(component.ConfirmSound, uid);
+
+            ConsolePopup(args.Session, Loc.GetString("cargo-console-trade-station", ("destination", MetaData(tradeDestination.Value).EntityName)));
 
             // Log order approval
             _adminLogger.Add(LogType.Action, LogImpact.Low,
-                $"{ToPrettyString(player):user} approved order [orderId:{order.OrderId}, quantity:{order.OrderQuantity}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bankAccount.Balance}");
+                $"{ToPrettyString(player):user} approved order [orderId:{order.OrderId}, quantity:{order.OrderQuantity}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bank.Balance}");
 
-            DeductFunds(bankAccount, cost);
-            UpdateOrders(dbUid!.Value, orderDatabase);
+            DeductFunds(bank, cost);
+            UpdateOrders(station.Value, orderDatabase);
+        }
+
+        private void GetTradeStations(StationDataComponent data, ref List<EntityUid> ents)
+        {
+            foreach (var gridUid in data.Grids)
+            {
+                if (!_tradeQuery.HasComponent(gridUid))
+                    continue;
+
+                ents.Add(gridUid);
+            }
         }
 
         private void OnRemoveOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleRemoveOrderMessage args)
         {
-            if (!TryGetOrderDatabase(uid, out var dbUid, out var orderDatabase, component))
+            var station = _station.GetOwningStation(uid);
+
+            if (!TryGetOrderDatabase(station, out var orderDatabase))
                 return;
 
-            RemoveOrder(dbUid!.Value, args.OrderId, orderDatabase);
+            RemoveOrder(station.Value, args.OrderId, orderDatabase);
         }
 
         private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleAddOrderMessage args)
@@ -172,11 +226,9 @@ namespace Content.Server.Cargo.Systems
             if (args.Amount <= 0)
                 return;
 
-            var bank = GetBankAccount(uid, component);
-            if (bank == null)
-                return;
+            var stationUid = _station.GetOwningStation(uid);
 
-            if (!TryGetOrderDatabase(uid, out var dbUid, out var orderDatabase, component))
+            if (!TryGetOrderDatabase(stationUid, out var orderDatabase))
                 return;
 
             if (!_protoMan.TryIndex<CargoProductPrototype>(args.CargoProductId, out var product))
@@ -187,7 +239,7 @@ namespace Content.Server.Cargo.Systems
 
             var data = GetOrderData(args, product, GenerateOrderId(orderDatabase));
 
-            if (!TryAddOrder(dbUid!.Value, data, orderDatabase))
+            if (!TryAddOrder(stationUid.Value, data, orderDatabase))
             {
                 PlayDenySound(uid, component);
                 return;
@@ -336,10 +388,10 @@ namespace Content.Server.Cargo.Systems
 
         public void ClearOrders(StationCargoOrderDatabaseComponent component)
         {
-            if (component.Orders.Count == 0) return;
+            if (component.Orders.Count == 0)
+                return;
 
             component.Orders.Clear();
-            Dirty(component);
         }
 
         private static bool PopFrontOrder(StationCargoOrderDatabaseComponent orderDB, [NotNullWhen(true)] out CargoOrderData? orderOut)
@@ -362,64 +414,63 @@ namespace Content.Server.Cargo.Systems
             return true;
         }
 
-        private bool FulfillOrder(StationCargoOrderDatabaseComponent orderDB, EntityCoordinates whereToPutIt,
-                string? paperPrototypeToPrint)
+        /// <summary>
+        /// Tries to fulfill the next outstanding order.
+        /// </summary>
+        private bool FulfillNextOrder(StationCargoOrderDatabaseComponent orderDB, EntityCoordinates spawn, string? paperProto)
         {
-            if (PopFrontOrder(orderDB, out var order))
-            {
-                // Create the item itself
-                var item = Spawn(order.ProductId, whereToPutIt);
+            if (!PopFrontOrder(orderDB, out var order))
+                return false;
+
+            return FulfillOrder(order, spawn, paperProto);
+        }
 
-                // Create a sheet of paper to write the order details on
-                var printed = EntityManager.SpawnEntity(paperPrototypeToPrint, whereToPutIt);
-                if (TryComp<PaperComponent>(printed, out var paper))
+        /// <summary>
+        /// Fulfills the specified cargo order and spawns paper attached to it.
+        /// </summary>
+        private bool FulfillOrder(CargoOrderData order, EntityCoordinates spawn, string? paperProto)
+        {
+            // Create the item itself
+            var item = Spawn(order.ProductId, spawn);
+
+            // Create a sheet of paper to write the order details on
+            var printed = EntityManager.SpawnEntity(paperProto, spawn);
+            if (TryComp<PaperComponent>(printed, out var paper))
+            {
+                // fill in the order data
+                var val = Loc.GetString("cargo-console-paper-print-name", ("orderNumber", order.OrderId));
+                _metaSystem.SetEntityName(printed, val);
+
+                _paperSystem.SetContent(printed, Loc.GetString(
+                        "cargo-console-paper-print-text",
+                        ("orderNumber", order.OrderId),
+                        ("itemName", MetaData(item).EntityName),
+                        ("requester", order.Requester),
+                        ("reason", order.Reason),
+                        ("approver", order.Approver ?? string.Empty)),
+                    paper);
+
+                // attempt to attach the label to the item
+                if (TryComp<PaperLabelComponent>(item, out var label))
                 {
-                    // fill in the order data
-                    var val = Loc.GetString("cargo-console-paper-print-name", ("orderNumber", order.OrderId));
-                    _metaSystem.SetEntityName(printed, val);
-
-                    _paperSystem.SetContent(printed, Loc.GetString(
-                                "cargo-console-paper-print-text",
-                                ("orderNumber", order.OrderId),
-                                ("itemName", MetaData(item).EntityName),
-                                ("requester", order.Requester),
-                                ("reason", order.Reason),
-                                ("approver", order.Approver ?? string.Empty)),
-                            paper);
-
-                    // attempt to attach the label to the item
-                    if (TryComp<PaperLabelComponent>(item, out var label))
-                    {
-                        _slots.TryInsert(item, label.LabelSlot, printed, null);
-                    }
+                    _slots.TryInsert(item, label.LabelSlot, printed, null);
                 }
-
-                return true;
             }
 
-            return false;
+            return true;
+
         }
 
         private void DeductFunds(StationBankAccountComponent component, int amount)
         {
             component.Balance = Math.Max(0, component.Balance - amount);
-            Dirty(component);
         }
 
         #region Station
 
-        private StationBankAccountComponent? GetBankAccount(EntityUid uid, CargoOrderConsoleComponent _)
-        {
-            var station = _station.GetOwningStation(uid);
-
-            TryComp<StationBankAccountComponent>(station, out var bankComponent);
-            return bankComponent;
-        }
-
-        private bool TryGetOrderDatabase(EntityUid uid, [MaybeNullWhen(false)] out EntityUid? dbUid, [MaybeNullWhen(false)] out StationCargoOrderDatabaseComponent dbComp, CargoOrderConsoleComponent _)
+        private bool TryGetOrderDatabase([NotNullWhen(true)] EntityUid? stationUid, [MaybeNullWhen(false)] out StationCargoOrderDatabaseComponent dbComp)
         {
-            dbUid = _station.GetOwningStation(uid);
-            return TryComp(dbUid, out dbComp);
+            return TryComp(stationUid, out dbComp);
         }
 
         #endregion
index 00922ad1051c1b5bcdd8dc09b4b845a6fb3db5db..8a661c8896def347a5577881fd73a979582868e4 100644 (file)
@@ -1,39 +1,27 @@
-using System.Linq;
 using Content.Server.Cargo.Components;
-using Content.Server.GameTicking.Events;
-using Content.Server.Shuttles.Components;
-using Content.Server.Shuttles.Events;
 using Content.Shared.Stacks;
 using Content.Shared.Cargo;
 using Content.Shared.Cargo.BUI;
 using Content.Shared.Cargo.Components;
 using Content.Shared.Cargo.Events;
-using Content.Shared.CCVar;
 using Content.Shared.GameTicking;
-using Content.Shared.Whitelist;
-using Robust.Server.GameObjects;
 using Robust.Shared.Map;
 using Robust.Shared.Random;
-using Robust.Shared.Utility;
-using Content.Shared.Coordinates;
-using Content.Shared.Mobs;
-using Content.Shared.Mobs.Components;
+using Robust.Shared.Audio;
 
 namespace Content.Server.Cargo.Systems;
 
 public sealed partial class CargoSystem
 {
     /*
-     * Handles cargo shuttle mechanics.
+     * Handles cargo shuttle / trade mechanics.
      */
 
-    public MapId? CargoMap { get; private set; }
+    private static readonly SoundPathSpecifier ApproveSound = new("/Audio/Effects/Cargo/ping.ogg");
 
     private void InitializeShuttle()
     {
-        SubscribeLocalEvent<CargoShuttleComponent, FTLStartedEvent>(OnCargoFTLStarted);
-        SubscribeLocalEvent<CargoShuttleComponent, FTLCompletedEvent>(OnCargoFTLCompleted);
-        SubscribeLocalEvent<CargoShuttleComponent, FTLTagEvent>(OnCargoFTLTag);
+        SubscribeLocalEvent<TradeStationComponent, GridSplitEvent>(OnTradeSplit);
 
         SubscribeLocalEvent<CargoShuttleConsoleComponent, ComponentStartup>(OnCargoShuttleConsoleStartup);
 
@@ -42,32 +30,6 @@ public sealed partial class CargoSystem
         SubscribeLocalEvent<CargoPalletConsoleComponent, BoundUIOpenedEvent>(OnPalletUIOpen);
 
         SubscribeLocalEvent<RoundRestartCleanupEvent>(OnRoundRestart);
-        SubscribeLocalEvent<RoundStartingEvent>(OnRoundStart);
-
-        _cfgManager.OnValueChanged(CCVars.GridFill, SetGridFill);
-    }
-
-    private void ShutdownShuttle()
-    {
-        _cfgManager.UnsubValueChanged(CCVars.GridFill, SetGridFill);
-    }
-
-    private void SetGridFill(bool obj)
-    {
-        if (obj)
-        {
-            SetupCargoShuttle();
-        }
-    }
-
-    private void OnCargoFTLTag(EntityUid uid, CargoShuttleComponent component, ref FTLTagEvent args)
-    {
-        if (args.Handled)
-            return;
-
-        // Just saves mappers forgetting.
-        args.Handled = true;
-        args.Tag = "DockCargo";
     }
 
     #region Console
@@ -156,6 +118,15 @@ public sealed partial class CargoSystem
 
     #endregion
 
+    private void OnTradeSplit(EntityUid uid, TradeStationComponent component, ref GridSplitEvent args)
+    {
+        // If the trade station gets bombed it's still a trade station.
+        foreach (var gridUid in args.NewGrids)
+        {
+            EnsureComp<TradeStationComponent>(gridUid);
+        }
+    }
+
     #region Shuttle
 
     /// <summary>
@@ -206,9 +177,9 @@ public sealed partial class CargoSystem
         return space;
     }
 
-    private List<(EntityUid Entity, CargoPalletComponent Component)> GetCargoPallets(EntityUid gridUid)
+    private List<(EntityUid Entity, CargoPalletComponent Component, TransformComponent PalletXform)> GetCargoPallets(EntityUid gridUid)
     {
-        var pads = new List<(EntityUid, CargoPalletComponent)>();
+        _pads.Clear();
         var query = AllEntityQuery<CargoPalletComponent, TransformComponent>();
 
         while (query.MoveNext(out var uid, out var comp, out var compXform))
@@ -219,23 +190,43 @@ public sealed partial class CargoSystem
                 continue;
             }
 
-            pads.Add((uid, comp));
+            _pads.Add((uid, comp, compXform));
         }
 
-        return pads;
+        return _pads;
+    }
+
+    private IEnumerable<(EntityUid Entity, CargoPalletComponent Component, TransformComponent Transform)>
+        GetFreeCargoPallets(EntityUid gridUid,
+            List<(EntityUid Entity, CargoPalletComponent Component, TransformComponent Transform)> pallets)
+    {
+        _setEnts.Clear();
+
+        foreach (var pallet in pallets)
+        {
+            var aabb = _lookup.GetAABBNoContainer(pallet.Entity, pallet.Transform.LocalPosition, pallet.Transform.LocalRotation);
+
+            if (_lookup.AnyLocalEntitiesIntersecting(gridUid, aabb, LookupFlags.Dynamic))
+                continue;
+
+            yield return pallet;
+        }
     }
 
     #endregion
 
     #region Station
 
-    private void SellPallets(EntityUid gridUid, EntityUid? station, out double amount)
+    private bool SellPallets(EntityUid gridUid, EntityUid? station, out double amount)
     {
         station ??= _station.GetOwningStation(gridUid);
         GetPalletGoods(gridUid, out var toSell, out amount);
 
         Log.Debug($"Cargo sold {toSell.Count} entities for {amount}");
 
+        if (toSell.Count == 0)
+            return false;
+
         if (station != null)
         {
             var ev = new EntitySoldEvent(station.Value, toSell);
@@ -246,6 +237,8 @@ public sealed partial class CargoSystem
         {
             Del(ent);
         }
+
+        return true;
     }
 
     private void GetPalletGoods(EntityUid gridUid, out HashSet<EntityUid> toSell, out double amount)
@@ -253,10 +246,15 @@ public sealed partial class CargoSystem
         amount = 0;
         toSell = new HashSet<EntityUid>();
 
-        foreach (var (palletUid, _) in GetCargoPallets(gridUid))
+        foreach (var (palletUid, _, _) in GetCargoPallets(gridUid))
         {
             // Containers should already get the sell price of their children so can skip those.
-            foreach (var ent in _lookup.GetEntitiesIntersecting(palletUid, LookupFlags.Dynamic | LookupFlags.Sundries | LookupFlags.Approximate))
+            _setEnts.Clear();
+
+            _lookup.GetEntitiesIntersecting(palletUid, _setEnts,
+                LookupFlags.Dynamic | LookupFlags.Sundries);
+
+            foreach (var ent in _setEnts)
             {
                 // Dont sell:
                 // - anything already being sold
@@ -304,21 +302,6 @@ public sealed partial class CargoSystem
         return true;
     }
 
-    private void AddCargoContents(EntityUid shuttleUid, CargoShuttleComponent shuttle, StationCargoOrderDatabaseComponent orderDatabase)
-    {
-        var xformQuery = GetEntityQuery<TransformComponent>();
-
-        var pads = GetCargoPallets(shuttleUid);
-        while (pads.Count > 0)
-        {
-            var coordinates = new EntityCoordinates(shuttleUid, xformQuery.GetComponent(_random.PickAndTake(pads).Entity).LocalPosition);
-            if (!FulfillOrder(orderDatabase, coordinates, shuttle.PrinterOutput))
-            {
-                break;
-            }
-        }
-    }
-
     private void OnPalletSale(EntityUid uid, CargoPalletConsoleComponent component, CargoPalletSellMessage args)
     {
         var player = args.Session.AttachedEntity;
@@ -327,50 +310,22 @@ public sealed partial class CargoSystem
             return;
 
         var bui = _uiSystem.GetUi(uid, CargoPalletConsoleUiKey.Sale);
-        if (Transform(uid).GridUid is not EntityUid gridUid)
+        var xform = Transform(uid);
+
+        if (xform.GridUid is not EntityUid gridUid)
         {
             _uiSystem.SetUiState(bui,
             new CargoPalletConsoleInterfaceState(0, 0, false));
             return;
         }
 
-        SellPallets(gridUid, null, out var price);
-        var stackPrototype = _protoMan.Index<StackPrototype>(component.CashType);
-        _stack.Spawn((int) price, stackPrototype, uid.ToCoordinates());
-        UpdatePalletConsoleInterface(uid);
-    }
-
-    private void OnCargoFTLStarted(EntityUid uid, CargoShuttleComponent component, ref FTLStartedEvent args)
-    {
-        var stationUid = _station.GetOwningStation(uid);
-
-        // Called
-        if (CargoMap == null ||
-            args.FromMapUid != _mapManager.GetMapEntityId(CargoMap.Value) ||
-            !TryComp<StationCargoOrderDatabaseComponent>(stationUid, out var orderDatabase))
-        {
-            return;
-        }
-
-        AddCargoContents(uid, component, orderDatabase);
-        UpdateOrders(stationUid!.Value, orderDatabase);
-        UpdateCargoShuttleConsoles(uid, component);
-    }
-
-    private void OnCargoFTLCompleted(EntityUid uid, CargoShuttleComponent component, ref FTLCompletedEvent args)
-    {
-        var xform = Transform(uid);
-        // Recalled
-        if (xform.MapID != CargoMap)
+        if (!SellPallets(gridUid, null, out var price))
             return;
 
-        var stationUid = _station.GetOwningStation(uid);
-
-        if (TryComp<StationBankAccountComponent>(stationUid, out var bank))
-        {
-            SellPallets(uid, stationUid, out var amount);
-            bank.Balance += (int) amount;
-        }
+        var stackPrototype = _protoMan.Index<StackPrototype>(component.CashType);
+        _stack.Spawn((int) price, stackPrototype, xform.Coordinates);
+        _audio.PlayPvs(ApproveSound, uid);
+        UpdatePalletConsoleInterface(uid);
     }
 
     #endregion
@@ -378,63 +333,6 @@ public sealed partial class CargoSystem
     private void OnRoundRestart(RoundRestartCleanupEvent ev)
     {
         Reset();
-        CleanupCargoShuttle();
-    }
-
-    private void OnRoundStart(RoundStartingEvent ev)
-    {
-        if (_cfgManager.GetCVar(CCVars.GridFill))
-            SetupCargoShuttle();
-    }
-
-    private void CleanupCargoShuttle()
-    {
-        if (CargoMap == null || !_mapManager.MapExists(CargoMap.Value))
-        {
-            CargoMap = null;
-            DebugTools.Assert(!EntityQuery<CargoShuttleComponent>().Any());
-            return;
-        }
-
-        _mapManager.DeleteMap(CargoMap.Value);
-        CargoMap = null;
-
-        // Shuttle may not have been in the cargo dimension (e.g. on the station map) so need to delete.
-        var query = AllEntityQuery<CargoShuttleComponent>();
-
-        while (query.MoveNext(out var uid, out var _))
-        {
-            if (TryComp<StationCargoOrderDatabaseComponent>(uid, out var station))
-            {
-                station.Shuttle = null;
-            }
-
-            QueueDel(uid);
-        }
-    }
-
-    private void SetupCargoShuttle()
-    {
-        if (CargoMap != null && _mapManager.MapExists(CargoMap.Value))
-        {
-            return;
-        }
-
-        // It gets mapinit which is okay... buuutt we still want it paused to avoid power draining.
-        CargoMap = _mapManager.CreateMap();
-        var mapUid = _mapManager.GetMapEntityId(CargoMap.Value);
-        var ftl = EnsureComp<FTLDestinationComponent>(_mapManager.GetMapEntityId(CargoMap.Value));
-        ftl.Whitelist = new EntityWhitelist()
-        {
-            Components = new[]
-            {
-                _factory.GetComponentName(typeof(CargoShuttleComponent))
-            }
-        };
-
-        _metaSystem.SetEntityName(mapUid, $"Trading post {_random.Next(1000):000}");
-
-        _console.RefreshShuttleConsoles();
     }
 }
 
index 3f78a48fe5ef51ec551fa0560aeee6359ed88e93..1c25b0e79d2bad75ee791fcde7e5dc9dfae2f4c2 100644 (file)
@@ -65,10 +65,10 @@ public sealed partial class CargoSystem
             }
 
             var xform = Transform(uid);
-            if (FulfillOrder(orderDatabase, xform.Coordinates, comp.PrinterOutput))
+            if (FulfillNextOrder(orderDatabase, xform.Coordinates, comp.PrinterOutput))
             {
                 _audio.PlayPvs(_audio.GetSound(comp.TeleportSound), uid, AudioParams.Default.WithVolume(-8f));
-                UpdateOrders(station!.Value, orderDatabase);
+                UpdateOrders(station.Value, orderDatabase);
 
                 comp.CurrentState = CargoTelepadState.Teleporting;
                 _appearance.SetData(uid, CargoTelepadVisuals.State, CargoTelepadState.Teleporting, appearance);
index 7172fec7fec3038b4553fbb377add27ff180658f..c39ffb186a1bcda7383ee34d933e1bdfe8164067 100644 (file)
@@ -14,8 +14,6 @@ using Content.Shared.Mobs.Components;
 using JetBrains.Annotations;
 using Robust.Server.GameObjects;
 using Robust.Shared.Audio.Systems;
-using Robust.Shared.Configuration;
-using Robust.Shared.Map;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Timing;
 using Robust.Shared.Random;
@@ -25,9 +23,6 @@ namespace Content.Server.Cargo.Systems;
 public sealed partial class CargoSystem : SharedCargoSystem
 {
     [Dependency] private readonly IGameTiming _timing = default!;
-    [Dependency] private readonly IComponentFactory _factory = default!;
-    [Dependency] private readonly IConfigurationManager _cfgManager = default!;
-    [Dependency] private readonly IMapManager _mapManager = default!;
     [Dependency] private readonly IPrototypeManager _protoMan = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
     [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
@@ -41,6 +36,7 @@ public sealed partial class CargoSystem : SharedCargoSystem
     [Dependency] private readonly PricingSystem _pricing = default!;
     [Dependency] private readonly SharedAppearanceSystem _appearance = default!;
     [Dependency] private readonly SharedAudioSystem _audio = default!;
+    [Dependency] private readonly SharedTransformSystem _xformSystem = default!;
     [Dependency] private readonly ShuttleConsoleSystem _console = default!;
     [Dependency] private readonly StackSystem _stack = default!;
     [Dependency] private readonly StationSystem _station = default!;
@@ -50,6 +46,11 @@ public sealed partial class CargoSystem : SharedCargoSystem
     private EntityQuery<TransformComponent> _xformQuery;
     private EntityQuery<CargoSellBlacklistComponent> _blacklistQuery;
     private EntityQuery<MobStateComponent> _mobQuery;
+    private EntityQuery<TradeStationComponent> _tradeQuery;
+
+    private HashSet<EntityUid> _setEnts = new();
+    private List<EntityUid> _listEnts = new();
+    private List<(EntityUid, CargoPalletComponent, TransformComponent)> _pads = new();
 
     public override void Initialize()
     {
@@ -58,6 +59,7 @@ public sealed partial class CargoSystem : SharedCargoSystem
         _xformQuery = GetEntityQuery<TransformComponent>();
         _blacklistQuery = GetEntityQuery<CargoSellBlacklistComponent>();
         _mobQuery = GetEntityQuery<MobStateComponent>();
+        _tradeQuery = GetEntityQuery<TradeStationComponent>();
 
         InitializeConsole();
         InitializeShuttle();
@@ -65,13 +67,6 @@ public sealed partial class CargoSystem : SharedCargoSystem
         InitializeBounty();
     }
 
-    public override void Shutdown()
-    {
-        base.Shutdown();
-        ShutdownShuttle();
-        CleanupCargoShuttle();
-    }
-
     public override void Update(float frameTime)
     {
         base.Update(frameTime);
index 1ddfb8c2442f1ec3400628549796745f8f0bd969..5f0fa7dd62447eb6afdf1e8291b364735b956d4f 100644 (file)
@@ -1,4 +1,5 @@
 using Content.Server.Shuttles.Systems;
+using Robust.Shared.Prototypes;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Shuttles.Components;
@@ -23,6 +24,11 @@ public record struct GridSpawnGroup
     public int MinCount = 1;
     public int MaxCount = 1;
 
+    /// <summary>
+    /// Components to be added to any spawned grids.
+    /// </summary>
+    public ComponentRegistry AddComponents = new();
+
     /// <summary>
     /// Hide the IFF label of the grid.
     /// </summary>
index 2602e9392ecc08686c86b8570bc97a79d3acd654..99ce4a044d6dbd46ba9936a4bada4d321f3cf642 100644 (file)
@@ -235,6 +235,12 @@ public sealed partial class ShuttleSystem
         component.State = FTLState.Starting;
         var audio = _audio.PlayPvs(_startupSound, uid);
         audio.Value.Component.Flags |= AudioFlags.GridAudio;
+
+        if (_physicsQuery.TryGetComponent(uid, out var gridPhysics))
+        {
+            _transform.SetLocalPosition(audio.Value.Entity, gridPhysics.LocalCenter);
+        }
+
         // Make sure the map is setup before we leave to avoid pop-in (e.g. parallax).
         SetupHyperspace();
         return true;
@@ -260,6 +266,7 @@ public sealed partial class ShuttleSystem
             {
                 // Startup time has elapsed and in hyperspace.
                 case FTLState.Starting:
+                {
                     DoTheDinosaur(xform);
 
                     comp.State = FTLState.Travelling;
@@ -268,7 +275,8 @@ public sealed partial class ShuttleSystem
                     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));
+                    xform.Coordinates = new EntityCoordinates(_mapManager.GetMapEntityId(_hyperSpaceMap!.Value),
+                        new Vector2(_index + width / 2f, 0f));
                     xform.LocalRotation = Angle.Zero;
                     _index += width + Buffer;
                     comp.Accumulator += comp.TravelTime - DefaultArrivalTime;
@@ -285,7 +293,9 @@ public sealed partial class ShuttleSystem
 
                     SetDockBolts(uid, true);
                     _console.RefreshShuttleConsoles(uid);
-                    var target = comp.TargetUid != null ? new EntityCoordinates(comp.TargetUid.Value, Vector2.Zero) : comp.TargetCoordinates;
+                    var target = comp.TargetUid != null
+                        ? new EntityCoordinates(comp.TargetUid.Value, Vector2.Zero)
+                        : comp.TargetCoordinates;
 
                     var ev = new FTLStartedEvent(uid, target, fromMapUid, fromMatrix, fromRotation);
                     RaiseLocalEvent(uid, ref ev, true);
@@ -293,8 +303,15 @@ public sealed partial class ShuttleSystem
                     var wowdio = _audio.PlayPvs(comp.TravelSound, uid);
                     comp.TravelStream = wowdio?.Entity;
                     if (wowdio?.Component != null)
+                    {
                         wowdio.Value.Component.Flags |= AudioFlags.GridAudio;
 
+                        if (_physicsQuery.TryGetComponent(uid, out var gridPhysics))
+                        {
+                            _transform.SetLocalPosition(wowdio.Value.Entity, gridPhysics.LocalCenter);
+                        }
+                    }
+                }
                     break;
                 // Arriving, play effects
                 case FTLState.Travelling:
@@ -313,6 +330,7 @@ public sealed partial class ShuttleSystem
                     break;
                 // Arrived
                 case FTLState.Arriving:
+                {
                     DoTheDinosaur(xform);
                     SetDockBolts(uid, false);
                     SetDocks(uid, true);
@@ -383,6 +401,12 @@ public sealed partial class ShuttleSystem
                     comp.TravelStream = _audio.Stop(comp.TravelStream);
                     var audio = _audio.PlayPvs(_arrivalSound, uid);
                     audio.Value.Component.Flags |= AudioFlags.GridAudio;
+                    // TODO: Shitcode til engine fix
+
+                    if (_physicsQuery.TryGetComponent(uid, out var gridPhysics))
+                    {
+                        _transform.SetLocalPosition(audio.Value.Entity, gridPhysics.LocalCenter);
+                    }
 
                     if (TryComp<FTLDestinationComponent>(uid, out var dest))
                     {
@@ -397,6 +421,7 @@ public sealed partial class ShuttleSystem
 
                     var ftlEvent = new FTLCompletedEvent(uid, _mapManager.GetMapEntityId(mapId));
                     RaiseLocalEvent(uid, ref ftlEvent, true);
+                    }
                     break;
                 case FTLState.Cooldown:
                     RemComp<FTLComponent>(uid);
@@ -711,6 +736,9 @@ public sealed partial class ShuttleSystem
                 continue;
 
             var aabb = fixture.Shape.ComputeAABB(transform, 0);
+
+            // Shift it slightly
+            aabb = aabb.Translated(-grid.TileSizeHalfVector);
             // Create a small border around it.
             aabb = aabb.Enlarged(0.2f);
             aabbs.Add(aabb);
index 5958bf0ebdde54a75e1c891788f3aa5232b09acb..84097e60ac2259411b6a61206a63c98de1ac46b0 100644 (file)
@@ -156,6 +156,17 @@ public sealed partial class ShuttleSystem
                         var name = path.FilenameWithoutExtension;
                         _metadata.SetEntityName(ent[0], name);
                     }
+
+                    foreach (var compReg in group.AddComponents.Values)
+                    {
+                        var compType = compReg.Component.GetType();
+
+                        if (HasComp(ent[0], compType))
+                            continue;
+
+                        var comp = _factory.GetComponent(compType);
+                        AddComp(ent[0], comp, true);
+                    }
                 }
                 else
                 {
index 3e941e67b403175800b13abf30f6b603317b9d04..a2e17b4321c4d8dfa22fa932e594bfbfe90cd9be 100644 (file)
@@ -25,6 +25,7 @@ namespace Content.Server.Shuttles.Systems;
 [UsedImplicitly]
 public sealed partial class ShuttleSystem : SharedShuttleSystem
 {
+    [Dependency] private readonly IComponentFactory _factory = default!;
     [Dependency] private readonly IConfigurationManager _cfg = default!;
     [Dependency] private readonly IMapManager _mapManager = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
@@ -39,7 +40,6 @@ public sealed partial class ShuttleSystem : SharedShuttleSystem
     [Dependency] private readonly MapLoaderSystem _loader = default!;
     [Dependency] private readonly MetaDataSystem _metadata = default!;
     [Dependency] private readonly SharedAudioSystem _audio = default!;
-    [Dependency] private readonly SharedMapSystem _maps = default!;
     [Dependency] private readonly SharedPhysicsSystem _physics = default!;
     [Dependency] private readonly SharedTransformSystem _transform = default!;
     [Dependency] private readonly ShuttleConsoleSystem _console = default!;
index eaa78ce8d3867c8b894016646e6ce7f44b2e034f..388e213943c684d5997fd17e13406ec5a91fc29c 100644 (file)
@@ -10,10 +10,7 @@ namespace Content.Shared.Cargo.Components;
 [RegisterComponent, NetworkedComponent, Access(typeof(SharedCargoSystem))]
 public sealed partial class CargoShuttleComponent : Component
 {
-    /// <summary>
-    ///     The paper-type prototype to spawn with the order information.
-    /// </summary>
-    [DataField("printerOutput", customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
-    public string PrinterOutput = "PaperCargoInvoice";
-
+    /*
+     * Still needed for drone console for now.
+     */
 }
index f66a098655651f947c7dafd13956c81c68b3a446..1caa810f1b7472d08d5a08c0d5db760c63748b6b 100644 (file)
@@ -28,6 +28,8 @@ cargo-console-invalid-product = Invalid product ID
 cargo-console-too-many = Too many approved orders
 cargo-console-snip-snip = Order trimmed to capacity
 cargo-console-insufficient-funds = Insufficient funds (require {$cost})
+cargo-console-unfulfilled = No room to fulfill order
+cargo-console-trade-station = Sent to {$destination}
 
 cargo-console-paper-print-name = Order #{$orderNumber}
 cargo-console-paper-print-text =
index 56d16dc90d7192b6ed96a623de13e7dc37ad7d37..2d81ada37b8a59bd2a556f68beada86dbfd8bdb4 100644 (file)
@@ -3,84 +3,73 @@ meta:
   postmapinit: false
 tilemap:
   0: Space
-  26: FloorDark
-  30: FloorDarkMini
-  31: FloorDarkMono
-  34: FloorDarkPavementVertical
-  46: FloorGrassJungle
-  91: FloorSteelMono
-  92: FloorSteelOffset
-  96: FloorTechMaint2
-  97: FloorTechMaint3
-  109: FloorWood
-  110: FloorWoodTile
-  111: Lattice
-  112: Plating
+  29: FloorDark
+  33: FloorDarkMini
+  34: FloorDarkMono
+  37: FloorDarkPavementVertical
+  49: FloorGrassJungle
+  100: FloorSteelMono
+  101: FloorSteelOffset
+  105: FloorTechMaint2
+  106: FloorTechMaint3
+  118: FloorWood
+  119: FloorWoodTile
+  120: Lattice
+  121: Plating
 entities:
 - proto: ""
   entities:
-  - uid: 1
-    components:
-    - name: map 20
-      type: MetaData
-    - type: Transform
-    - type: Map
-    - type: PhysicsMap
-    - type: GridTree
-    - type: MovedGrids
-    - type: Broadphase
-    - type: OccluderTree
-    - type: LoadedMap
   - uid: 2
     components:
-    - name: grid
-      type: MetaData
-    - pos: -2.9375,-1.625
-      parent: 1
-      type: Transform
-    - chunks:
+    - type: MetaData
+      name: Automated Trade Station
+    - type: Transform
+      pos: -2.9375,-1.625
+      parent: invalid
+    - type: MapGrid
+      chunks:
         0,0:
           ind: 0,0
-          tiles: XAAAAAAAHwAAAAAAHwAAAAAAHwAAAAABXAAAAAAAcAAAAAAAXAAAAAAAHwAAAAADHwAAAAADHwAAAAADXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAHwAAAAADIgAAAAABcAAAAAAAAAAAAAAAAAAAAAAAHwAAAAABYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAHwAAAAADcAAAAAAAHwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAHwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAbQAAAAAAbgAAAAACbgAAAAADbgAAAAADLgAAAAAALgAAAAAALgAAAAAAbgAAAAAAbgAAAAABbgAAAAADbQAAAAADcAAAAAAAHwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAbQAAAAAAbgAAAAADbgAAAAAAbgAAAAADbQAAAAADbQAAAAABbQAAAAADbgAAAAABbgAAAAABbgAAAAACbQAAAAAAHwAAAAAAIgAAAAACcAAAAAAAAAAAAAAAAAAAAAAAbQAAAAACbQAAAAABbQAAAAABbQAAAAABbQAAAAABbQAAAAAAbQAAAAADbQAAAAADbQAAAAAAbQAAAAACbQAAAAACcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+          tiles: ZQAAAAAAIgAAAAAAIgAAAAAAIgAAAAABZQAAAAAAeQAAAAAAZQAAAAAAIgAAAAADIgAAAAADIgAAAAADZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAIgAAAAADJQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAIgAAAAABaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAIgAAAAADeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAACdwAAAAADdwAAAAADMQAAAAAAMQAAAAAAMQAAAAAAdwAAAAAAdwAAAAABdwAAAAADdgAAAAADeQAAAAAAIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAAAdwAAAAADdwAAAAAAdwAAAAADdgAAAAADdgAAAAABdgAAAAADdwAAAAABdwAAAAABdwAAAAACdgAAAAAAIgAAAAAAJQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAdgAAAAACdgAAAAABdgAAAAABdgAAAAABdgAAAAABdgAAAAAAdgAAAAADdgAAAAADdgAAAAAAdgAAAAACdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
           version: 6
         0,-1:
           ind: 0,-1
-          tiles: HgAAAAAAHgAAAAAAHgAAAAADHgAAAAAAGgAAAAACcAAAAAAAcAAAAAAAGgAAAAABGgAAAAAAGgAAAAABHwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAHwAAAAADYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAHwAAAAABcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAXAAAAAAAcAAAAAAAXAAAAAAAHwAAAAABHwAAAAADHwAAAAABXAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAACHwAAAAADHwAAAAABYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAAAHwAAAAACHwAAAAADXAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAAAHwAAAAACHwAAAAABYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAAAHwAAAAABHwAAAAABXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAWwAAAAABWwAAAAADYQAAAAADYQAAAAADYAAAAAAAcAAAAAAAYAAAAAAAYQAAAAACYQAAAAADWwAAAAACWwAAAAADcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAADHwAAAAACHwAAAAABYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAAAHwAAAAACHwAAAAACXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAABHwAAAAAAHwAAAAABYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAADHwAAAAAAHwAAAAACXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAABHwAAAAAAHwAAAAADYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAAAHwAAAAABHwAAAAAAXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAWwAAAAACYQAAAAACYQAAAAABYAAAAAAAcAAAAAAAYAAAAAAAYQAAAAABYQAAAAADWwAAAAABWwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAAAHwAAAAACHwAAAAADYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAAAHwAAAAABHwAAAAAAXAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAHwAAAAADHwAAAAADHwAAAAAAYAAAAAAAcAAAAAAAYAAAAAAAHwAAAAABHwAAAAADHwAAAAAAXAAAAAAAcAAAAAAAbwAAAAAAbwAAAAAAAAAAAAAAAAAAAAAA
+          tiles: IQAAAAAAIQAAAAAAIQAAAAADIQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAHQAAAAABHQAAAAAAHQAAAAABIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAADaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAIgAAAAABeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAZQAAAAAAeQAAAAAAZQAAAAAAIgAAAAABIgAAAAADIgAAAAABZQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAACIgAAAAADIgAAAAABaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAAAIgAAAAACIgAAAAADZQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAAAIgAAAAACIgAAAAABaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAAAIgAAAAABIgAAAAABZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAABZAAAAAADagAAAAADagAAAAADaQAAAAAAeQAAAAAAaQAAAAAAagAAAAACagAAAAADZAAAAAACZAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAADIgAAAAACIgAAAAABaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAAAIgAAAAACIgAAAAACZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAABIgAAAAAAIgAAAAABaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAADIgAAAAAAIgAAAAACZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAABIgAAAAAAIgAAAAADaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAAAIgAAAAABIgAAAAAAZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAZAAAAAACagAAAAACagAAAAABaQAAAAAAeQAAAAAAaQAAAAAAagAAAAABagAAAAADZAAAAAABZAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAAAIgAAAAACIgAAAAADaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAAAIgAAAAABIgAAAAAAZQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAZQAAAAAAIgAAAAADIgAAAAADIgAAAAAAaQAAAAAAeQAAAAAAaQAAAAAAIgAAAAABIgAAAAADIgAAAAAAZQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA
           version: 6
         -1,0:
           ind: -1,0
-          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAIgAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAHwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAHwAAAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAHwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAIgAAAAACHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAJQAAAAACIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
           version: 6
         -1,-1:
           ind: -1,-1
-          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwAAAAAAbwAAAAAAcAAAAAAA
+          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAA
           version: 6
         0,-2:
           ind: 0,-2
-          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAHgAAAAABHgAAAAABHgAAAAAAGgAAAAABGgAAAAADGgAAAAACGgAAAAABGgAAAAACGgAAAAACcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAHgAAAAADHgAAAAABHgAAAAABGgAAAAABGgAAAAAAGgAAAAADGgAAAAACGgAAAAABGgAAAAABHwAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAIQAAAAABIQAAAAABIQAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAABHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAIQAAAAADIQAAAAABIQAAAAABHQAAAAABHQAAAAAAHQAAAAADHQAAAAACHQAAAAABHQAAAAABIgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
           version: 6
         -1,-2:
           ind: -1,-2
-          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAA
+          tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAA
           version: 6
-      type: MapGrid
     - type: Broadphase
-    - bodyStatus: InAir
+    - type: Physics
+      bodyStatus: InAir
       angularDamping: 0.05
       linearDamping: 0.05
       fixedRotation: False
       bodyType: Dynamic
-      type: Physics
-    - fixtures: {}
-      type: Fixtures
+    - type: Fixtures
+      fixtures: {}
     - type: OccluderTree
     - type: SpreaderGrid
     - type: Shuttle
     - type: GridPathfinding
-    - gravityShakeSound: !type:SoundPathSpecifier
+    - type: Gravity
+      gravityShakeSound: !type:SoundPathSpecifier
         path: /Audio/Effects/alert.ogg
-      type: Gravity
-    - chunkCollection:
+    - type: DecalGrid
+      chunkCollection:
         version: 2
         nodes:
         - node:
@@ -291,8 +280,8 @@ entities:
             22: 4,5
             23: 10,4
             24: 10,5
-      type: DecalGrid
-    - version: 2
+    - type: GridAtmosphere
+      version: 2
       data:
         tiles:
           0,0:
@@ -411,27 +400,18 @@ entities:
           - 0
           - 0
         chunkSize: 4
-      type: GridAtmosphere
     - type: GasTileOverlay
     - type: RadiationGridResistance
 - proto: AirAlarm
   entities:
   - uid: 802
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,-4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 793
-      - 411
-      - 400
-      - 410
-      - 402
-      - 790
-      - 789
-      type: DeviceNetwork
-    - devices:
+    - type: DeviceList
+      devices:
       - 793
       - 411
       - 400
@@ -439,14 +419,16 @@ entities:
       - 402
       - 790
       - 789
-      type: DeviceList
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 803
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,-4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
+    - type: DeviceList
+      devices:
       - 794
       - 402
       - 410
@@ -454,23 +436,16 @@ entities:
       - 411
       - 789
       - 790
-      type: DeviceNetwork
-    - devices:
-      - 794
-      - 402
-      - 410
-      - 400
-      - 411
-      - 789
-      - 790
-      type: DeviceList
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 805
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
+    - type: DeviceList
+      devices:
       - 796
       - 409
       - 403
@@ -478,23 +453,16 @@ entities:
       - 408
       - 783
       - 782
-      type: DeviceNetwork
-    - devices:
-      - 796
-      - 409
-      - 403
-      - 401
-      - 408
-      - 783
-      - 782
-      type: DeviceList
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 806
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
+    - type: DeviceList
+      devices:
       - 795
       - 408
       - 401
@@ -502,3473 +470,3520 @@ entities:
       - 409
       - 783
       - 782
-      type: DeviceNetwork
-    - devices:
-      - 795
-      - 408
-      - 401
-      - 403
-      - 409
-      - 783
-      - 782
-      type: DeviceList
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: AirCanister
   entities:
   - uid: 387
     components:
-    - pos: 4.5,-15.5
+    - type: Transform
+      pos: 4.5,-15.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: AirlockCargoGlassLocked
   entities:
   - uid: 248
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,5.5
       parent: 2
-      type: Transform
   - uid: 249
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,5.5
       parent: 2
-      type: Transform
 - proto: AirlockCargoLocked
   entities:
   - uid: 246
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,1.5
       parent: 2
-      type: Transform
   - uid: 247
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,1.5
       parent: 2
-      type: Transform
 - proto: AirlockExternalGlass
   entities:
   - uid: 582
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-5.5
       parent: 2
-      type: Transform
   - uid: 583
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-3.5
       parent: 2
-      type: Transform
   - uid: 584
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-5.5
       parent: 2
-      type: Transform
   - uid: 585
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-3.5
       parent: 2
-      type: Transform
 - proto: AirlockGlassShuttle
   entities:
   - uid: 586
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -2.5,-5.5
       parent: 2
-      type: Transform
   - uid: 587
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -2.5,-3.5
       parent: 2
-      type: Transform
   - uid: 588
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 13.5,-5.5
       parent: 2
-      type: Transform
   - uid: 589
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 13.5,-3.5
       parent: 2
-      type: Transform
 - proto: AirSensor
   entities:
   - uid: 793
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 0.5,-4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 802
-      type: DeviceNetwork
   - uid: 794
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      type: DeviceNetwork
   - uid: 795
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 0.5,4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      type: DeviceNetwork
   - uid: 796
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,4.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 805
-      type: DeviceNetwork
 - proto: APCBasic
   entities:
   - uid: 596
     components:
-    - pos: 1.5,-14.5
+    - type: Transform
+      pos: 1.5,-14.5
       parent: 2
-      type: Transform
   - uid: 597
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,0.5
       parent: 2
-      type: Transform
 - proto: CableApcExtension
   entities:
   - uid: 222
     components:
-    - pos: 11.5,1.5
+    - type: Transform
+      pos: 11.5,1.5
       parent: 2
-      type: Transform
   - uid: 260
     components:
-    - pos: 12.5,1.5
+    - type: Transform
+      pos: 12.5,1.5
       parent: 2
-      type: Transform
   - uid: 283
     components:
-    - pos: 6.5,5.5
+    - type: Transform
+      pos: 6.5,5.5
       parent: 2
-      type: Transform
   - uid: 305
     components:
-    - pos: 12.5,5.5
+    - type: Transform
+      pos: 12.5,5.5
       parent: 2
-      type: Transform
   - uid: 308
     components:
-    - pos: -0.5,1.5
+    - type: Transform
+      pos: -0.5,1.5
       parent: 2
-      type: Transform
   - uid: 309
     components:
-    - pos: -1.5,1.5
+    - type: Transform
+      pos: -1.5,1.5
       parent: 2
-      type: Transform
   - uid: 310
     components:
-    - pos: 8.5,5.5
+    - type: Transform
+      pos: 8.5,5.5
       parent: 2
-      type: Transform
   - uid: 319
     components:
-    - pos: -1.5,5.5
+    - type: Transform
+      pos: -1.5,5.5
       parent: 2
-      type: Transform
   - uid: 320
     components:
-    - pos: 2.5,5.5
+    - type: Transform
+      pos: 2.5,5.5
       parent: 2
-      type: Transform
   - uid: 324
     components:
-    - pos: -1.5,2.5
+    - type: Transform
+      pos: -1.5,2.5
+      parent: 2
+  - uid: 515
+    components:
+    - type: Transform
+      pos: 1.5,-4.5
+      parent: 2
+  - uid: 516
+    components:
+    - type: Transform
+      pos: 2.5,-4.5
+      parent: 2
+  - uid: 517
+    components:
+    - type: Transform
+      pos: 3.5,-4.5
+      parent: 2
+  - uid: 527
+    components:
+    - type: Transform
+      pos: 9.5,-4.5
+      parent: 2
+  - uid: 528
+    components:
+    - type: Transform
+      pos: 8.5,-4.5
+      parent: 2
+  - uid: 529
+    components:
+    - type: Transform
+      pos: 7.5,-4.5
       parent: 2
-      type: Transform
   - uid: 638
     components:
-    - pos: 1.5,-14.5
+    - type: Transform
+      pos: 1.5,-14.5
       parent: 2
-      type: Transform
   - uid: 639
     components:
-    - pos: 1.5,-15.5
+    - type: Transform
+      pos: 1.5,-15.5
       parent: 2
-      type: Transform
   - uid: 640
     components:
-    - pos: 2.5,-17.5
+    - type: Transform
+      pos: 2.5,-17.5
       parent: 2
-      type: Transform
   - uid: 641
     components:
-    - pos: 2.5,-16.5
+    - type: Transform
+      pos: 2.5,-16.5
       parent: 2
-      type: Transform
   - uid: 642
     components:
-    - pos: 3.5,-16.5
+    - type: Transform
+      pos: 3.5,-16.5
       parent: 2
-      type: Transform
   - uid: 643
     components:
-    - pos: 4.5,-16.5
+    - type: Transform
+      pos: 4.5,-16.5
       parent: 2
-      type: Transform
   - uid: 644
     components:
-    - pos: 5.5,-16.5
+    - type: Transform
+      pos: 5.5,-16.5
       parent: 2
-      type: Transform
   - uid: 645
     components:
-    - pos: 6.5,-16.5
+    - type: Transform
+      pos: 6.5,-16.5
       parent: 2
-      type: Transform
   - uid: 646
     components:
-    - pos: 7.5,-16.5
+    - type: Transform
+      pos: 7.5,-16.5
       parent: 2
-      type: Transform
   - uid: 647
     components:
-    - pos: 8.5,-16.5
+    - type: Transform
+      pos: 8.5,-16.5
       parent: 2
-      type: Transform
   - uid: 648
     components:
-    - pos: 9.5,-16.5
+    - type: Transform
+      pos: 9.5,-16.5
       parent: 2
-      type: Transform
   - uid: 649
     components:
-    - pos: 10.5,-16.5
+    - type: Transform
+      pos: 10.5,-16.5
       parent: 2
-      type: Transform
   - uid: 650
     components:
-    - pos: 10.5,-15.5
+    - type: Transform
+      pos: 10.5,-15.5
       parent: 2
-      type: Transform
   - uid: 651
     components:
-    - pos: 8.5,-15.5
+    - type: Transform
+      pos: 8.5,-15.5
       parent: 2
-      type: Transform
   - uid: 652
     components:
-    - pos: 8.5,-14.5
+    - type: Transform
+      pos: 8.5,-14.5
       parent: 2
-      type: Transform
   - uid: 653
     components:
-    - pos: 8.5,-13.5
+    - type: Transform
+      pos: 8.5,-13.5
       parent: 2
-      type: Transform
   - uid: 654
     components:
-    - pos: 2.5,-13.5
+    - type: Transform
+      pos: 2.5,-13.5
       parent: 2
-      type: Transform
   - uid: 655
     components:
-    - pos: 2.5,-14.5
+    - type: Transform
+      pos: 2.5,-14.5
       parent: 2
-      type: Transform
   - uid: 656
     components:
-    - pos: 2.5,-15.5
+    - type: Transform
+      pos: 2.5,-15.5
       parent: 2
-      type: Transform
   - uid: 657
     components:
-    - pos: 2.5,-12.5
+    - type: Transform
+      pos: 2.5,-12.5
       parent: 2
-      type: Transform
   - uid: 658
     components:
-    - pos: 8.5,-12.5
+    - type: Transform
+      pos: 8.5,-12.5
       parent: 2
-      type: Transform
   - uid: 659
     components:
-    - pos: 1.5,-17.5
+    - type: Transform
+      pos: 1.5,-17.5
       parent: 2
-      type: Transform
   - uid: 660
     components:
-    - pos: -0.5,0.5
+    - type: Transform
+      pos: -0.5,0.5
       parent: 2
-      type: Transform
   - uid: 661
     components:
-    - pos: 0.5,0.5
+    - type: Transform
+      pos: 0.5,0.5
       parent: 2
-      type: Transform
   - uid: 662
     components:
-    - pos: 0.5,-0.5
+    - type: Transform
+      pos: 0.5,-0.5
       parent: 2
-      type: Transform
   - uid: 663
     components:
-    - pos: 0.5,2.5
+    - type: Transform
+      pos: 0.5,2.5
       parent: 2
-      type: Transform
   - uid: 664
     components:
-    - pos: 1.5,2.5
+    - type: Transform
+      pos: 1.5,2.5
       parent: 2
-      type: Transform
   - uid: 665
     components:
-    - pos: 2.5,2.5
+    - type: Transform
+      pos: 2.5,2.5
       parent: 2
-      type: Transform
   - uid: 666
     components:
-    - pos: 3.5,2.5
+    - type: Transform
+      pos: 3.5,2.5
       parent: 2
-      type: Transform
   - uid: 667
     components:
-    - pos: 5.5,2.5
+    - type: Transform
+      pos: 5.5,2.5
       parent: 2
-      type: Transform
   - uid: 668
     components:
-    - pos: 4.5,2.5
+    - type: Transform
+      pos: 4.5,2.5
       parent: 2
-      type: Transform
   - uid: 669
     components:
-    - pos: 6.5,2.5
+    - type: Transform
+      pos: 6.5,2.5
       parent: 2
-      type: Transform
   - uid: 670
     components:
-    - pos: 7.5,2.5
+    - type: Transform
+      pos: 7.5,2.5
       parent: 2
-      type: Transform
   - uid: 671
     components:
-    - pos: 8.5,2.5
+    - type: Transform
+      pos: 8.5,2.5
       parent: 2
-      type: Transform
   - uid: 672
     components:
-    - pos: 9.5,2.5
+    - type: Transform
+      pos: 9.5,2.5
       parent: 2
-      type: Transform
   - uid: 673
     components:
-    - pos: 0.5,-1.5
+    - type: Transform
+      pos: 0.5,-1.5
       parent: 2
-      type: Transform
   - uid: 674
     components:
-    - pos: 0.5,1.5
+    - type: Transform
+      pos: 0.5,1.5
       parent: 2
-      type: Transform
   - uid: 675
     components:
-    - pos: 10.5,2.5
+    - type: Transform
+      pos: 10.5,2.5
       parent: 2
-      type: Transform
   - uid: 676
     components:
-    - pos: 10.5,1.5
+    - type: Transform
+      pos: 10.5,1.5
       parent: 2
-      type: Transform
   - uid: 677
     components:
-    - pos: 10.5,0.5
+    - type: Transform
+      pos: 10.5,0.5
       parent: 2
-      type: Transform
   - uid: 678
     components:
-    - pos: 10.5,-0.5
+    - type: Transform
+      pos: 10.5,-0.5
       parent: 2
-      type: Transform
   - uid: 679
     components:
-    - pos: 10.5,-1.5
+    - type: Transform
+      pos: 10.5,-1.5
       parent: 2
-      type: Transform
   - uid: 680
     components:
-    - pos: 10.5,-2.5
+    - type: Transform
+      pos: 10.5,-2.5
       parent: 2
-      type: Transform
   - uid: 681
     components:
-    - pos: 10.5,-3.5
+    - type: Transform
+      pos: 10.5,-3.5
       parent: 2
-      type: Transform
   - uid: 682
     components:
-    - pos: 10.5,-4.5
+    - type: Transform
+      pos: 10.5,-4.5
       parent: 2
-      type: Transform
   - uid: 683
     components:
-    - pos: 10.5,-5.5
+    - type: Transform
+      pos: 10.5,-5.5
       parent: 2
-      type: Transform
   - uid: 684
     components:
-    - pos: 10.5,-6.5
+    - type: Transform
+      pos: 10.5,-6.5
       parent: 2
-      type: Transform
   - uid: 685
     components:
-    - pos: 10.5,-7.5
+    - type: Transform
+      pos: 10.5,-7.5
       parent: 2
-      type: Transform
   - uid: 686
     components:
-    - pos: 10.5,-8.5
+    - type: Transform
+      pos: 10.5,-8.5
       parent: 2
-      type: Transform
   - uid: 687
     components:
-    - pos: 10.5,-9.5
+    - type: Transform
+      pos: 10.5,-9.5
       parent: 2
-      type: Transform
   - uid: 688
     components:
-    - pos: 10.5,-10.5
+    - type: Transform
+      pos: 10.5,-10.5
       parent: 2
-      type: Transform
   - uid: 689
     components:
-    - pos: 9.5,-10.5
+    - type: Transform
+      pos: 9.5,-10.5
       parent: 2
-      type: Transform
   - uid: 690
     components:
-    - pos: 8.5,-10.5
+    - type: Transform
+      pos: 8.5,-10.5
       parent: 2
-      type: Transform
   - uid: 691
     components:
-    - pos: 7.5,-10.5
+    - type: Transform
+      pos: 7.5,-10.5
       parent: 2
-      type: Transform
   - uid: 692
     components:
-    - pos: 6.5,-10.5
+    - type: Transform
+      pos: 6.5,-10.5
       parent: 2
-      type: Transform
   - uid: 693
     components:
-    - pos: 5.5,-10.5
+    - type: Transform
+      pos: 5.5,-10.5
       parent: 2
-      type: Transform
   - uid: 694
     components:
-    - pos: 4.5,-10.5
+    - type: Transform
+      pos: 4.5,-10.5
       parent: 2
-      type: Transform
   - uid: 695
     components:
-    - pos: 3.5,-10.5
+    - type: Transform
+      pos: 3.5,-10.5
       parent: 2
-      type: Transform
   - uid: 696
     components:
-    - pos: 2.5,-10.5
+    - type: Transform
+      pos: 2.5,-10.5
       parent: 2
-      type: Transform
   - uid: 697
     components:
-    - pos: 1.5,-10.5
+    - type: Transform
+      pos: 1.5,-10.5
       parent: 2
-      type: Transform
   - uid: 698
     components:
-    - pos: 0.5,-10.5
+    - type: Transform
+      pos: 0.5,-10.5
       parent: 2
-      type: Transform
   - uid: 699
     components:
-    - pos: 0.5,-9.5
+    - type: Transform
+      pos: 0.5,-9.5
       parent: 2
-      type: Transform
   - uid: 700
     components:
-    - pos: 0.5,-8.5
+    - type: Transform
+      pos: 0.5,-8.5
       parent: 2
-      type: Transform
   - uid: 701
     components:
-    - pos: 0.5,-7.5
+    - type: Transform
+      pos: 0.5,-7.5
       parent: 2
-      type: Transform
   - uid: 702
     components:
-    - pos: 0.5,-6.5
+    - type: Transform
+      pos: 0.5,-6.5
       parent: 2
-      type: Transform
   - uid: 703
     components:
-    - pos: 0.5,-5.5
+    - type: Transform
+      pos: 0.5,-5.5
       parent: 2
-      type: Transform
   - uid: 704
     components:
-    - pos: 0.5,-4.5
+    - type: Transform
+      pos: 0.5,-4.5
       parent: 2
-      type: Transform
   - uid: 705
     components:
-    - pos: 0.5,-3.5
+    - type: Transform
+      pos: 0.5,-3.5
       parent: 2
-      type: Transform
   - uid: 706
     components:
-    - pos: 0.5,-2.5
+    - type: Transform
+      pos: 0.5,-2.5
       parent: 2
-      type: Transform
   - uid: 707
     components:
-    - pos: 1.5,-0.5
+    - type: Transform
+      pos: 1.5,-0.5
       parent: 2
-      type: Transform
   - uid: 708
     components:
-    - pos: 2.5,-0.5
+    - type: Transform
+      pos: 2.5,-0.5
       parent: 2
-      type: Transform
   - uid: 709
     components:
-    - pos: 3.5,-0.5
+    - type: Transform
+      pos: 3.5,-0.5
       parent: 2
-      type: Transform
   - uid: 710
     components:
-    - pos: 4.5,-0.5
+    - type: Transform
+      pos: 4.5,-0.5
       parent: 2
-      type: Transform
   - uid: 711
     components:
-    - pos: 4.5,-8.5
+    - type: Transform
+      pos: 4.5,-8.5
       parent: 2
-      type: Transform
   - uid: 712
     components:
-    - pos: 3.5,-8.5
+    - type: Transform
+      pos: 3.5,-8.5
       parent: 2
-      type: Transform
   - uid: 713
     components:
-    - pos: 2.5,-8.5
+    - type: Transform
+      pos: 2.5,-8.5
       parent: 2
-      type: Transform
   - uid: 714
     components:
-    - pos: 1.5,-8.5
+    - type: Transform
+      pos: 1.5,-8.5
       parent: 2
-      type: Transform
   - uid: 715
     components:
-    - pos: 6.5,-8.5
+    - type: Transform
+      pos: 6.5,-8.5
       parent: 2
-      type: Transform
   - uid: 716
     components:
-    - pos: 7.5,-8.5
+    - type: Transform
+      pos: 7.5,-8.5
       parent: 2
-      type: Transform
   - uid: 717
     components:
-    - pos: 8.5,-8.5
+    - type: Transform
+      pos: 8.5,-8.5
       parent: 2
-      type: Transform
   - uid: 718
     components:
-    - pos: 9.5,-8.5
+    - type: Transform
+      pos: 9.5,-8.5
       parent: 2
-      type: Transform
   - uid: 719
     components:
-    - pos: 9.5,-0.5
+    - type: Transform
+      pos: 9.5,-0.5
       parent: 2
-      type: Transform
   - uid: 720
     components:
-    - pos: 8.5,-0.5
+    - type: Transform
+      pos: 8.5,-0.5
       parent: 2
-      type: Transform
   - uid: 721
     components:
-    - pos: 7.5,-0.5
+    - type: Transform
+      pos: 7.5,-0.5
       parent: 2
-      type: Transform
   - uid: 722
     components:
-    - pos: 6.5,-0.5
+    - type: Transform
+      pos: 6.5,-0.5
       parent: 2
-      type: Transform
   - uid: 723
     components:
-    - pos: 11.5,-3.5
+    - type: Transform
+      pos: 11.5,-3.5
       parent: 2
-      type: Transform
   - uid: 724
     components:
-    - pos: 12.5,-3.5
+    - type: Transform
+      pos: 12.5,-3.5
       parent: 2
-      type: Transform
   - uid: 725
     components:
-    - pos: 13.5,-3.5
+    - type: Transform
+      pos: 13.5,-3.5
       parent: 2
-      type: Transform
   - uid: 726
     components:
-    - pos: 13.5,-5.5
+    - type: Transform
+      pos: 13.5,-5.5
       parent: 2
-      type: Transform
   - uid: 727
     components:
-    - pos: 12.5,-5.5
+    - type: Transform
+      pos: 12.5,-5.5
       parent: 2
-      type: Transform
   - uid: 728
     components:
-    - pos: 11.5,-5.5
+    - type: Transform
+      pos: 11.5,-5.5
       parent: 2
-      type: Transform
   - uid: 729
     components:
-    - pos: -0.5,-5.5
+    - type: Transform
+      pos: -0.5,-5.5
       parent: 2
-      type: Transform
   - uid: 730
     components:
-    - pos: -1.5,-5.5
+    - type: Transform
+      pos: -1.5,-5.5
       parent: 2
-      type: Transform
   - uid: 731
     components:
-    - pos: -2.5,-5.5
+    - type: Transform
+      pos: -2.5,-5.5
       parent: 2
-      type: Transform
   - uid: 732
     components:
-    - pos: -0.5,-3.5
+    - type: Transform
+      pos: -0.5,-3.5
       parent: 2
-      type: Transform
   - uid: 733
     components:
-    - pos: -1.5,-3.5
+    - type: Transform
+      pos: -1.5,-3.5
       parent: 2
-      type: Transform
   - uid: 734
     components:
-    - pos: -2.5,-3.5
+    - type: Transform
+      pos: -2.5,-3.5
       parent: 2
-      type: Transform
   - uid: 739
     components:
-    - pos: 7.5,5.5
+    - type: Transform
+      pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 740
     components:
-    - pos: 5.5,5.5
+    - type: Transform
+      pos: 5.5,5.5
       parent: 2
-      type: Transform
   - uid: 741
     components:
-    - pos: 4.5,5.5
+    - type: Transform
+      pos: 4.5,5.5
       parent: 2
-      type: Transform
   - uid: 742
     components:
-    - pos: 3.5,5.5
+    - type: Transform
+      pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 744
     components:
-    - pos: 1.5,5.5
+    - type: Transform
+      pos: 1.5,5.5
       parent: 2
-      type: Transform
   - uid: 745
     components:
-    - pos: 0.5,5.5
+    - type: Transform
+      pos: 0.5,5.5
       parent: 2
-      type: Transform
   - uid: 747
     components:
-    - pos: 9.5,5.5
+    - type: Transform
+      pos: 9.5,5.5
       parent: 2
-      type: Transform
   - uid: 748
     components:
-    - pos: 10.5,5.5
+    - type: Transform
+      pos: 10.5,5.5
       parent: 2
-      type: Transform
   - uid: 749
     components:
-    - pos: 11.5,5.5
+    - type: Transform
+      pos: 11.5,5.5
       parent: 2
-      type: Transform
   - uid: 751
     components:
-    - pos: 12.5,4.5
+    - type: Transform
+      pos: 12.5,4.5
       parent: 2
-      type: Transform
   - uid: 752
     components:
-    - pos: 12.5,3.5
+    - type: Transform
+      pos: 12.5,3.5
       parent: 2
-      type: Transform
   - uid: 753
     components:
-    - pos: 12.5,2.5
+    - type: Transform
+      pos: 12.5,2.5
       parent: 2
-      type: Transform
   - uid: 757
     components:
-    - pos: -1.5,3.5
+    - type: Transform
+      pos: -1.5,3.5
       parent: 2
-      type: Transform
   - uid: 758
     components:
-    - pos: -1.5,4.5
+    - type: Transform
+      pos: -1.5,4.5
       parent: 2
-      type: Transform
   - uid: 760
     components:
-    - pos: -0.5,5.5
+    - type: Transform
+      pos: -0.5,5.5
       parent: 2
-      type: Transform
 - proto: CableHV
   entities:
   - uid: 591
     components:
-    - pos: 2.5,-17.5
+    - type: Transform
+      pos: 2.5,-17.5
       parent: 2
-      type: Transform
   - uid: 592
     components:
-    - pos: 1.5,-17.5
+    - type: Transform
+      pos: 1.5,-17.5
       parent: 2
-      type: Transform
   - uid: 593
     components:
-    - pos: 3.5,-17.5
+    - type: Transform
+      pos: 3.5,-17.5
       parent: 2
-      type: Transform
   - uid: 594
     components:
-    - pos: 3.5,-16.5
+    - type: Transform
+      pos: 3.5,-16.5
       parent: 2
-      type: Transform
   - uid: 595
     components:
-    - pos: 3.5,-15.5
+    - type: Transform
+      pos: 3.5,-15.5
       parent: 2
-      type: Transform
 - proto: CableMV
   entities:
   - uid: 599
     components:
-    - pos: 3.5,-15.5
+    - type: Transform
+      pos: 3.5,-15.5
       parent: 2
-      type: Transform
   - uid: 600
     components:
-    - pos: 2.5,-15.5
+    - type: Transform
+      pos: 2.5,-15.5
       parent: 2
-      type: Transform
   - uid: 601
     components:
-    - pos: -0.5,0.5
+    - type: Transform
+      pos: -0.5,0.5
       parent: 2
-      type: Transform
   - uid: 602
     components:
-    - pos: 1.5,-14.5
+    - type: Transform
+      pos: 1.5,-14.5
       parent: 2
-      type: Transform
   - uid: 603
     components:
-    - pos: 2.5,-14.5
+    - type: Transform
+      pos: 2.5,-14.5
       parent: 2
-      type: Transform
   - uid: 604
     components:
-    - pos: 2.5,-13.5
+    - type: Transform
+      pos: 2.5,-13.5
       parent: 2
-      type: Transform
   - uid: 605
     components:
-    - pos: 2.5,-12.5
+    - type: Transform
+      pos: 2.5,-12.5
       parent: 2
-      type: Transform
   - uid: 606
     components:
-    - pos: 2.5,-11.5
+    - type: Transform
+      pos: 2.5,-11.5
       parent: 2
-      type: Transform
   - uid: 607
     components:
-    - pos: 1.5,1.5
+    - type: Transform
+      pos: 1.5,1.5
       parent: 2
-      type: Transform
   - uid: 608
     components:
-    - pos: 2.5,1.5
+    - type: Transform
+      pos: 2.5,1.5
       parent: 2
-      type: Transform
   - uid: 609
     components:
-    - pos: 2.5,0.5
+    - type: Transform
+      pos: 2.5,0.5
       parent: 2
-      type: Transform
   - uid: 610
     components:
-    - pos: 2.5,-0.5
+    - type: Transform
+      pos: 2.5,-0.5
       parent: 2
-      type: Transform
   - uid: 611
     components:
-    - pos: 2.5,-1.5
+    - type: Transform
+      pos: 2.5,-1.5
       parent: 2
-      type: Transform
   - uid: 612
     components:
-    - pos: 2.5,-2.5
+    - type: Transform
+      pos: 2.5,-2.5
       parent: 2
-      type: Transform
   - uid: 613
     components:
-    - pos: 2.5,-3.5
+    - type: Transform
+      pos: 2.5,-3.5
       parent: 2
-      type: Transform
   - uid: 614
     components:
-    - pos: 2.5,-4.5
+    - type: Transform
+      pos: 2.5,-4.5
       parent: 2
-      type: Transform
   - uid: 615
     components:
-    - pos: 2.5,-5.5
+    - type: Transform
+      pos: 2.5,-5.5
       parent: 2
-      type: Transform
   - uid: 616
     components:
-    - pos: 2.5,-6.5
+    - type: Transform
+      pos: 2.5,-6.5
       parent: 2
-      type: Transform
   - uid: 617
     components:
-    - pos: 2.5,-7.5
+    - type: Transform
+      pos: 2.5,-7.5
       parent: 2
-      type: Transform
   - uid: 618
     components:
-    - pos: 2.5,-8.5
+    - type: Transform
+      pos: 2.5,-8.5
       parent: 2
-      type: Transform
   - uid: 619
     components:
-    - pos: 2.5,-9.5
+    - type: Transform
+      pos: 2.5,-9.5
       parent: 2
-      type: Transform
   - uid: 620
     components:
-    - pos: 2.5,-10.5
+    - type: Transform
+      pos: 2.5,-10.5
       parent: 2
-      type: Transform
   - uid: 621
     components:
-    - pos: 0.5,1.5
+    - type: Transform
+      pos: 0.5,1.5
       parent: 2
-      type: Transform
   - uid: 622
     components:
-    - pos: -0.5,1.5
+    - type: Transform
+      pos: -0.5,1.5
       parent: 2
-      type: Transform
   - uid: 628
     components:
-    - pos: -0.5,5.5
+    - type: Transform
+      pos: -0.5,5.5
       parent: 2
-      type: Transform
   - uid: 629
     components:
-    - pos: 0.5,5.5
+    - type: Transform
+      pos: 0.5,5.5
       parent: 2
-      type: Transform
   - uid: 630
     components:
-    - pos: 1.5,5.5
+    - type: Transform
+      pos: 1.5,5.5
       parent: 2
-      type: Transform
   - uid: 633
     components:
-    - pos: 6.5,6.5
+    - type: Transform
+      pos: 6.5,6.5
       parent: 2
-      type: Transform
   - uid: 634
     components:
-    - pos: 6.5,5.5
+    - type: Transform
+      pos: 6.5,5.5
       parent: 2
-      type: Transform
   - uid: 635
     components:
-    - pos: 5.5,5.5
+    - type: Transform
+      pos: 5.5,5.5
       parent: 2
-      type: Transform
   - uid: 636
     components:
-    - pos: 4.5,5.5
+    - type: Transform
+      pos: 4.5,5.5
       parent: 2
-      type: Transform
   - uid: 637
     components:
-    - pos: 3.5,5.5
+    - type: Transform
+      pos: 3.5,5.5
       parent: 2
-      type: Transform
 - proto: CableTerminal
   entities:
   - uid: 590
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,-17.5
       parent: 2
-      type: Transform
 - proto: CargoPallet
   entities:
   - uid: 20
     components:
-    - pos: 7.5,0.5
+    - type: Transform
+      pos: 7.5,0.5
       parent: 2
-      type: Transform
   - uid: 21
     components:
-    - pos: 8.5,0.5
+    - type: Transform
+      pos: 8.5,0.5
       parent: 2
-      type: Transform
   - uid: 22
     components:
-    - pos: 9.5,0.5
+    - type: Transform
+      pos: 9.5,0.5
       parent: 2
-      type: Transform
   - uid: 23
     components:
-    - pos: 9.5,-0.5
+    - type: Transform
+      pos: 9.5,-0.5
       parent: 2
-      type: Transform
   - uid: 24
     components:
-    - pos: 8.5,-0.5
+    - type: Transform
+      pos: 8.5,-0.5
       parent: 2
-      type: Transform
   - uid: 25
     components:
-    - pos: 7.5,-0.5
+    - type: Transform
+      pos: 7.5,-0.5
       parent: 2
-      type: Transform
   - uid: 26
     components:
-    - pos: 7.5,-1.5
+    - type: Transform
+      pos: 7.5,-1.5
       parent: 2
-      type: Transform
   - uid: 27
     components:
-    - pos: 8.5,-1.5
+    - type: Transform
+      pos: 8.5,-1.5
       parent: 2
-      type: Transform
   - uid: 28
     components:
-    - pos: 9.5,-1.5
+    - type: Transform
+      pos: 9.5,-1.5
       parent: 2
-      type: Transform
   - uid: 29
     components:
-    - pos: 9.5,-8.5
+    - type: Transform
+      pos: 9.5,-8.5
       parent: 2
-      type: Transform
   - uid: 30
     components:
-    - pos: 8.5,-8.5
+    - type: Transform
+      pos: 8.5,-8.5
       parent: 2
-      type: Transform
   - uid: 31
     components:
-    - pos: 7.5,-8.5
+    - type: Transform
+      pos: 7.5,-8.5
       parent: 2
-      type: Transform
   - uid: 32
     components:
-    - pos: 2.5,-7.5
+    - type: Transform
+      pos: 2.5,-7.5
       parent: 2
-      type: Transform
   - uid: 33
     components:
-    - pos: 7.5,-7.5
+    - type: Transform
+      pos: 7.5,-7.5
       parent: 2
-      type: Transform
   - uid: 34
     components:
-    - pos: 1.5,-8.5
+    - type: Transform
+      pos: 1.5,-8.5
       parent: 2
-      type: Transform
   - uid: 35
     components:
-    - pos: 8.5,-7.5
+    - type: Transform
+      pos: 8.5,-7.5
       parent: 2
-      type: Transform
   - uid: 36
     components:
-    - pos: 1.5,-7.5
+    - type: Transform
+      pos: 1.5,-7.5
       parent: 2
-      type: Transform
   - uid: 37
     components:
-    - pos: 9.5,-7.5
+    - type: Transform
+      pos: 9.5,-7.5
       parent: 2
-      type: Transform
   - uid: 38
     components:
-    - pos: 7.5,-3.5
+    - type: Transform
+      pos: 7.5,-3.5
       parent: 2
-      type: Transform
   - uid: 39
     components:
-    - pos: 7.5,-4.5
+    - type: Transform
+      pos: 7.5,-4.5
       parent: 2
-      type: Transform
   - uid: 40
     components:
-    - pos: 7.5,-5.5
+    - type: Transform
+      pos: 7.5,-5.5
       parent: 2
-      type: Transform
   - uid: 41
     components:
-    - pos: 8.5,-5.5
+    - type: Transform
+      pos: 8.5,-5.5
       parent: 2
-      type: Transform
   - uid: 42
     components:
-    - pos: 8.5,-3.5
+    - type: Transform
+      pos: 8.5,-3.5
       parent: 2
-      type: Transform
   - uid: 43
     components:
-    - pos: 8.5,-4.5
+    - type: Transform
+      pos: 8.5,-4.5
       parent: 2
-      type: Transform
   - uid: 44
     components:
-    - pos: 9.5,-3.5
+    - type: Transform
+      pos: 9.5,-3.5
       parent: 2
-      type: Transform
   - uid: 45
     components:
-    - pos: 9.5,-4.5
+    - type: Transform
+      pos: 9.5,-4.5
       parent: 2
-      type: Transform
   - uid: 46
     components:
-    - pos: 9.5,-5.5
+    - type: Transform
+      pos: 9.5,-5.5
       parent: 2
-      type: Transform
   - uid: 47
     components:
-    - pos: 9.5,-9.5
+    - type: Transform
+      pos: 9.5,-9.5
       parent: 2
-      type: Transform
   - uid: 48
     components:
-    - pos: 8.5,-9.5
+    - type: Transform
+      pos: 8.5,-9.5
       parent: 2
-      type: Transform
   - uid: 49
     components:
-    - pos: 7.5,-9.5
+    - type: Transform
+      pos: 7.5,-9.5
       parent: 2
-      type: Transform
   - uid: 50
     components:
-    - pos: 3.5,-7.5
+    - type: Transform
+      pos: 3.5,-7.5
       parent: 2
-      type: Transform
   - uid: 51
     components:
-    - pos: 3.5,-9.5
+    - type: Transform
+      pos: 3.5,-9.5
       parent: 2
-      type: Transform
   - uid: 52
     components:
-    - pos: 3.5,-8.5
+    - type: Transform
+      pos: 3.5,-8.5
       parent: 2
-      type: Transform
   - uid: 53
     components:
-    - pos: 3.5,-3.5
+    - type: Transform
+      pos: 3.5,-3.5
       parent: 2
-      type: Transform
   - uid: 54
     components:
-    - pos: 3.5,-5.5
+    - type: Transform
+      pos: 3.5,-5.5
       parent: 2
-      type: Transform
   - uid: 55
     components:
-    - pos: 3.5,-4.5
+    - type: Transform
+      pos: 3.5,-4.5
       parent: 2
-      type: Transform
   - uid: 56
     components:
-    - pos: 3.5,-1.5
+    - type: Transform
+      pos: 3.5,-1.5
       parent: 2
-      type: Transform
   - uid: 57
     components:
-    - pos: 2.5,-8.5
+    - type: Transform
+      pos: 2.5,-8.5
       parent: 2
-      type: Transform
   - uid: 58
     components:
-    - pos: 3.5,-0.5
+    - type: Transform
+      pos: 3.5,-0.5
       parent: 2
-      type: Transform
   - uid: 59
     components:
-    - pos: 3.5,0.5
+    - type: Transform
+      pos: 3.5,0.5
       parent: 2
-      type: Transform
   - uid: 60
     components:
-    - pos: 1.5,-9.5
+    - type: Transform
+      pos: 1.5,-9.5
       parent: 2
-      type: Transform
   - uid: 61
     components:
-    - pos: 2.5,-9.5
+    - type: Transform
+      pos: 2.5,-9.5
       parent: 2
-      type: Transform
   - uid: 62
     components:
-    - pos: 2.5,-5.5
+    - type: Transform
+      pos: 2.5,-5.5
       parent: 2
-      type: Transform
   - uid: 63
     components:
-    - pos: 1.5,-5.5
+    - type: Transform
+      pos: 1.5,-5.5
       parent: 2
-      type: Transform
   - uid: 64
     components:
-    - pos: 1.5,-4.5
+    - type: Transform
+      pos: 1.5,-4.5
       parent: 2
-      type: Transform
   - uid: 65
     components:
-    - pos: 2.5,-4.5
+    - type: Transform
+      pos: 2.5,-4.5
       parent: 2
-      type: Transform
   - uid: 66
     components:
-    - pos: 2.5,-3.5
+    - type: Transform
+      pos: 2.5,-3.5
       parent: 2
-      type: Transform
   - uid: 67
     components:
-    - pos: 1.5,-3.5
+    - type: Transform
+      pos: 1.5,-3.5
       parent: 2
-      type: Transform
   - uid: 68
     components:
-    - pos: 2.5,-1.5
+    - type: Transform
+      pos: 2.5,-1.5
       parent: 2
-      type: Transform
   - uid: 69
     components:
-    - pos: 1.5,-1.5
+    - type: Transform
+      pos: 1.5,-1.5
       parent: 2
-      type: Transform
   - uid: 70
     components:
-    - pos: 1.5,-0.5
+    - type: Transform
+      pos: 1.5,-0.5
       parent: 2
-      type: Transform
   - uid: 71
     components:
-    - pos: 2.5,-0.5
+    - type: Transform
+      pos: 2.5,-0.5
       parent: 2
-      type: Transform
   - uid: 72
     components:
-    - pos: 2.5,0.5
+    - type: Transform
+      pos: 2.5,0.5
       parent: 2
-      type: Transform
   - uid: 73
     components:
-    - pos: 1.5,0.5
+    - type: Transform
+      pos: 1.5,0.5
       parent: 2
-      type: Transform
 - proto: CarpetBlack
   entities:
   - uid: 265
     components:
-    - pos: 3.5,5.5
+    - type: Transform
+      pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 266
     components:
-    - pos: 3.5,6.5
+    - type: Transform
+      pos: 3.5,6.5
       parent: 2
-      type: Transform
   - uid: 267
     components:
-    - pos: 4.5,6.5
+    - type: Transform
+      pos: 4.5,6.5
       parent: 2
-      type: Transform
   - uid: 268
     components:
-    - pos: 5.5,6.5
+    - type: Transform
+      pos: 5.5,6.5
       parent: 2
-      type: Transform
   - uid: 269
     components:
-    - pos: 6.5,6.5
+    - type: Transform
+      pos: 6.5,6.5
       parent: 2
-      type: Transform
   - uid: 270
     components:
-    - pos: 7.5,6.5
+    - type: Transform
+      pos: 7.5,6.5
       parent: 2
-      type: Transform
   - uid: 271
     components:
-    - pos: 7.5,5.5
+    - type: Transform
+      pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 272
     components:
-    - pos: 6.5,5.5
+    - type: Transform
+      pos: 6.5,5.5
       parent: 2
-      type: Transform
   - uid: 273
     components:
-    - pos: 5.5,5.5
+    - type: Transform
+      pos: 5.5,5.5
       parent: 2
-      type: Transform
   - uid: 274
     components:
-    - pos: 4.5,5.5
+    - type: Transform
+      pos: 4.5,5.5
       parent: 2
-      type: Transform
   - uid: 275
     components:
-    - pos: 1.5,5.5
+    - type: Transform
+      pos: 1.5,5.5
       parent: 2
-      type: Transform
   - uid: 276
     components:
-    - pos: 1.5,6.5
+    - type: Transform
+      pos: 1.5,6.5
       parent: 2
-      type: Transform
   - uid: 277
     components:
-    - pos: 0.5,6.5
+    - type: Transform
+      pos: 0.5,6.5
       parent: 2
-      type: Transform
   - uid: 278
     components:
-    - pos: 0.5,5.5
+    - type: Transform
+      pos: 0.5,5.5
       parent: 2
-      type: Transform
   - uid: 279
     components:
-    - pos: 9.5,6.5
+    - type: Transform
+      pos: 9.5,6.5
       parent: 2
-      type: Transform
   - uid: 280
     components:
-    - pos: 9.5,5.5
+    - type: Transform
+      pos: 9.5,5.5
       parent: 2
-      type: Transform
   - uid: 281
     components:
-    - pos: 10.5,5.5
+    - type: Transform
+      pos: 10.5,5.5
       parent: 2
-      type: Transform
   - uid: 282
     components:
-    - pos: 10.5,6.5
+    - type: Transform
+      pos: 10.5,6.5
       parent: 2
-      type: Transform
 - proto: CarpetOrange
   entities:
   - uid: 374
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,-15.5
       parent: 2
-      type: Transform
   - uid: 375
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 8.5,-15.5
       parent: 2
-      type: Transform
   - uid: 376
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-15.5
       parent: 2
-      type: Transform
   - uid: 377
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-16.5
       parent: 2
-      type: Transform
   - uid: 378
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 8.5,-16.5
       parent: 2
-      type: Transform
   - uid: 379
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,-16.5
       parent: 2
-      type: Transform
 - proto: Catwalk
   entities:
   - uid: 294
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,4.5
       parent: 2
-      type: Transform
   - uid: 295
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,3.5
       parent: 2
-      type: Transform
   - uid: 296
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,2.5
       parent: 2
-      type: Transform
   - uid: 297
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,4.5
       parent: 2
-      type: Transform
   - uid: 298
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,3.5
       parent: 2
-      type: Transform
   - uid: 299
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,2.5
       parent: 2
-      type: Transform
   - uid: 313
     components:
-    - pos: -1.5,-3.5
+    - type: Transform
+      pos: -1.5,-3.5
       parent: 2
-      type: Transform
   - uid: 560
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,-5.5
       parent: 2
-      type: Transform
   - uid: 562
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,-3.5
       parent: 2
-      type: Transform
   - uid: 563
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,-5.5
       parent: 2
-      type: Transform
 - proto: Chair
   entities:
   - uid: 94
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-11.5
       parent: 2
-      type: Transform
   - uid: 99
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-11.5
       parent: 2
-      type: Transform
   - uid: 138
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 4.5,-11.5
       parent: 2
-      type: Transform
   - uid: 143
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 6.5,-11.5
       parent: 2
-      type: Transform
   - uid: 226
     components:
-    - pos: 8.5,2.5
+    - type: Transform
+      pos: 8.5,2.5
       parent: 2
-      type: Transform
   - uid: 227
     components:
-    - pos: 7.5,2.5
+    - type: Transform
+      pos: 7.5,2.5
       parent: 2
-      type: Transform
   - uid: 394
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-11.5
       parent: 2
-      type: Transform
   - uid: 395
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-11.5
       parent: 2
-      type: Transform
   - uid: 396
     components:
-    - pos: 2.5,2.5
+    - type: Transform
+      pos: 2.5,2.5
       parent: 2
-      type: Transform
   - uid: 405
     components:
-    - pos: 3.5,2.5
+    - type: Transform
+      pos: 3.5,2.5
       parent: 2
-      type: Transform
   - uid: 406
     components:
-    - pos: 4.5,2.5
+    - type: Transform
+      pos: 4.5,2.5
       parent: 2
-      type: Transform
   - uid: 407
     components:
-    - pos: 6.5,2.5
+    - type: Transform
+      pos: 6.5,2.5
       parent: 2
-      type: Transform
 - proto: ChairPilotSeat
   entities:
   - uid: 372
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-16.5
       parent: 2
-      type: Transform
   - uid: 373
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-15.5
       parent: 2
-      type: Transform
 - proto: ChairWood
   entities:
   - uid: 253
     components:
-    - pos: 2.5,5.5
+    - type: Transform
+      pos: 2.5,5.5
       parent: 2
-      type: Transform
   - uid: 254
     components:
-    - pos: 7.5,5.5
+    - type: Transform
+      pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 255
     components:
-    - pos: 3.5,5.5
+    - type: Transform
+      pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 258
     components:
-    - pos: 1.5,5.5
+    - type: Transform
+      pos: 1.5,5.5
       parent: 2
-      type: Transform
   - uid: 263
     components:
-    - pos: 8.5,5.5
+    - type: Transform
+      pos: 8.5,5.5
       parent: 2
-      type: Transform
   - uid: 264
     components:
-    - pos: 9.5,5.5
+    - type: Transform
+      pos: 9.5,5.5
       parent: 2
-      type: Transform
 - proto: ClosetEmergencyFilledRandom
   entities:
   - uid: 354
     components:
-    - pos: 0.5,2.5
+    - type: Transform
+      pos: 0.5,2.5
       parent: 2
-      type: Transform
 - proto: ClosetFireFilled
   entities:
   - uid: 355
     components:
-    - pos: 10.5,2.5
+    - type: Transform
+      pos: 10.5,2.5
+      parent: 2
+- proto: ComputerPalletConsole
+  entities:
+  - uid: 1
+    components:
+    - type: Transform
+      rot: -1.5707963267948966 rad
+      pos: 4.5,-4.5
+      parent: 2
+    missingComponents:
+    - Anchorable
+  - uid: 514
+    components:
+    - type: Transform
+      rot: 1.5707963267948966 rad
+      pos: 6.5,-4.5
       parent: 2
-      type: Transform
+    missingComponents:
+    - Anchorable
 - proto: ConveyorBelt
   entities:
   - uid: 81
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 365
-      type: DeviceLinkSink
   - uid: 82
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 366
-      type: DeviceLinkSink
   - uid: 108
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 12.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 393
-      type: DeviceLinkSink
   - uid: 110
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 365
-      type: DeviceLinkSink
   - uid: 329
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 366
-      type: DeviceLinkSink
   - uid: 330
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 13.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 404
-      type: DeviceLinkSink
   - uid: 331
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 404
-      type: DeviceLinkSink
   - uid: 335
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 12.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 404
-      type: DeviceLinkSink
   - uid: 337
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 393
-      type: DeviceLinkSink
   - uid: 338
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 366
-      type: DeviceLinkSink
   - uid: 339
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 365
-      type: DeviceLinkSink
   - uid: 340
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 13.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 393
-      type: DeviceLinkSink
   - uid: 359
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 393
-      type: DeviceLinkSink
   - uid: 362
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 404
-      type: DeviceLinkSink
   - uid: 363
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,-2.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 365
-      type: DeviceLinkSink
   - uid: 364
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,-6.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 366
-      type: DeviceLinkSink
 - proto: ExtinguisherCabinetFilled
   entities:
   - uid: 360
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,0.5
       parent: 2
-      type: Transform
   - uid: 361
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-9.5
       parent: 2
-      type: Transform
 - proto: Firelock
   entities:
   - uid: 789
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -0.5,1.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
   - uid: 790
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,1.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
 - proto: FirelockEdge
   entities:
   - uid: 786
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,-16.5
       parent: 2
-      type: Transform
 - proto: FirelockGlass
   entities:
   - uid: 782
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,5.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
   - uid: 783
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,5.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
 - proto: GasOutletInjector
   entities:
   - uid: 386
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 5.5,-15.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: GasPassiveVent
   entities:
   - uid: 397
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,-15.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 414
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-13.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: GasPipeBend
   entities:
   - uid: 316
     components:
-    - pos: 7.5,6.5
+    - type: Transform
+      pos: 7.5,6.5
       parent: 2
-      type: Transform
   - uid: 317
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,4.5
       parent: 2
-      type: Transform
   - uid: 318
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 3.5,4.5
       parent: 2
-      type: Transform
   - uid: 322
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,6.5
       parent: 2
-      type: Transform
   - uid: 434
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-17.5
       parent: 2
-      type: Transform
   - uid: 457
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-11.5
       parent: 2
-      type: Transform
   - uid: 458
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 7.5,-8.5
       parent: 2
-      type: Transform
   - uid: 475
     components:
-    - pos: 3.5,-8.5
+    - type: Transform
+      pos: 3.5,-8.5
       parent: 2
-      type: Transform
   - uid: 476
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-10.5
       parent: 2
-      type: Transform
   - uid: 486
     components:
-    - pos: 2.5,1.5
+    - type: Transform
+      pos: 2.5,1.5
       parent: 2
-      type: Transform
   - uid: 487
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,1.5
       parent: 2
-      type: Transform
   - uid: 488
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,5.5
       parent: 2
-      type: Transform
   - uid: 489
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,1.5
       parent: 2
-      type: Transform
   - uid: 490
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 12.5,1.5
       parent: 2
-      type: Transform
   - uid: 491
     components:
-    - pos: 12.5,5.5
+    - type: Transform
+      pos: 12.5,5.5
       parent: 2
-      type: Transform
   - uid: 512
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,4.5
       parent: 2
-      type: Transform
   - uid: 520
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,4.5
       parent: 2
-      type: Transform
   - uid: 522
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,5.5
       parent: 2
-      type: Transform
 - proto: GasPipeStraight
   entities:
   - uid: 223
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 5.5,6.5
       parent: 2
-      type: Transform
   - uid: 241
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 6.5,6.5
       parent: 2
-      type: Transform
   - uid: 250
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,6.5
       parent: 2
-      type: Transform
   - uid: 284
     components:
-    - pos: 7.5,5.5
+    - type: Transform
+      pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 321
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 323
     components:
-    - pos: 3.5,5.5
+    - type: Transform
+      pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 417
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-14.5
       parent: 2
-      type: Transform
   - uid: 418
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-13.5
       parent: 2
-      type: Transform
   - uid: 419
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-12.5
       parent: 2
-      type: Transform
   - uid: 420
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-11.5
       parent: 2
-      type: Transform
   - uid: 421
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-16.5
       parent: 2
-      type: Transform
   - uid: 422
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 6.5,-16.5
       parent: 2
-      type: Transform
   - uid: 423
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 5.5,-16.5
       parent: 2
-      type: Transform
   - uid: 424
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,-16.5
       parent: 2
-      type: Transform
   - uid: 425
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 3.5,-16.5
       parent: 2
-      type: Transform
   - uid: 426
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,-16.5
       parent: 2
-      type: Transform
   - uid: 428
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 7.5,-15.5
       parent: 2
-      type: Transform
   - uid: 430
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-14.5
       parent: 2
-      type: Transform
   - uid: 431
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-13.5
       parent: 2
-      type: Transform
   - uid: 432
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-12.5
       parent: 2
-      type: Transform
   - uid: 435
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-16.5
       parent: 2
-      type: Transform
   - uid: 436
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,-17.5
       parent: 2
-      type: Transform
   - uid: 437
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 4.5,-17.5
       parent: 2
-      type: Transform
   - uid: 438
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 5.5,-17.5
       parent: 2
-      type: Transform
   - uid: 439
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,-17.5
       parent: 2
-      type: Transform
   - uid: 442
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 1.5,-0.5
       parent: 2
-      type: Transform
   - uid: 443
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-1.5
       parent: 2
-      type: Transform
   - uid: 444
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-2.5
       parent: 2
-      type: Transform
   - uid: 445
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-3.5
       parent: 2
-      type: Transform
   - uid: 446
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-4.5
       parent: 2
-      type: Transform
   - uid: 447
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-5.5
       parent: 2
-      type: Transform
   - uid: 448
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-6.5
       parent: 2
-      type: Transform
   - uid: 449
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-7.5
       parent: 2
-      type: Transform
   - uid: 450
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-8.5
       parent: 2
-      type: Transform
   - uid: 451
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-9.5
       parent: 2
-      type: Transform
   - uid: 452
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-10.5
       parent: 2
-      type: Transform
   - uid: 453
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 4.5,-11.5
       parent: 2
-      type: Transform
   - uid: 454
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,-11.5
       parent: 2
-      type: Transform
   - uid: 455
     components:
-    - pos: 5.5,-12.5
+    - type: Transform
+      pos: 5.5,-12.5
       parent: 2
-      type: Transform
   - uid: 456
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 6.5,-11.5
       parent: 2
-      type: Transform
   - uid: 459
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,-8.5
       parent: 2
-      type: Transform
   - uid: 460
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 9.5,-8.5
       parent: 2
-      type: Transform
   - uid: 461
     components:
-    - pos: 7.5,-10.5
+    - type: Transform
+      pos: 7.5,-10.5
       parent: 2
-      type: Transform
   - uid: 462
     components:
-    - pos: 7.5,-9.5
+    - type: Transform
+      pos: 7.5,-9.5
       parent: 2
-      type: Transform
   - uid: 464
     components:
-    - pos: 8.5,-9.5
+    - type: Transform
+      pos: 8.5,-9.5
       parent: 2
-      type: Transform
   - uid: 465
     components:
-    - pos: 8.5,-8.5
+    - type: Transform
+      pos: 8.5,-8.5
       parent: 2
-      type: Transform
   - uid: 466
     components:
-    - pos: 8.5,-7.5
+    - type: Transform
+      pos: 8.5,-7.5
       parent: 2
-      type: Transform
   - uid: 467
     components:
-    - pos: 8.5,-6.5
+    - type: Transform
+      pos: 8.5,-6.5
       parent: 2
-      type: Transform
   - uid: 468
     components:
-    - pos: 8.5,-5.5
+    - type: Transform
+      pos: 8.5,-5.5
       parent: 2
-      type: Transform
   - uid: 469
     components:
-    - pos: 8.5,-4.5
+    - type: Transform
+      pos: 8.5,-4.5
       parent: 2
-      type: Transform
   - uid: 470
     components:
-    - pos: 8.5,-3.5
+    - type: Transform
+      pos: 8.5,-3.5
       parent: 2
-      type: Transform
   - uid: 471
     components:
-    - pos: 8.5,-2.5
+    - type: Transform
+      pos: 8.5,-2.5
       parent: 2
-      type: Transform
   - uid: 472
     components:
-    - pos: 8.5,-1.5
+    - type: Transform
+      pos: 8.5,-1.5
       parent: 2
-      type: Transform
   - uid: 473
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,-0.5
       parent: 2
-      type: Transform
   - uid: 477
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,-8.5
       parent: 2
-      type: Transform
   - uid: 478
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,-8.5
       parent: 2
-      type: Transform
   - uid: 479
     components:
-    - pos: 3.5,-9.5
+    - type: Transform
+      pos: 3.5,-9.5
       parent: 2
-      type: Transform
   - uid: 480
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,-10.5
       parent: 2
-      type: Transform
   - uid: 481
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 6.5,-10.5
       parent: 2
-      type: Transform
   - uid: 482
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 5.5,-10.5
       parent: 2
-      type: Transform
   - uid: 483
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-10.5
       parent: 2
-      type: Transform
   - uid: 484
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,0.5
       parent: 2
-      type: Transform
   - uid: 485
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,0.5
       parent: 2
-      type: Transform
   - uid: 492
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,1.5
       parent: 2
-      type: Transform
   - uid: 493
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,1.5
       parent: 2
-      type: Transform
   - uid: 494
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,1.5
       parent: 2
-      type: Transform
   - uid: 495
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 1.5,1.5
       parent: 2
-      type: Transform
   - uid: 496
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 0.5,1.5
       parent: 2
-      type: Transform
   - uid: 497
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -0.5,1.5
       parent: 2
-      type: Transform
   - uid: 498
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,2.5
       parent: 2
-      type: Transform
   - uid: 499
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,3.5
       parent: 2
-      type: Transform
   - uid: 500
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,4.5
       parent: 2
-      type: Transform
   - uid: 501
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,5.5
       parent: 2
-      type: Transform
   - uid: 502
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,5.5
       parent: 2
-      type: Transform
   - uid: 503
     components:
-    - pos: 12.5,4.5
+    - type: Transform
+      pos: 12.5,4.5
       parent: 2
-      type: Transform
   - uid: 504
     components:
-    - pos: 12.5,3.5
+    - type: Transform
+      pos: 12.5,3.5
       parent: 2
-      type: Transform
   - uid: 505
     components:
-    - pos: 12.5,2.5
+    - type: Transform
+      pos: 12.5,2.5
       parent: 2
-      type: Transform
   - uid: 506
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 11.5,5.5
       parent: 2
-      type: Transform
   - uid: 507
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,5.5
       parent: 2
-      type: Transform
   - uid: 508
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 9.5,5.5
       parent: 2
-      type: Transform
   - uid: 511
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 0.5,5.5
       parent: 2
-      type: Transform
   - uid: 513
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,4.5
       parent: 2
-      type: Transform
   - uid: 519
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,4.5
       parent: 2
-      type: Transform
   - uid: 521
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,5.5
       parent: 2
-      type: Transform
   - uid: 523
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 524
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 4.5,5.5
       parent: 2
-      type: Transform
   - uid: 525
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 5.5,5.5
       parent: 2
-      type: Transform
   - uid: 526
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,5.5
       parent: 2
-      type: Transform
 - proto: GasPipeTJunction
   entities:
   - uid: 415
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 8.5,-16.5
       parent: 2
-      type: Transform
   - uid: 416
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 8.5,-15.5
       parent: 2
-      type: Transform
   - uid: 429
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 2.5,-15.5
       parent: 2
-      type: Transform
   - uid: 433
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,-11.5
       parent: 2
-      type: Transform
   - uid: 440
     components:
-    - pos: 5.5,-11.5
+    - type: Transform
+      pos: 5.5,-11.5
       parent: 2
-      type: Transform
   - uid: 441
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 2.5,-0.5
       parent: 2
-      type: Transform
   - uid: 463
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 8.5,-10.5
       parent: 2
-      type: Transform
   - uid: 474
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,-0.5
       parent: 2
-      type: Transform
   - uid: 509
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,5.5
       parent: 2
-      type: Transform
   - uid: 510
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,5.5
       parent: 2
-      type: Transform
 - proto: GasPort
   entities:
   - uid: 427
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 4.5,-15.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: GasVentPump
   entities:
   - uid: 398
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-17.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 400
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,-8.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 401
     components:
-    - pos: 2.5,6.5
+    - type: Transform
+      pos: 2.5,6.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 402
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-0.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 403
     components:
-    - pos: 8.5,6.5
+    - type: Transform
+      pos: 8.5,6.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 412
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,-16.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: GasVentScrubber
   entities:
   - uid: 399
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,-15.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 408
     components:
-    - pos: 1.5,6.5
+    - type: Transform
+      pos: 1.5,6.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 409
     components:
-    - pos: 9.5,6.5
+    - type: Transform
+      pos: 9.5,6.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 806
-      - 805
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 410
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,-8.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 411
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,-0.5
       parent: 2
-      type: Transform
-    - ShutdownSubscribers:
-      - 803
-      - 802
-      type: DeviceNetwork
+    - type: AtmosDevice
+      joinedGrid: 2
   - uid: 413
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,-17.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: GeneratorRTG
   entities:
   - uid: 367
     components:
-    - pos: 1.5,-17.5
+    - type: Transform
+      pos: 1.5,-17.5
       parent: 2
-      type: Transform
   - uid: 368
     components:
-    - pos: 2.5,-17.5
+    - type: Transform
+      pos: 2.5,-17.5
       parent: 2
-      type: Transform
 - proto: GravityGeneratorMini
   entities:
   - uid: 382
     components:
-    - pos: 0.5,-16.5
+    - type: Transform
+      pos: 0.5,-16.5
       parent: 2
-      type: Transform
 - proto: Grille
   entities:
   - uid: 14
     components:
-    - pos: 5.5,-1.5
+    - type: Transform
+      pos: 5.5,-1.5
       parent: 2
-      type: Transform
   - uid: 15
     components:
-    - pos: 5.5,-2.5
+    - type: Transform
+      pos: 5.5,-2.5
       parent: 2
-      type: Transform
   - uid: 16
     components:
-    - pos: 5.5,-3.5
+    - type: Transform
+      pos: 5.5,-3.5
       parent: 2
-      type: Transform
   - uid: 17
     components:
-    - pos: 5.5,-4.5
+    - type: Transform
+      pos: 5.5,-4.5
       parent: 2
-      type: Transform
   - uid: 18
     components:
-    - pos: 5.5,-5.5
+    - type: Transform
+      pos: 5.5,-5.5
       parent: 2
-      type: Transform
   - uid: 19
     components:
-    - pos: 5.5,-6.5
+    - type: Transform
+      pos: 5.5,-6.5
       parent: 2
-      type: Transform
   - uid: 75
     components:
-    - pos: 5.5,-7.5
+    - type: Transform
+      pos: 5.5,-7.5
       parent: 2
-      type: Transform
   - uid: 146
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,3.5
       parent: 2
-      type: Transform
   - uid: 147
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,3.5
       parent: 2
-      type: Transform
   - uid: 148
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,3.5
       parent: 2
-      type: Transform
   - uid: 149
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,3.5
       parent: 2
-      type: Transform
   - uid: 150
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,3.5
       parent: 2
-      type: Transform
   - uid: 151
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,3.5
       parent: 2
-      type: Transform
   - uid: 153
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,5.5
       parent: 2
-      type: Transform
   - uid: 162
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,3.5
       parent: 2
-      type: Transform
   - uid: 163
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,2.5
       parent: 2
-      type: Transform
   - uid: 164
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,1.5
       parent: 2
-      type: Transform
   - uid: 166
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,0.5
       parent: 2
-      type: Transform
   - uid: 167
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,0.5
       parent: 2
-      type: Transform
   - uid: 168
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,4.5
       parent: 2
-      type: Transform
   - uid: 169
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,1.5
       parent: 2
-      type: Transform
   - uid: 170
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,2.5
       parent: 2
-      type: Transform
   - uid: 171
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,3.5
       parent: 2
-      type: Transform
   - uid: 194
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,-13.5
       parent: 2
-      type: Transform
   - uid: 195
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-13.5
       parent: 2
-      type: Transform
   - uid: 196
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-13.5
       parent: 2
-      type: Transform
   - uid: 197
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,-13.5
       parent: 2
-      type: Transform
   - uid: 224
     components:
-    - pos: 8.5,-13.5
+    - type: Transform
+      pos: 8.5,-13.5
       parent: 2
-      type: Transform
   - uid: 225
     components:
-    - pos: 2.5,-13.5
+    - type: Transform
+      pos: 2.5,-13.5
       parent: 2
-      type: Transform
   - uid: 228
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,4.5
       parent: 2
-      type: Transform
   - uid: 229
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,5.5
       parent: 2
-      type: Transform
   - uid: 303
     components:
-    - pos: 4.5,7.5
+    - type: Transform
+      pos: 4.5,7.5
       parent: 2
-      type: Transform
   - uid: 304
     components:
-    - pos: 3.5,7.5
+    - type: Transform
+      pos: 3.5,7.5
       parent: 2
-      type: Transform
   - uid: 306
     components:
-    - pos: 6.5,7.5
+    - type: Transform
+      pos: 6.5,7.5
       parent: 2
-      type: Transform
   - uid: 307
     components:
-    - pos: 5.5,7.5
+    - type: Transform
+      pos: 5.5,7.5
       parent: 2
-      type: Transform
   - uid: 312
     components:
-    - pos: 7.5,7.5
+    - type: Transform
+      pos: 7.5,7.5
       parent: 2
-      type: Transform
   - uid: 349
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-1.5
       parent: 2
-      type: Transform
   - uid: 350
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-7.5
       parent: 2
-      type: Transform
   - uid: 351
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,-7.5
       parent: 2
-      type: Transform
   - uid: 352
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,-1.5
       parent: 2
-      type: Transform
   - uid: 569
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,-4.5
       parent: 2
-      type: Transform
   - uid: 572
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,-4.5
       parent: 2
-      type: Transform
 - proto: Gyroscope
   entities:
   - uid: 383
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 0.5,-15.5
       parent: 2
-      type: Transform
 - proto: LiquidNitrogenCanister
   entities:
   - uid: 385
     components:
-    - pos: 5.5,-17.5
+    - type: Transform
+      pos: 5.5,-17.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: LiquidOxygenCanister
   entities:
   - uid: 384
     components:
-    - pos: 4.5,-17.5
+    - type: Transform
+      pos: 4.5,-17.5
       parent: 2
-      type: Transform
+    - type: AtmosDevice
+      joinedGrid: 2
 - proto: PlasmaReinforcedWindowDirectional
   entities:
   - uid: 388
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 5.5,-15.5
       parent: 2
-      type: Transform
   - uid: 389
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,-15.5
       parent: 2
-      type: Transform
   - uid: 390
     components:
-    - pos: 6.5,-15.5
+    - type: Transform
+      pos: 6.5,-15.5
       parent: 2
-      type: Transform
   - uid: 391
     components:
-    - pos: 5.5,-15.5
+    - type: Transform
+      pos: 5.5,-15.5
       parent: 2
-      type: Transform
 - proto: PlasticFlapsAirtightClear
   entities:
   - uid: 84
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 13.5,-6.5
       parent: 2
-      type: Transform
   - uid: 86
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -0.5,-2.5
       parent: 2
-      type: Transform
   - uid: 112
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,-6.5
       parent: 2
-      type: Transform
   - uid: 328
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-2.5
       parent: 2
-      type: Transform
   - uid: 332
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -0.5,-6.5
       parent: 2
-      type: Transform
   - uid: 333
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-6.5
       parent: 2
-      type: Transform
   - uid: 334
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 13.5,-2.5
       parent: 2
-      type: Transform
   - uid: 336
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,-2.5
       parent: 2
-      type: Transform
 - proto: PottedPlantRandom
   entities:
   - uid: 139
     components:
-    - pos: 1.5,-11.5
+    - type: Transform
+      pos: 1.5,-11.5
       parent: 2
-      type: Transform
   - uid: 140
     components:
-    - pos: 9.5,-11.5
+    - type: Transform
+      pos: 9.5,-11.5
       parent: 2
-      type: Transform
   - uid: 218
     components:
-    - pos: 1.5,2.5
+    - type: Transform
+      pos: 1.5,2.5
       parent: 2
-      type: Transform
   - uid: 238
     components:
-    - pos: 9.5,2.5
+    - type: Transform
+      pos: 9.5,2.5
       parent: 2
-      type: Transform
   - uid: 314
     components:
-    - pos: 0.5,4.5
+    - type: Transform
+      pos: 0.5,4.5
       parent: 2
-      type: Transform
   - uid: 315
     components:
-    - pos: 10.5,4.5
+    - type: Transform
+      pos: 10.5,4.5
       parent: 2
-      type: Transform
   - uid: 392
     components:
-    - pos: 9.5,-17.5
+    - type: Transform
+      pos: 9.5,-17.5
       parent: 2
-      type: Transform
 - proto: Poweredlight
   entities:
   - uid: 119
     components:
-    - rot: -1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,-0.5
       parent: 2
-      type: Transform
   - uid: 120
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,-0.5
       parent: 2
-      type: Transform
   - uid: 121
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 6.5,-8.5
       parent: 2
-      type: Transform
   - uid: 122
     components:
-    - rot: -1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 4.5,-8.5
       parent: 2
-      type: Transform
   - uid: 123
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-11.5
       parent: 2
-      type: Transform
   - uid: 124
     components:
-    - pos: 5.5,2.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,2.5
       parent: 2
-      type: Transform
   - uid: 216
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-17.5
       parent: 2
-      type: Transform
   - uid: 219
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-17.5
       parent: 2
-      type: Transform
   - uid: 231
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,6.5
       parent: 2
-      type: Transform
   - uid: 232
     components:
-    - rot: -1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 10.5,6.5
       parent: 2
-      type: Transform
   - uid: 233
     components:
-    - rot: -1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: -1.5,3.5
       parent: 2
-      type: Transform
   - uid: 234
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,3.5
       parent: 2
-      type: Transform
 - proto: PoweredSmallLight
   entities:
   - uid: 259
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,-3.5
       parent: 2
-      type: Transform
   - uid: 574
     components:
-    - pos: -1.5,-5.5
+    - type: Transform
+      pos: -1.5,-5.5
       parent: 2
-      type: Transform
   - uid: 580
     components:
-    - pos: 12.5,-5.5
+    - type: Transform
+      pos: 12.5,-5.5
       parent: 2
-      type: Transform
   - uid: 581
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,-3.5
       parent: 2
-      type: Transform
 - proto: Railing
   entities:
   - uid: 286
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 1.5,4.5
       parent: 2
-      type: Transform
   - uid: 287
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,4.5
       parent: 2
-      type: Transform
   - uid: 288
     components:
-    - rot: -1.5707963267948966 rad
+    - type: Transform
+      rot: -1.5707963267948966 rad
       pos: 7.5,4.5
       parent: 2
-      type: Transform
   - uid: 289
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 9.5,4.5
       parent: 2
-      type: Transform
   - uid: 325
     components:
-    - pos: 6.5,5.5
+    - type: Transform
+      pos: 6.5,5.5
       parent: 2
-      type: Transform
   - uid: 326
     components:
-    - pos: 4.5,5.5
+    - type: Transform
+      pos: 4.5,5.5
       parent: 2
-      type: Transform
   - uid: 327
     components:
-    - pos: 5.5,5.5
+    - type: Transform
+      pos: 5.5,5.5
       parent: 2
-      type: Transform
 - proto: RailingCornerSmall
   entities:
   - uid: 290
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,5.5
       parent: 2
-      type: Transform
   - uid: 291
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,5.5
       parent: 2
-      type: Transform
   - uid: 292
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 7.5,5.5
       parent: 2
-      type: Transform
   - uid: 293
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,5.5
       parent: 2
-      type: Transform
 - proto: RandomPosterLegit
   entities:
   - uid: 518
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-14.5
       parent: 2
-      type: Transform
   - uid: 545
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 0.5,3.5
       parent: 2
-      type: Transform
   - uid: 546
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 10.5,3.5
       parent: 2
-      type: Transform
   - uid: 547
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 10.5,-11.5
       parent: 2
-      type: Transform
   - uid: 548
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 0.5,-11.5
       parent: 2
-      type: Transform
   - uid: 549
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,7.5
       parent: 2
-      type: Transform
   - uid: 550
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,7.5
       parent: 2
-      type: Transform
   - uid: 551
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-14.5
       parent: 2
-      type: Transform
 - proto: ReinforcedWindow
   entities:
   - uid: 3
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,4.5
       parent: 2
-      type: Transform
   - uid: 7
     components:
-    - pos: 5.5,-7.5
+    - type: Transform
+      pos: 5.5,-7.5
       parent: 2
-      type: Transform
   - uid: 8
     components:
-    - pos: 5.5,-1.5
+    - type: Transform
+      pos: 5.5,-1.5
       parent: 2
-      type: Transform
   - uid: 9
     components:
-    - pos: 5.5,-2.5
+    - type: Transform
+      pos: 5.5,-2.5
       parent: 2
-      type: Transform
   - uid: 10
     components:
-    - pos: 5.5,-3.5
+    - type: Transform
+      pos: 5.5,-3.5
       parent: 2
-      type: Transform
   - uid: 11
     components:
-    - pos: 5.5,-4.5
+    - type: Transform
+      pos: 5.5,-4.5
       parent: 2
-      type: Transform
   - uid: 12
     components:
-    - pos: 5.5,-5.5
+    - type: Transform
+      pos: 5.5,-5.5
       parent: 2
-      type: Transform
   - uid: 13
     components:
-    - pos: 5.5,-6.5
+    - type: Transform
+      pos: 5.5,-6.5
       parent: 2
-      type: Transform
   - uid: 77
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-13.5
       parent: 2
-      type: Transform
   - uid: 100
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,-13.5
       parent: 2
-      type: Transform
   - uid: 127
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,3.5
       parent: 2
-      type: Transform
   - uid: 128
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,3.5
       parent: 2
-      type: Transform
   - uid: 129
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,3.5
       parent: 2
-      type: Transform
   - uid: 133
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,3.5
       parent: 2
-      type: Transform
   - uid: 134
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,3.5
       parent: 2
-      type: Transform
   - uid: 135
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,3.5
       parent: 2
-      type: Transform
   - uid: 142
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,-13.5
       parent: 2
-      type: Transform
   - uid: 152
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,0.5
       parent: 2
-      type: Transform
   - uid: 154
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,1.5
       parent: 2
-      type: Transform
   - uid: 155
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,3.5
       parent: 2
-      type: Transform
   - uid: 156
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,2.5
       parent: 2
-      type: Transform
   - uid: 157
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,0.5
       parent: 2
-      type: Transform
   - uid: 158
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,5.5
       parent: 2
-      type: Transform
   - uid: 159
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,1.5
       parent: 2
-      type: Transform
   - uid: 160
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,2.5
       parent: 2
-      type: Transform
   - uid: 161
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,3.5
       parent: 2
-      type: Transform
   - uid: 165
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,5.5
       parent: 2
-      type: Transform
   - uid: 182
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,4.5
       parent: 2
-      type: Transform
   - uid: 185
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-13.5
       parent: 2
-      type: Transform
   - uid: 285
     components:
-    - pos: 3.5,7.5
+    - type: Transform
+      pos: 3.5,7.5
       parent: 2
-      type: Transform
   - uid: 300
     components:
-    - pos: 5.5,7.5
+    - type: Transform
+      pos: 5.5,7.5
       parent: 2
-      type: Transform
   - uid: 301
     components:
-    - pos: 6.5,7.5
+    - type: Transform
+      pos: 6.5,7.5
       parent: 2
-      type: Transform
   - uid: 302
     components:
-    - pos: 7.5,7.5
+    - type: Transform
+      pos: 7.5,7.5
       parent: 2
-      type: Transform
   - uid: 311
     components:
-    - pos: 4.5,7.5
+    - type: Transform
+      pos: 4.5,7.5
       parent: 2
-      type: Transform
   - uid: 353
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-1.5
       parent: 2
-      type: Transform
   - uid: 356
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -1.5,-7.5
       parent: 2
-      type: Transform
   - uid: 357
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,-7.5
       parent: 2
-      type: Transform
   - uid: 358
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 12.5,-1.5
       parent: 2
-      type: Transform
   - uid: 555
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,-4.5
       parent: 2
-      type: Transform
   - uid: 558
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,-4.5
       parent: 2
-      type: Transform
 - proto: ShuttersNormalOpen
   entities:
   - uid: 808
     components:
-    - pos: 1.5,3.5
+    - type: Transform
+      pos: 1.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
   - uid: 809
     components:
-    - pos: 2.5,3.5
+    - type: Transform
+      pos: 2.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
   - uid: 810
     components:
-    - pos: 3.5,3.5
+    - type: Transform
+      pos: 3.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
   - uid: 811
     components:
-    - pos: 7.5,3.5
+    - type: Transform
+      pos: 7.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
   - uid: 812
     components:
-    - pos: 8.5,3.5
+    - type: Transform
+      pos: 8.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
   - uid: 813
     components:
-    - pos: 9.5,3.5
+    - type: Transform
+      pos: 9.5,3.5
       parent: 2
-      type: Transform
-    - links:
+    - type: DeviceLinkSink
+      links:
       - 807
-      type: DeviceLinkSink
 - proto: SignalButton
   entities:
   - uid: 807
     components:
-    - pos: 0.5,7.5
+    - type: Transform
+      pos: 0.5,7.5
       parent: 2
-      type: Transform
-    - linkedPorts:
+    - type: DeviceLinkSource
+      linkedPorts:
         808:
         - Pressed: Toggle
         809:
@@ -3981,107 +3996,107 @@ entities:
         - Pressed: Toggle
         813:
         - Pressed: Toggle
-      type: DeviceLinkSource
 - proto: SignSecureMed
   entities:
   - uid: 144
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-8.5
       parent: 2
-      type: Transform
   - uid: 145
     components:
-    - rot: 3.141592653589793 rad
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-0.5
       parent: 2
-      type: Transform
 - proto: SignSpace
   entities:
   - uid: 341
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,-1.5
       parent: 2
-      type: Transform
   - uid: 342
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,-1.5
       parent: 2
-      type: Transform
   - uid: 343
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,-7.5
       parent: 2
-      type: Transform
   - uid: 344
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,-7.5
       parent: 2
-      type: Transform
 - proto: SMESBasic
   entities:
   - uid: 380
     components:
-    - pos: 3.5,-17.5
+    - type: Transform
+      pos: 3.5,-17.5
       parent: 2
-      type: Transform
 - proto: SubstationBasic
   entities:
   - uid: 381
     components:
-    - pos: 3.5,-15.5
+    - type: Transform
+      pos: 3.5,-15.5
       parent: 2
-      type: Transform
 - proto: TableCounterWood
   entities:
   - uid: 251
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,4.5
       parent: 2
-      type: Transform
   - uid: 252
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,4.5
       parent: 2
-      type: Transform
   - uid: 256
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,4.5
       parent: 2
-      type: Transform
   - uid: 257
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 7.5,4.5
       parent: 2
-      type: Transform
   - uid: 261
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 9.5,4.5
       parent: 2
-      type: Transform
   - uid: 262
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,4.5
       parent: 2
-      type: Transform
 - proto: TwoWayLever
   entities:
   - uid: 365
     components:
-    - pos: 0.5,-3.5
+    - type: Transform
+      pos: 0.5,-3.5
       parent: 2
-      type: Transform
-    - linkedPorts:
+    - type: DeviceLinkSource
+      linkedPorts:
         363:
         - Left: Forward
         - Right: Reverse
@@ -4098,13 +4113,13 @@ entities:
         - Left: Forward
         - Right: Reverse
         - Middle: Off
-      type: DeviceLinkSource
   - uid: 366
     components:
-    - pos: 0.5,-5.5
+    - type: Transform
+      pos: 0.5,-5.5
       parent: 2
-      type: Transform
-    - linkedPorts:
+    - type: DeviceLinkSource
+      linkedPorts:
         364:
         - Left: Forward
         - Right: Reverse
@@ -4121,13 +4136,13 @@ entities:
         - Left: Forward
         - Right: Reverse
         - Middle: Off
-      type: DeviceLinkSource
   - uid: 393
     components:
-    - pos: 10.5,-3.5
+    - type: Transform
+      pos: 10.5,-3.5
       parent: 2
-      type: Transform
-    - linkedPorts:
+    - type: DeviceLinkSource
+      linkedPorts:
         359:
         - Left: Forward
         - Right: Reverse
@@ -4144,13 +4159,13 @@ entities:
         - Left: Forward
         - Right: Reverse
         - Middle: Off
-      type: DeviceLinkSource
   - uid: 404
     components:
-    - pos: 10.5,-5.5
+    - type: Transform
+      pos: 10.5,-5.5
       parent: 2
-      type: Transform
-    - linkedPorts:
+    - type: DeviceLinkSource
+      linkedPorts:
         362:
         - Left: Forward
         - Right: Reverse
@@ -4167,584 +4182,783 @@ entities:
         - Left: Forward
         - Right: Reverse
         - Middle: Off
-      type: DeviceLinkSource
 - proto: WallReinforced
   entities:
   - uid: 4
     components:
-    - pos: 5.5,0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,0.5
       parent: 2
-      type: Transform
   - uid: 5
     components:
-    - pos: 5.5,-0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,-0.5
       parent: 2
-      type: Transform
   - uid: 6
     components:
-    - pos: 5.5,-8.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,-8.5
       parent: 2
-      type: Transform
   - uid: 74
     components:
-    - pos: 5.5,-9.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,-9.5
       parent: 2
-      type: Transform
   - uid: 76
     components:
-    - pos: 11.5,2.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,2.5
       parent: 2
-      type: Transform
   - uid: 78
     components:
-    - pos: 11.5,0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,0.5
       parent: 2
-      type: Transform
   - uid: 79
     components:
-    - pos: 11.5,-0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-0.5
       parent: 2
-      type: Transform
   - uid: 80
     components:
-    - pos: 11.5,-1.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-1.5
       parent: 2
-      type: Transform
   - uid: 83
     components:
-    - pos: 11.5,-4.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-4.5
       parent: 2
-      type: Transform
   - uid: 85
     components:
-    - pos: 11.5,-7.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-7.5
       parent: 2
-      type: Transform
   - uid: 87
     components:
-    - pos: 11.5,-8.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-8.5
       parent: 2
-      type: Transform
   - uid: 88
     components:
-    - pos: 11.5,-9.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-9.5
       parent: 2
-      type: Transform
   - uid: 89
     components:
-    - pos: 11.5,-10.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-10.5
       parent: 2
-      type: Transform
   - uid: 90
     components:
-    - pos: 11.5,-11.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,-11.5
       parent: 2
-      type: Transform
   - uid: 91
     components:
-    - pos: 10.5,-11.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 10.5,-11.5
       parent: 2
-      type: Transform
   - uid: 92
     components:
-    - pos: 10.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 10.5,-12.5
       parent: 2
-      type: Transform
   - uid: 93
     components:
-    - pos: 9.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 9.5,-12.5
       parent: 2
-      type: Transform
   - uid: 95
     components:
-    - pos: 7.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 7.5,-12.5
       parent: 2
-      type: Transform
   - uid: 96
     components:
-    - pos: 6.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 6.5,-12.5
       parent: 2
-      type: Transform
   - uid: 97
     components:
-    - pos: 5.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,-12.5
       parent: 2
-      type: Transform
   - uid: 98
     components:
-    - pos: 4.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 4.5,-12.5
       parent: 2
-      type: Transform
   - uid: 101
     components:
-    - pos: 1.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 1.5,-12.5
       parent: 2
-      type: Transform
   - uid: 102
     components:
-    - pos: 0.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 0.5,-12.5
       parent: 2
-      type: Transform
   - uid: 103
     components:
-    - pos: 0.5,-11.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 0.5,-11.5
       parent: 2
-      type: Transform
   - uid: 104
     components:
-    - pos: -0.5,-11.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-11.5
       parent: 2
-      type: Transform
   - uid: 105
     components:
-    - pos: -0.5,-10.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-10.5
       parent: 2
-      type: Transform
   - uid: 106
     components:
-    - pos: -0.5,-8.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-8.5
       parent: 2
-      type: Transform
   - uid: 107
     components:
-    - pos: -0.5,-7.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-7.5
       parent: 2
-      type: Transform
   - uid: 109
     components:
-    - pos: -0.5,-9.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-9.5
       parent: 2
-      type: Transform
   - uid: 111
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,-4.5
       parent: 2
-      type: Transform
   - uid: 113
     components:
-    - pos: -0.5,-4.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-4.5
       parent: 2
-      type: Transform
   - uid: 114
     components:
-    - pos: -0.5,-1.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-1.5
       parent: 2
-      type: Transform
   - uid: 115
     components:
-    - pos: -0.5,-0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,-0.5
       parent: 2
-      type: Transform
   - uid: 116
     components:
-    - pos: -0.5,0.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,0.5
       parent: 2
-      type: Transform
   - uid: 117
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-12.5
       parent: 2
-      type: Transform
   - uid: 118
     components:
-    - pos: -0.5,2.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,2.5
       parent: 2
-      type: Transform
   - uid: 125
     components:
-    - pos: 11.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 11.5,3.5
       parent: 2
-      type: Transform
   - uid: 126
     components:
-    - pos: 10.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 10.5,3.5
       parent: 2
-      type: Transform
   - uid: 130
     components:
-    - pos: 6.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 6.5,3.5
       parent: 2
-      type: Transform
   - uid: 131
     components:
-    - pos: 5.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 5.5,3.5
       parent: 2
-      type: Transform
   - uid: 132
     components:
-    - pos: 4.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 4.5,3.5
       parent: 2
-      type: Transform
   - uid: 136
     components:
-    - pos: 0.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 0.5,3.5
       parent: 2
-      type: Transform
   - uid: 137
     components:
-    - pos: -0.5,3.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: -0.5,3.5
       parent: 2
-      type: Transform
   - uid: 141
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-14.5
       parent: 2
-      type: Transform
   - uid: 172
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,0.5
       parent: 2
-      type: Transform
   - uid: 173
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,0.5
       parent: 2
-      type: Transform
   - uid: 174
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,4.5
       parent: 2
-      type: Transform
   - uid: 175
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 13.5,6.5
       parent: 2
-      type: Transform
   - uid: 176
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 12.5,6.5
       parent: 2
-      type: Transform
   - uid: 177
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,6.5
       parent: 2
-      type: Transform
   - uid: 178
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,4.5
       parent: 2
-      type: Transform
   - uid: 179
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,6.5
       parent: 2
-      type: Transform
   - uid: 180
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -1.5,6.5
       parent: 2
-      type: Transform
   - uid: 181
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,6.5
       parent: 2
-      type: Transform
   - uid: 183
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 0.5,-14.5
       parent: 2
-      type: Transform
   - uid: 184
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,-14.5
       parent: 2
-      type: Transform
   - uid: 186
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 4.5,-14.5
       parent: 2
-      type: Transform
   - uid: 187
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-14.5
       parent: 2
-      type: Transform
   - uid: 188
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 6.5,-14.5
       parent: 2
-      type: Transform
   - uid: 189
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-14.5
       parent: 2
-      type: Transform
   - uid: 190
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-14.5
       parent: 2
-      type: Transform
   - uid: 191
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 10.5,-14.5
       parent: 2
-      type: Transform
   - uid: 192
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,-14.5
       parent: 2
-      type: Transform
   - uid: 193
     components:
-    - pos: 2.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 2.5,-12.5
       parent: 2
-      type: Transform
   - uid: 198
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-14.5
       parent: 2
-      type: Transform
   - uid: 199
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-15.5
       parent: 2
-      type: Transform
   - uid: 200
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-16.5
       parent: 2
-      type: Transform
   - uid: 201
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -0.5,-17.5
       parent: 2
-      type: Transform
   - uid: 202
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 1.5,-18.5
       parent: 2
-      type: Transform
   - uid: 203
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 2.5,-18.5
       parent: 2
-      type: Transform
   - uid: 204
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 3.5,-18.5
       parent: 2
-      type: Transform
   - uid: 205
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 4.5,-18.5
       parent: 2
-      type: Transform
   - uid: 206
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 5.5,-18.5
       parent: 2
-      type: Transform
   - uid: 207
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 6.5,-18.5
       parent: 2
-      type: Transform
   - uid: 208
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 7.5,-18.5
       parent: 2
-      type: Transform
   - uid: 209
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 8.5,-18.5
       parent: 2
-      type: Transform
   - uid: 210
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 9.5,-18.5
       parent: 2
-      type: Transform
   - uid: 211
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 10.5,-18.5
       parent: 2
-      type: Transform
   - uid: 212
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 10.5,-17.5
       parent: 2
-      type: Transform
   - uid: 213
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-17.5
       parent: 2
-      type: Transform
   - uid: 214
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-16.5
       parent: 2
-      type: Transform
   - uid: 215
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 11.5,-15.5
       parent: 2
-      type: Transform
   - uid: 217
     components:
-    - pos: 8.5,-12.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 8.5,-12.5
       parent: 2
-      type: Transform
   - uid: 220
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 0.5,-18.5
       parent: 2
-      type: Transform
   - uid: 221
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: 0.5,-17.5
       parent: 2
-      type: Transform
   - uid: 230
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -0.5,7.5
       parent: 2
-      type: Transform
   - uid: 235
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 0.5,7.5
       parent: 2
-      type: Transform
   - uid: 236
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 1.5,7.5
       parent: 2
-      type: Transform
   - uid: 237
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 2.5,7.5
       parent: 2
-      type: Transform
   - uid: 239
     components:
-    - pos: 8.5,-14.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 8.5,-14.5
       parent: 2
-      type: Transform
   - uid: 240
     components:
-    - pos: 2.5,-14.5
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      pos: 2.5,-14.5
       parent: 2
-      type: Transform
   - uid: 242
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 8.5,7.5
       parent: 2
-      type: Transform
   - uid: 243
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 9.5,7.5
       parent: 2
-      type: Transform
   - uid: 244
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 10.5,7.5
       parent: 2
-      type: Transform
   - uid: 245
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 11.5,7.5
       parent: 2
-      type: Transform
   - uid: 345
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 13.5,-7.5
       parent: 2
-      type: Transform
   - uid: 346
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-7.5
       parent: 2
-      type: Transform
   - uid: 347
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: -2.5,-1.5
       parent: 2
-      type: Transform
   - uid: 348
     components:
-    - rot: 1.5707963267948966 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 13.5,-1.5
       parent: 2
-      type: Transform
   - uid: 553
     components:
-    - rot: 3.141592653589793 rad
+    - type: MetaData
+      flags: PvsPriority
+    - type: Transform
+      rot: 3.141592653589793 rad
       pos: -2.5,-4.5
       parent: 2
-      type: Transform
 - proto: WindoorSecureEngineeringLocked
   entities:
   - uid: 371
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,-16.5
       parent: 2
-      type: Transform
 - proto: WindowReinforcedDirectional
   entities:
   - uid: 369
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,-15.5
       parent: 2
-      type: Transform
   - uid: 370
     components:
-    - rot: 1.5707963267948966 rad
+    - type: Transform
+      rot: 1.5707963267948966 rad
       pos: 3.5,-17.5
       parent: 2
-      type: Transform
 ...
index 571469253b83d8008fa96c79a650acccd560f69a..acfd2f896a16ac4e232864663be3b770116813ba 100644 (file)
       path: /Maps/Shuttles/cargo.yml
     - type: GridSpawn
       groups:
+        trade:
+          addComponents:
+            - type: ProtectedGrid
+            - type: TradeStation
+          paths:
+            - /Maps/Shuttles/trading_outpost.yml
         mining:
           paths:
           - /Maps/Shuttles/mining.yml
+        # Spawn last
         ruins:
           hide: true
           nameGrid: true