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