From 1594dff64815ea9bb61199cfb8e63d6ebb4b609f Mon Sep 17 00:00:00 2001 From: rhailrake <49613070+rhailrake@users.noreply.github.com> Date: Sat, 3 Feb 2024 11:39:40 +0000 Subject: [PATCH] Gulag v2 (#21) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Components или чет типо того * Gulag System * Shared shit * Cvars * Ban manager update * Ghost roles shit * No ooc for gulaged * Connection manager update * Gulag proto shit * Merge conflict issue * Fixing shit * Фикс говняхи плюс QOL * Pendos loc * better loc * More qol * ctrl+s issue * No bwoink for banned * Ore shit * MAP!!!!!! --------- Co-authored-by: Mona Hmiza --- .../Administration/Managers/BanManager.cs | 54 +- .../Administration/Managers/IBanManager.cs | 3 + .../Administration/Systems/BwoinkSystem.cs | 9 + Content.Server/Chat/Commands/OOCCommand.cs | 7 + .../Connection/ConnectionManager.cs | 3 +- Content.Server/Ghost/Roles/GhostRoleSystem.cs | 8 + .../Components/GulagBoundComponent.cs | 9 + .../Components/GulagFillContainerComponent.cs | 10 + .../Components/GulagOreProcessorComponent.cs | 14 + .../_Miracle/GulagSystem/GulagSystem.cs | 462 ++ Content.Shared/_Miracle/Cvars/MiracleCvars.cs | 12 + .../_Miracle/GulagSystem/SharedGulagSystem.cs | 6 + .../Locale/en-US/_miracle/gulag/gulag.ftl | 15 + .../Locale/ru-RU/_miracle/gulag/gulag.ftl | 14 + Resources/Maps/Gulags/gulag.yml | 5079 +++++++++++++++++ .../_Miracle/Biomes/gulag_biomes.yml | 83 + .../_Miracle/Entities/Containers/gulag.yml | 6 + .../Structures/Machine/gulag_machines.yml | 38 + 18 files changed, 5828 insertions(+), 4 deletions(-) create mode 100644 Content.Server/_Miracle/Components/GulagBoundComponent.cs create mode 100644 Content.Server/_Miracle/Components/GulagFillContainerComponent.cs create mode 100644 Content.Server/_Miracle/Components/GulagOreProcessorComponent.cs create mode 100644 Content.Server/_Miracle/GulagSystem/GulagSystem.cs create mode 100644 Content.Shared/_Miracle/Cvars/MiracleCvars.cs create mode 100644 Content.Shared/_Miracle/GulagSystem/SharedGulagSystem.cs create mode 100644 Resources/Locale/en-US/_miracle/gulag/gulag.ftl create mode 100644 Resources/Locale/ru-RU/_miracle/gulag/gulag.ftl create mode 100644 Resources/Maps/Gulags/gulag.yml create mode 100644 Resources/Prototypes/_Miracle/Biomes/gulag_biomes.yml create mode 100644 Resources/Prototypes/_Miracle/Entities/Containers/gulag.yml create mode 100644 Resources/Prototypes/_Miracle/Entities/Structures/Machine/gulag_machines.yml diff --git a/Content.Server/Administration/Managers/BanManager.cs b/Content.Server/Administration/Managers/BanManager.cs index e921dd23a3..12daf9addd 100644 --- a/Content.Server/Administration/Managers/BanManager.cs +++ b/Content.Server/Administration/Managers/BanManager.cs @@ -4,6 +4,7 @@ using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; +using Content.Server._Miracle.GulagSystem; using Content.Server.Chat.Managers; using Content.Server.Database; using Content.Server.GameTicking; @@ -47,6 +48,7 @@ public sealed class BanManager : IBanManager, IPostInjectInit public const string UnknownServer = "unknown"; private readonly Dictionary> _cachedRoleBans = new(); + private readonly Dictionary> _cachedServerBans = new(); // Miracle edit public void Initialize() { @@ -63,6 +65,7 @@ public sealed class BanManager : IBanManager, IPostInjectInit var netChannel = e.Session.Channel; ImmutableArray? hwId = netChannel.UserData.HWId.Length == 0 ? null : netChannel.UserData.HWId; await CacheDbRoleBans(e.Session.UserId, netChannel.RemoteEndPoint.Address, hwId); + await CacheDbServerBans(e.Session.UserId, netChannel.RemoteEndPoint.Address, hwId); //Miracle edit SendRoleBans(e.Session); } @@ -97,6 +100,17 @@ public sealed class BanManager : IBanManager, IPostInjectInit _cachedRoleBans[userId] = userRoleBans; } + //Miracle edit start + private async Task CacheDbServerBans(NetUserId userId, IPAddress? address = null, ImmutableArray? hwId = null) + { + var serverBans = await _db.GetServerBansAsync(address, userId, hwId, false); + + var userServerBans = new HashSet(serverBans); + + _cachedServerBans[userId] = userServerBans; + } + //Miracle edit end + public void Restart() { // Clear out players that have disconnected. @@ -110,6 +124,7 @@ public sealed class BanManager : IBanManager, IPostInjectInit foreach (var player in toRemove) { _cachedRoleBans.Remove(player); + _cachedServerBans.Remove(player); //Miracle edit } // Check for expired bans @@ -117,6 +132,13 @@ public sealed class BanManager : IBanManager, IPostInjectInit { roleBans.RemoveWhere(ban => DateTimeOffset.Now > ban.ExpirationTime); } + + //Miracle edit start + foreach (var serverBan in _cachedServerBans.Values) + { + serverBan.RemoveWhere(ban => DateTimeOffset.Now > ban.ExpirationTime); + } + //Miracle edit end } #region Server Bans @@ -182,6 +204,12 @@ public sealed class BanManager : IBanManager, IPostInjectInit _sawmill.Info(logMessage); _chat.SendAdminAlert(logMessage); + + if (banDef.UserId.HasValue) + { + _cachedServerBans.GetOrNew(banDef.UserId.Value).Add(banDef); + } + // If we're not banning a player we don't care about disconnecting people if (target == null) return; @@ -189,12 +217,32 @@ public sealed class BanManager : IBanManager, IPostInjectInit // Is the player connected? if (!_playerManager.TryGetSessionById(target.Value, out var targetPlayer)) return; - // If they are, kick them - var message = banDef.FormatBanMessage(_cfg, _localizationManager); - targetPlayer.Channel.Disconnect(message); + // Kick when perma + if (banDef.ExpirationTime == null) + { + var message = banDef.FormatBanMessage(_cfg, _localizationManager); + targetPlayer.Channel.Disconnect(message); + } + else // Teleport to gulag + { + var gulag = _systems.GetEntitySystem(); + gulag.SendToGulag(targetPlayer); + } } #endregion + //Miracle edit start + public HashSet GetServerBans(NetUserId userId) + { + if (_cachedServerBans.TryGetValue(userId, out var bans)) + { + return bans; + } + + return new HashSet(); + } + //Miracle edit end + #region Job Bans // If you are trying to remove timeOfBan, please don't. It's there because the note system groups role bans by time, reason and banning admin. // Removing it will clutter the note list. Please also make sure that department bans are applied to roles with the same DateTimeOffset. diff --git a/Content.Server/Administration/Managers/IBanManager.cs b/Content.Server/Administration/Managers/IBanManager.cs index 648571ba7f..aa3d6be575 100644 --- a/Content.Server/Administration/Managers/IBanManager.cs +++ b/Content.Server/Administration/Managers/IBanManager.cs @@ -2,6 +2,7 @@ using System.Collections.Immutable; using System.Net; using System.Threading.Tasks; using Content.Server._White.PandaSocket.Interfaces; +using Content.Server.Database; using Content.Shared.Database; using Content.Shared.Roles; using Robust.Shared.Network; @@ -28,6 +29,8 @@ public interface IBanManager public HashSet? GetRoleBans(NetUserId playerUserId); public HashSet? GetJobBans(NetUserId playerUserId); + public HashSet GetServerBans(NetUserId userId); // Miracle edit + /// /// Creates a job ban for the specified target, username or GUID /// diff --git a/Content.Server/Administration/Systems/BwoinkSystem.cs b/Content.Server/Administration/Systems/BwoinkSystem.cs index 2753017e24..6fb2dc7767 100644 --- a/Content.Server/Administration/Systems/BwoinkSystem.cs +++ b/Content.Server/Administration/Systems/BwoinkSystem.cs @@ -6,6 +6,7 @@ using System.Text.Json.Nodes; using System.Text.Json.Serialization; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Content.Server._Miracle.GulagSystem; using Content.Server.Administration.Managers; using Content.Server.GameTicking; using Content.Server._White.PandaSocket.Main; @@ -35,6 +36,8 @@ namespace Content.Server.Administration.Systems [Dependency] private readonly GameTicker _gameTicker = default!; [Dependency] private readonly SharedMindSystem _minds = default!; [Dependency] private readonly PandaWebManager _pandaWeb = default!; // WD + [Dependency] private readonly GulagSystem _gulagSystem = default!; // Miracle + private ISawmill _sawmill = default!; private readonly HttpClient _httpClient = new(); @@ -389,6 +392,12 @@ namespace Content.Server.Administration.Systems base.OnBwoinkTextMessage(message, eventArgs); var senderSession = eventArgs.SenderSession; + //No bwoink for banned + if (_gulagSystem.IsUserGulaged(senderSession.UserId, out _)) + { + return; + } + // TODO: Sanitize text? // Confirm that this person is actually allowed to send a message here. var personalChannel = senderSession.UserId == message.UserId; diff --git a/Content.Server/Chat/Commands/OOCCommand.cs b/Content.Server/Chat/Commands/OOCCommand.cs index 36f6303fbd..f9cc79f355 100644 --- a/Content.Server/Chat/Commands/OOCCommand.cs +++ b/Content.Server/Chat/Commands/OOCCommand.cs @@ -1,3 +1,4 @@ +using Content.Server._Miracle.GulagSystem; using Content.Server.Chat.Managers; using Content.Shared.Administration; using Robust.Shared.Console; @@ -19,6 +20,12 @@ namespace Content.Server.Chat.Commands return; } + var gulag = EntitySystem.Get(); + if (gulag.IsUserGulaged(shell.Player.UserId, out var _)) + { + return; + } + if (args.Length < 1) return; diff --git a/Content.Server/Connection/ConnectionManager.cs b/Content.Server/Connection/ConnectionManager.cs index ef7e9fa327..7669bd470f 100644 --- a/Content.Server/Connection/ConnectionManager.cs +++ b/Content.Server/Connection/ConnectionManager.cs @@ -1,4 +1,5 @@ using System.Collections.Immutable; +using System.Linq; using System.Threading.Tasks; using Content.Server.Database; using Content.Server.GameTicking; @@ -170,7 +171,7 @@ namespace Content.Server.Connection //WD-EDIT var bans = await _db.GetServerBansAsync(addr, userId, hwId, includeUnbanned: false); - if (bans.Count > 0) + if (bans.Count > 0 && bans.Any(x=> x.ExpirationTime == null)) //Miracle edit { var firstBan = bans[0]; var message = firstBan.FormatBanMessage(_cfg, _loc); diff --git a/Content.Server/Ghost/Roles/GhostRoleSystem.cs b/Content.Server/Ghost/Roles/GhostRoleSystem.cs index cd04e3fb37..76d5364f2c 100644 --- a/Content.Server/Ghost/Roles/GhostRoleSystem.cs +++ b/Content.Server/Ghost/Roles/GhostRoleSystem.cs @@ -1,3 +1,4 @@ +using Content.Server._Miracle.GulagSystem; using Content.Server.Administration.Logs; using Content.Server.EUI; using Content.Server.Ghost.Roles.Components; @@ -37,6 +38,8 @@ namespace Content.Server.Ghost.Roles [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly SharedMindSystem _mindSystem = default!; [Dependency] private readonly SharedRoleSystem _roleSystem = default!; + [Dependency] private readonly GulagSystem _gulagSystem = default!; + private uint _nextRoleIdentifier; private bool _needsUpdateGhostRoleCount = true; @@ -201,6 +204,11 @@ namespace Content.Server.Ghost.Roles if (!_ghostRoles.TryGetValue(identifier, out var role)) return; + if (_gulagSystem.IsUserGulaged(player.UserId, out _)) + { + return; + } + var ev = new TakeGhostRoleEvent(player); RaiseLocalEvent(role, ref ev); diff --git a/Content.Server/_Miracle/Components/GulagBoundComponent.cs b/Content.Server/_Miracle/Components/GulagBoundComponent.cs new file mode 100644 index 0000000000..8723f2e33e --- /dev/null +++ b/Content.Server/_Miracle/Components/GulagBoundComponent.cs @@ -0,0 +1,9 @@ +using Content.Shared._Miracle.GulagSystem; + +namespace Content.Server._Miracle.Components; + +[RegisterComponent] +[Access(typeof(SharedGulagSystem))] +public sealed partial class GulagBoundComponent : Component +{ +} diff --git a/Content.Server/_Miracle/Components/GulagFillContainerComponent.cs b/Content.Server/_Miracle/Components/GulagFillContainerComponent.cs new file mode 100644 index 0000000000..451a7f883d --- /dev/null +++ b/Content.Server/_Miracle/Components/GulagFillContainerComponent.cs @@ -0,0 +1,10 @@ +using Content.Shared._Miracle.GulagSystem; + +namespace Content.Server._Miracle.Components; + +[RegisterComponent] +[Access(typeof(SharedGulagSystem))] +public sealed partial class GulagFillContainerComponent : Component +{ + +} diff --git a/Content.Server/_Miracle/Components/GulagOreProcessorComponent.cs b/Content.Server/_Miracle/Components/GulagOreProcessorComponent.cs new file mode 100644 index 0000000000..bf4128a2b8 --- /dev/null +++ b/Content.Server/_Miracle/Components/GulagOreProcessorComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared._Miracle.GulagSystem; +using Robust.Shared.Network; + +namespace Content.Server._Miracle.Components; + +[RegisterComponent] +[Access(typeof(SharedGulagSystem))] + +public sealed partial class GulagOreProcessorComponent : Component +{ + //I hate my life + public NetUserId? LastInteractedUser; +} + diff --git a/Content.Server/_Miracle/GulagSystem/GulagSystem.cs b/Content.Server/_Miracle/GulagSystem/GulagSystem.cs new file mode 100644 index 0000000000..80edfc1ee3 --- /dev/null +++ b/Content.Server/_Miracle/GulagSystem/GulagSystem.cs @@ -0,0 +1,462 @@ +using System.Linq; +using Content.Server._Miracle.Components; +using Content.Server.Administration.Managers; +using Content.Server.Administration.Systems; +using Content.Server.Cargo.Components; +using Content.Server.Cargo.Systems; +using Content.Server.Chat.Managers; +using Content.Server.Database; +using Content.Server.GameTicking; +using Content.Server.GameTicking.Events; +using Content.Server.KillTracking; +using Content.Server.Materials; +using Content.Server.Mind; +using Content.Server.Parallax; +using Content.Server.Preferences.Managers; +using Content.Server.Spawners.Components; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; +using Content.Server.Storage.EntitySystems; +using Content.Shared._Miracle.Cvars; +using Content.Shared._Miracle.GulagSystem; +using Content.Shared.GameTicking; +using Content.Shared.Hands.Components; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Materials; +using Content.Shared.Parallax.Biomes; +using Content.Shared.Popups; +using Content.Shared.Preferences; +using Content.Shared.Throwing; +using Robust.Server.GameObjects; +using Robust.Server.Player; +using Robust.Shared.Configuration; +using Robust.Shared.Map; +using Robust.Shared.Network; +using Robust.Shared.Physics.Systems; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server._Miracle.GulagSystem; + +public sealed partial class GulagSystem : SharedGulagSystem +{ + //1 second = 10 points + [Dependency] private readonly AdminSystem _adminSystem = default!; + [Dependency] private readonly IBanManager _banManager = default!; + [Dependency] private readonly BiomeSystem _biome = default!; + [Dependency] private readonly IServerDbManager _db = default!; + [Dependency] private readonly SharedHandsSystem _handsSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; + [Dependency] private readonly MapLoaderSystem _mapLoader = default!; + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly SharedPhysicsSystem _physicsSystem = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly StationSpawningSystem _spawningSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly CargoSystem _cargoSystem = default!; + [Dependency] private readonly MaterialStorageSystem _materialStorageSystem = default!; + [Dependency] private readonly EntityStorageSystem _entityStorageSystem = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly IServerPreferencesManager _preferencesManager = default!; + [Dependency] private readonly IChatManager _chatManager = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; + [Dependency] private readonly StationSystem _stationSystem = default!; + + + private readonly List> _gulagBiomes = new() + { + "GulagBiome" + }; + + private readonly List _gulagMaps = new() + { + "/Maps/Gulags/gulag.yml" + }; + + private double _timeToPointsRatio; + + private MapId? _activeMap; + private EntityUid? _mapEntity; + + private readonly TimeSpan _safeguardUpdateRate = TimeSpan.FromSeconds(10); + private DateTime _nextSafeguardUpdate = DateTime.MinValue; + + private readonly TimeSpan _shuttleFillUpdateRate = TimeSpan.FromMinutes(10); + private DateTime _nextShuttleFillUpdate = DateTime.MinValue; + + private List _spawnCoords = new(); + + private readonly Dictionary _pointsPerPlayer = new(); + private readonly Dictionary, int> _gulagMaterialStorage = new(); + + public override void Initialize() + { + base.Initialize(); + + _cfg.OnValueChanged(MiracleCvars.GulagPointsToTimeRatio, newValue => _timeToPointsRatio = newValue, true); + + SubscribeLocalEvent(OnRoundStarting); + SubscribeLocalEvent(OnRoundRestart); + + SubscribeLocalEvent(BeforeSpawn); + + SubscribeLocalEvent(OnOreInserted); + SubscribeLocalEvent(OnInteract, before: new[] {typeof(MaterialStorageSystem)}); + + SubscribeLocalEvent(OnGulagContainerSpawned); + SubscribeLocalEvent(OnKillReported); + + SubscribeLocalEvent(OnJoinedLobby); + //safeguard + SubscribeLocalEvent(OnPlayerAttached); + } + + private void OnJoinedLobby(PlayerJoinedLobbyEvent ev) + { + if(IsUserGulaged(ev.PlayerSession.UserId, out _)) + { + _chatManager.DispatchServerMessage(ev.PlayerSession, Loc.GetString("gulag-chat-join-message")); + } + } + + private void OnKillReported(ref KillReportedEvent ev) + { + if (!HasComp(ev.Entity)) + { + return; + } + + if (ev.Primary is not KillPlayerSource source) + { + return; + } + + var player = source.PlayerId; + + if (!IsUserGulaged(player, out var ban)) + { + return; + } + + var banDef = ban.First(); + var newExpirationTime = banDef.ExpirationTime!.Value.DateTime + TimeSpan.FromDays(1); + _db.EditServerBan(banDef.Id!.Value, banDef.Reason, banDef.Severity, newExpirationTime, banDef.UserId!.Value, DateTime.Now); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + Safeguard(); + TryFillCargoShuttle(); + } + + private void OnGulagContainerSpawned(EntityUid uid, GulagFillContainerComponent component, MapInitEvent args) + { + var coords = Transform(uid).Coordinates; + + foreach (var (materialId, value) in _gulagMaterialStorage) + { + var materialEntities = _materialStorageSystem.SpawnMultipleFromMaterial(value, materialId, coords); + + foreach (var material in materialEntities) + { + _entityStorageSystem.Insert(material, uid); + } + } + + _gulagMaterialStorage.Clear(); + } + + private void TryFillCargoShuttle() + { + if (_nextShuttleFillUpdate > DateTime.Now) + { + return; + } + + if (_gulagMaterialStorage.Count == 0) + { + return; + } + + var station = GetMainStation(); + + if (!station.HasValue) + { + return; + } + + if (!TryComp(station.Value, out var comp)) + { + return; + } + + _cargoSystem.AddAndApproveOrder(station.Value, "CrateGulag", 0, 1, Loc.GetString("gulag-sender"), + Loc.GetString("gulag-order-description"), Loc.GetString("gulag-order-destination"), comp); + + _nextShuttleFillUpdate = DateTime.Now + _shuttleFillUpdateRate; + } + + // Just check if we need to bring back somehow escaped players + private void Safeguard() + { + if (_nextSafeguardUpdate > DateTime.Now) + { + return; + } + + var querry = EntityQueryEnumerator(); + + while (querry.MoveNext(out var uid, out var gulagbound, out var xform)) + { + if (xform.MapID != _activeMap) + { + SendToGulag(uid); + } + } + + _nextSafeguardUpdate = DateTime.Now + _safeguardUpdateRate; + } + + public void SendToGulag(ICommonSession session) + { + var playerEntity = session.AttachedEntity; + + if (_mapEntity == null) + { + _adminSystem.Erase(session); + return; + } + + if (playerEntity.HasValue) + { + SendToGulag(playerEntity.Value); + } + else + { + SpawnPlayer(session, (HumanoidCharacterProfile)_preferencesManager.GetPreferences(session.UserId).SelectedCharacter); + } + + var banDef = _banManager.GetServerBans(session.UserId).First(); + var message = Loc.GetString("gulag-greetings-message", ("BanTime", $"{(banDef.ExpirationTime! - DateTime.Now).Value.TotalHours}")); + + _chatManager.DispatchServerMessage(session, message); + } + + private void OnInteract(EntityUid uid, GulagOreProcessorComponent component, InteractUsingEvent args) + { + //It wasn't player who interacted with the entity + if (!_playerManager.TryGetSessionByEntity(args.User, out var session)) + { + return; + } + + component.LastInteractedUser = session.UserId; + Log.Info("OnInteract raised"); + } + + private void OnOreInserted(EntityUid uid, GulagOreProcessorComponent component, MaterialEntityInsertedEvent args) + { + var storageComponent = Comp(uid); + var userId = component.LastInteractedUser!.Value; + + foreach (var (materialId, currentVolume ) in storageComponent.Storage) + { + var materialPrototype = _prototypeManager.Index(materialId.Id); + var stackVolume = _materialStorageSystem.GetSheetVolume(materialPrototype); + var actualOreCount = currentVolume / stackVolume; + + var points = materialPrototype.Price * actualOreCount; + + _pointsPerPlayer[userId] = points + _pointsPerPlayer.GetValueOrDefault(userId); + + _gulagMaterialStorage[materialId] = currentVolume + _gulagMaterialStorage.GetValueOrDefault(materialId); + _materialStorageSystem.TrySetMaterialAmount(uid, materialId, 0); + + } + + var time = ConvertPointsToTime(_pointsPerPlayer[userId]); + _popupSystem.PopupEntity(Loc.GetString("gulag-ban-time-changed", ("Time", $"{time.TotalSeconds}")), uid, PopupType.Medium); + } + + public bool IsUserGulaged(NetUserId playerId, out HashSet bans) + { + bans = _banManager.GetServerBans(playerId); + + return bans.Count != 0; + } + + private void SendToGulag(EntityUid playerEntity) + { + if (_inventorySystem.TryGetContainerSlotEnumerator(playerEntity, out var enumerator)) + { + while (enumerator.NextItem(out var item, out var slot)) + { + if (_inventorySystem.TryUnequip(playerEntity, playerEntity, slot.Name, true, true)) + _physicsSystem.ApplyAngularImpulse(item, ThrowingSystem.ThrowAngularImpulse); + } + } + + if (TryComp(playerEntity, out HandsComponent? hands)) + { + foreach (var hand in _handsSystem.EnumerateHands(playerEntity, hands)) + { + _handsSystem.TryDrop(playerEntity, hand, checkActionBlocker: false, doDropInteraction: false, + handsComp: hands); + } + } + + var newPosition = GetSpawnPosition(); + + _transformSystem.SetCoordinates(playerEntity, newPosition); + _transformSystem.AttachToGridOrMap(playerEntity); + + EnsureComp(playerEntity); + EnsureComp(playerEntity); + } + + private void SpawnPlayer(ICommonSession session, HumanoidCharacterProfile profile) + { + var newMind = _mind.CreateMind(session.UserId, profile.Name); + _mind.SetUserId(newMind, session.UserId); + + var coords = GetSpawnPosition(); + var mob = _spawningSystem.SpawnPlayerMob(coords, null, profile, null); + + _mind.TransferTo(newMind, mob); + + EnsureComp(mob); + EnsureComp(mob); + } + + private void OnPlayerAttached(PlayerAttachedEvent ev) + { + var bans = _banManager.GetServerBans(ev.Player.UserId); + + if (bans.Count == 0) + { + return; + } + + var xform = Transform(ev.Entity); + + if (xform.MapID != _activeMap) + { + SendToGulag(ev.Player); + } + } + + private void BeforeSpawn(PlayerBeforeSpawnEvent ev) + { + var bans = _banManager.GetServerBans(ev.Player.UserId); + + if (bans.Count == 0) + { + return; + } + + ev.Handled = true; + SendToGulag(ev.Player); + } + + private void OnRoundRestart(RoundRestartCleanupEvent ev) + { + foreach (var (player, points) in _pointsPerPlayer) + { + var banDef = _banManager.GetServerBans(player).FirstOrDefault(); + if (banDef == null) + { + continue; + } + + var newExpirationTime = banDef.ExpirationTime!.Value.DateTime - ConvertPointsToTime(points); + + _db.EditServerBan(banDef.Id!.Value, banDef.Reason, banDef.Severity, newExpirationTime, banDef.UserId!.Value, DateTime.Now); + } + + _activeMap = null!; + _mapEntity = null!; + } + + private void OnRoundStarting(RoundStartingEvent ev) + { + //Spawn Gulag + var mapId = _mapManager.CreateMap(); + var mapUid = _mapManager.GetMapEntityId(mapId); + + _metaData.SetEntityName(mapUid, "Gulag Map"); + + _mapManager.AddUninitializedMap(mapId); + + var pickedMap = _random.Pick(_gulagMaps); + if (!_mapLoader.TryLoad(mapId, pickedMap, out var uids)) + { + _mapManager.DeleteMap(mapId); + Log.Error("Can't spawn map with path {0}", pickedMap); + return; + } + + foreach (var uid in uids) + { + _metaData.SetEntityName(uid, $"Gulag grid {uid}"); + } + + var pickerBiome = _random.Pick(_gulagBiomes); + _biome.EnsurePlanet(mapUid, _prototypeManager.Index(pickerBiome)); + + _mapManager.DoMapInitialize(mapId); + _activeMap = mapId; + _mapEntity = mapUid; + + + //Item2 = TransformComponent + _spawnCoords = EntityQuery() + .Where(x => x.Item2.MapID == mapId) + .Select(x => x.Item2.Coordinates) + .ToList(); + } + + private TimeSpan ConvertPointsToTime(double points) + { + return TimeSpan.FromSeconds(points / _timeToPointsRatio); + } + + private EntityCoordinates GetSpawnPosition() + { + return _spawnCoords.Count != 0 ? _random.Pick(_spawnCoords) : Transform(_mapEntity!.Value).Coordinates; + } + + private EntityUid? GetMainStation() + { + var stations = _stationSystem.GetStations(); + + foreach (var station in stations) + { + var stationData = Comp(station); + + if (!HasComp(station)) + { + continue; + } + + foreach (var grid in stationData.Grids) + { + if (Transform(grid).MapID == _gameTicker.DefaultMap) + { + return station; + } + } + } + + return null!; + } +} diff --git a/Content.Shared/_Miracle/Cvars/MiracleCvars.cs b/Content.Shared/_Miracle/Cvars/MiracleCvars.cs new file mode 100644 index 0000000000..1dabe6dbb1 --- /dev/null +++ b/Content.Shared/_Miracle/Cvars/MiracleCvars.cs @@ -0,0 +1,12 @@ +using Robust.Shared.Configuration; + +namespace Content.Shared._Miracle.Cvars; + +[CVarDefs] +public sealed class MiracleCvars +{ + // / = + // 100 / 10 = 10 + public static readonly CVarDef GulagPointsToTimeRatio = CVarDef.Create("miracle.gulag.points_to_time", + 10.0d, CVar.SERVERONLY, " / = "); +} diff --git a/Content.Shared/_Miracle/GulagSystem/SharedGulagSystem.cs b/Content.Shared/_Miracle/GulagSystem/SharedGulagSystem.cs new file mode 100644 index 0000000000..a58e2792fd --- /dev/null +++ b/Content.Shared/_Miracle/GulagSystem/SharedGulagSystem.cs @@ -0,0 +1,6 @@ +namespace Content.Shared._Miracle.GulagSystem; + +public abstract class SharedGulagSystem : EntitySystem +{ + +} diff --git a/Resources/Locale/en-US/_miracle/gulag/gulag.ftl b/Resources/Locale/en-US/_miracle/gulag/gulag.ftl new file mode 100644 index 0000000000..ab2bc918be --- /dev/null +++ b/Resources/Locale/en-US/_miracle/gulag/gulag.ftl @@ -0,0 +1,15 @@ +ent-GulagOreProcessor = Ore Receiver. + .desc = Load ore, reduce your sentence. + +ent-CrateGulag = Ore Container. + .desc = Ore straight from NanoTrasen's mining facility. + +gulag-sender = NanoTrasen Mining Facility. +gulag-order-description = With love from our miners. +gulag-order-destination = Supply Department. + +gulag-greetings-message = You have been sent to the correctional labor camp for violating local laws. You can shorten your sentence by mining ore and shipping it to the ore receiver. Remaining punishment time: { $BanTime } hours. +gulag-ban-time-changed = Your sentence has been reduced by { $Time } seconds. + +gulag-chat-join-message = Welcome to the server. Due to violations committed by you, it has been decided to give you the opportunity to redeem your guilt through hard labor. After the start of the game round, you will be sent to the correctional labor camp, where you will be tasked with mining ore to reduce the duration of your punishment. It is important to note that killing your fellow unfortunate will increase your sentence by 1 day. We wish you luck in serving your sentence! + diff --git a/Resources/Locale/ru-RU/_miracle/gulag/gulag.ftl b/Resources/Locale/ru-RU/_miracle/gulag/gulag.ftl new file mode 100644 index 0000000000..d4b2a2cff5 --- /dev/null +++ b/Resources/Locale/ru-RU/_miracle/gulag/gulag.ftl @@ -0,0 +1,14 @@ +ent-GulagOreProcessor = Приемник руды с трудового лагеря. + .desc = Загружаешь руду, сокращаешь срок. + +ent-CrateGulag = Контейнер руды. + .desc = Руда прямиком с горнодобывающего предприятия НаноТразена. + +gulag-sender = Горнодобывающее предприятие НаноТразен. +gulag-order-description = С любовью от наших горняков. +gulag-order-destination = Отдел снабжения. + +gulag-greetings-message = Вы были отправлены в исправительный лагерь за нарушение местных законов. Вы можете сократить свой срок добывая руду и отгружая её в приёмник руды. Оставшийся срок наказания { $BanTime } часов. +gulag-ban-time-changed = Ваш срок был сокращен на { $Time } секунд. + +gulag-chat-join-message = Добро пожаловать на сервер. В связи с нарушениями, совершенными вами, было принято решение предоставить вам возможность искупить свою вину через тяжелый труд. После начала игрового раунда вы будете отправлены в исправительный лагерь, где вам предстоит добывать руду, чтобы сократить срок своего наказания. Важно отметить, что за убийство своего собрата по несчастью ваш срок будет увеличен на 1 день. Желаем вам удачи в исполнении наказания! diff --git a/Resources/Maps/Gulags/gulag.yml b/Resources/Maps/Gulags/gulag.yml new file mode 100644 index 0000000000..aff9a426f4 --- /dev/null +++ b/Resources/Maps/Gulags/gulag.yml @@ -0,0 +1,5079 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 15: FloorBar + 43: FloorElevatorShaft + 45: FloorFreezer + 59: FloorHydro + 61: FloorKitchen + 63: FloorLino + 65: FloorMetalDiamond + 78: FloorReinforced + 80: FloorRockVault + 90: FloorSteel + 101: FloorSteelMono + 105: FloorTechMaint + 114: FloorWhiteMono + 117: FloorWhitePavementVertical + 118: FloorWhitePlastic + 122: Plating +entities: +- proto: "" + entities: + - uid: 818 + components: + - type: MetaData + name: NT-EM Terminal + - type: Transform + parent: invalid + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAaQAAAAAAaQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAKwAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAAKwAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAAegAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAAegAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAATgAAAAAAegAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAKwAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAKwAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAUAAAAAAAUAAAAAAAWgAAAAAAWgAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAUAAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAKwAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAKwAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: egAAAAAAZQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAZQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAegAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAKwAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAegAAAAAALQAAAAAALQAAAAAALQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAKwAAAAAALQAAAAAALQAAAAAALQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAOwAAAAAAegAAAAAALQAAAAAALQAAAAAALQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdgAAAAAALQAAAAAALQAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdgAAAAAALQAAAAAALQAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAPwAAAAAAPwAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAALQAAAAAALQAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAALQAAAAAALQAAAAAAKwAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAWgAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAWgAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAdgAAAAAAdgAAAAAAegAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAZQAAAAAAegAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAZQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAZQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAZQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAZQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAZQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAZQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAUAAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAWgAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAdQAAAAAAcgAAAAAAegAAAAAAUAAAAAAAUAAAAAAAWgAAAAAAWgAAAAAAUAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAKwAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAKwAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: BecomesStation + id: Empty + - type: OccluderTree + - type: Shuttle + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: [] + - type: GridAtmosphere + 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 + 1: 52360 + -2,-3: + 0: 6007 + 1: 59528 + -2,-2: + 0: 61713 + 1: 3822 + -2,-1: + 0: 65535 + -1,-2: + 0: 61440 + 1: 4095 + 0,1: + 0: 4095 + 1: 61440 + 1,0: + 0: 65535 + 1,1: + 0: 959 + 1: 15424 + 2,0: + 0: 65535 + 2,1: + 0: 255 + 1: 3840 + 3,0: + 0: 4915 + 3,1: + 0: 1 + 1: 272 + 0,-2: + 0: 61440 + 1: 4095 + 1,-3: + 0: 53247 + 1: 12288 + 1,-2: + 0: 64716 + 1: 819 + 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 + 1: 2048 + -3,0: + 0: 65535 + -3,1: + 0: 255 + 1: 3840 + -2,0: + 0: 65535 + -2,1: + 0: 3823 + 1: 57616 + -1,1: + 0: 4095 + 1: 61440 + 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 + 0,2: + 1: 4095 + 1,2: + 1: 819 + -2,2: + 1: 3822 + -1,2: + 1: 4095 + -1,-4: + 1: 65399 + -1,-3: + 1: 65535 + 0,-3: + 1: 65535 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: SpreaderGrid + - type: GridPathfinding +- proto: AirlockCargoGlass + entities: + - uid: 257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 818 + - uid: 623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 818 +- proto: AirlockEngineering + entities: + - uid: 394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,4.5 + parent: 818 +- proto: AirlockEngineeringGlass + entities: + - uid: 403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,2.5 + parent: 818 + - uid: 504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 818 +- proto: AirlockExternalGlass + entities: + - uid: 349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-8.5 + parent: 818 + - uid: 499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-13.5 + parent: 818 + - uid: 501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-8.5 + parent: 818 + - uid: 621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-13.5 + parent: 818 + - uid: 622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-12.5 + parent: 818 +- proto: AirlockFreezer + entities: + - uid: 225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,4.5 + parent: 818 + - uid: 406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,2.5 + parent: 818 +- proto: AirlockGlass + entities: + - uid: 224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 818 + - uid: 376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-4.5 + parent: 818 + - uid: 378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,2.5 + parent: 818 + - uid: 629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 818 +- proto: AirlockMaint + entities: + - uid: 37 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 818 + - uid: 432 + components: + - type: Transform + pos: 11.5,-8.5 + parent: 818 + - uid: 559 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 818 + - uid: 560 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 818 + - uid: 730 + components: + - type: Transform + pos: 8.5,-8.5 + parent: 818 +- proto: AirlockMedicalGlass + entities: + - uid: 390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-0.5 + parent: 818 + - uid: 620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-1.5 + parent: 818 +- proto: APCBasic + entities: + - uid: 63 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 818 + - uid: 68 + components: + - type: Transform + pos: -2.5,6.5 + parent: 818 + - uid: 208 + components: + - type: Transform + pos: 8.5,1.5 + parent: 818 + - uid: 236 + components: + - type: Transform + pos: -9.5,2.5 + parent: 818 + - uid: 357 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 818 +- proto: Autolathe + entities: + - uid: 299 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 818 +- proto: Beaker + entities: + - uid: 450 + components: + - type: Transform + pos: -9.429423,-4.3809457 + parent: 818 + - uid: 551 + components: + - type: Transform + pos: -9.84146,-4.181733 + parent: 818 +- proto: Bed + entities: + - uid: 449 + components: + - type: Transform + pos: -11.5,0.5 + parent: 818 + - uid: 694 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 818 + - uid: 716 + components: + - type: Transform + pos: -7.5,0.5 + parent: 818 + - uid: 717 + components: + - type: Transform + pos: -11.5,1.5 + parent: 818 + - uid: 718 + components: + - type: Transform + pos: -7.5,1.5 + parent: 818 + - uid: 750 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 818 + - uid: 776 + components: + - type: Transform + pos: 5.5,-10.5 + parent: 818 +- proto: BedsheetBrown + entities: + - uid: 649 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 818 +- proto: BedsheetGreen + entities: + - uid: 485 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 818 +- proto: BedsheetYellow + entities: + - uid: 601 + components: + - type: Transform + pos: 5.5,-10.5 + parent: 818 +- proto: BoozeDispenser + entities: + - uid: 19 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-1.5 + parent: 818 +- proto: BoxLightMixed + entities: + - uid: 298 + components: + - type: Transform + pos: -3.5144212,5.4934597 + parent: 818 + - uid: 308 + components: + - type: Transform + pos: -2.4935877,5.4517646 + parent: 818 +- proto: Bucket + entities: + - uid: 554 + components: + - type: Transform + pos: 3.0467796,3.6710248 + parent: 818 +- proto: CableApcExtension + entities: + - uid: 1 + components: + - type: Transform + pos: -10.5,-5.5 + parent: 818 + - uid: 4 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 818 + - uid: 6 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 818 + - uid: 15 + components: + - type: Transform + pos: -10.5,-2.5 + parent: 818 + - uid: 21 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 818 + - uid: 35 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 818 + - uid: 38 + components: + - type: Transform + pos: 8.5,1.5 + parent: 818 + - uid: 41 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 818 + - uid: 42 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 818 + - uid: 62 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 818 + - uid: 144 + components: + - type: Transform + pos: -5.5,4.5 + parent: 818 + - uid: 145 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 818 + - uid: 146 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 818 + - uid: 147 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 818 + - uid: 148 + components: + - type: Transform + pos: -1.5,4.5 + parent: 818 + - uid: 149 + components: + - type: Transform + pos: -4.5,4.5 + parent: 818 + - uid: 150 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 818 + - uid: 151 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 818 + - uid: 152 + components: + - type: Transform + pos: -4.5,1.5 + parent: 818 + - uid: 153 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 818 + - uid: 154 + components: + - type: Transform + pos: -4.5,-12.5 + parent: 818 + - uid: 155 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 818 + - uid: 189 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 818 + - uid: 200 + components: + - type: Transform + pos: -1.5,5.5 + parent: 818 + - uid: 202 + components: + - type: Transform + pos: -1.5,1.5 + parent: 818 + - uid: 219 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 818 + - uid: 220 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 818 + - uid: 226 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 818 + - uid: 228 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 818 + - uid: 230 + components: + - type: Transform + pos: -8.5,0.5 + parent: 818 + - uid: 234 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 818 + - uid: 235 + components: + - type: Transform + pos: -9.5,1.5 + parent: 818 + - uid: 237 + components: + - type: Transform + pos: -8.5,4.5 + parent: 818 + - uid: 240 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 818 + - uid: 248 + components: + - type: Transform + pos: -9.5,4.5 + parent: 818 + - uid: 254 + components: + - type: Transform + pos: -2.5,5.5 + parent: 818 + - uid: 280 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 818 + - uid: 309 + components: + - type: Transform + pos: 11.5,-8.5 + parent: 818 + - uid: 310 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 818 + - uid: 311 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 818 + - uid: 312 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 818 + - uid: 313 + components: + - type: Transform + pos: 5.5,-10.5 + parent: 818 + - uid: 314 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 818 + - uid: 315 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 818 + - uid: 316 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 818 + - uid: 317 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 818 + - uid: 318 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 818 + - uid: 319 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 818 + - uid: 320 + components: + - type: Transform + pos: 5.5,-9.5 + parent: 818 + - uid: 321 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 818 + - uid: 322 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 818 + - uid: 323 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 818 + - uid: 324 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 818 + - uid: 329 + components: + - type: Transform + pos: -10.5,-6.5 + parent: 818 + - uid: 333 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 818 + - uid: 337 + components: + - type: Transform + pos: -4.5,2.5 + parent: 818 + - uid: 338 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 818 + - uid: 348 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 818 + - uid: 350 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 818 + - uid: 351 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 818 + - uid: 354 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 818 + - uid: 355 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 818 + - uid: 358 + components: + - type: Transform + pos: -1.5,2.5 + parent: 818 + - uid: 359 + components: + - type: Transform + pos: -1.5,0.5 + parent: 818 + - uid: 379 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 818 + - uid: 380 + components: + - type: Transform + pos: -3.5,-12.5 + parent: 818 + - uid: 381 + components: + - type: Transform + pos: -1.5,-12.5 + parent: 818 + - uid: 382 + components: + - type: Transform + pos: -8.5,-4.5 + parent: 818 + - uid: 384 + components: + - type: Transform + pos: -3.5,1.5 + parent: 818 + - uid: 385 + components: + - type: Transform + pos: -9.5,0.5 + parent: 818 + - uid: 386 + components: + - type: Transform + pos: -9.5,-6.5 + parent: 818 + - uid: 387 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 818 + - uid: 398 + components: + - type: Transform + pos: -3.5,5.5 + parent: 818 + - uid: 399 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 818 + - uid: 400 + components: + - type: Transform + pos: -4.5,3.5 + parent: 818 + - uid: 401 + components: + - type: Transform + pos: -3.5,3.5 + parent: 818 + - uid: 404 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 818 + - uid: 405 + components: + - type: Transform + pos: -8.5,-1.5 + parent: 818 + - uid: 415 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 818 + - uid: 416 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 818 + - uid: 417 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 818 + - uid: 419 + components: + - type: Transform + pos: -7.5,4.5 + parent: 818 + - uid: 424 + components: + - type: Transform + pos: 3.5,4.5 + parent: 818 + - uid: 429 + components: + - type: Transform + pos: 11.5,-9.5 + parent: 818 + - uid: 430 + components: + - type: Transform + pos: 8.5,-8.5 + parent: 818 + - uid: 431 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 818 + - uid: 443 + components: + - type: Transform + pos: 8.5,-7.5 + parent: 818 + - uid: 444 + components: + - type: Transform + pos: 8.5,-9.5 + parent: 818 + - uid: 445 + components: + - type: Transform + pos: -10.5,-9.5 + parent: 818 + - uid: 446 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 818 + - uid: 458 + components: + - type: Transform + pos: -2.5,1.5 + parent: 818 + - uid: 459 + components: + - type: Transform + pos: -9.5,2.5 + parent: 818 + - uid: 460 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 818 + - uid: 461 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 818 + - uid: 462 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 818 + - uid: 463 + components: + - type: Transform + pos: -10.5,-12.5 + parent: 818 + - uid: 465 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 818 + - uid: 470 + components: + - type: Transform + pos: 10.5,-6.5 + parent: 818 + - uid: 472 + components: + - type: Transform + pos: 5.5,0.5 + parent: 818 + - uid: 475 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 818 + - uid: 488 + components: + - type: Transform + pos: 10.5,2.5 + parent: 818 + - uid: 489 + components: + - type: Transform + pos: 8.5,4.5 + parent: 818 + - uid: 490 + components: + - type: Transform + pos: 10.5,0.5 + parent: 818 + - uid: 491 + components: + - type: Transform + pos: 6.5,4.5 + parent: 818 + - uid: 498 + components: + - type: Transform + pos: -8.5,-5.5 + parent: 818 + - uid: 502 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 818 + - uid: 507 + components: + - type: Transform + pos: -6.5,4.5 + parent: 818 + - uid: 509 + components: + - type: Transform + pos: -1.5,3.5 + parent: 818 + - uid: 512 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 818 + - uid: 561 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 818 + - uid: 562 + components: + - type: Transform + pos: -7.5,-12.5 + parent: 818 + - uid: 570 + components: + - type: Transform + pos: -9.5,-9.5 + parent: 818 + - uid: 571 + components: + - type: Transform + pos: -10.5,-10.5 + parent: 818 + - uid: 575 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 818 + - uid: 576 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 818 + - uid: 577 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 818 + - uid: 588 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 818 + - uid: 590 + components: + - type: Transform + pos: -10.5,-11.5 + parent: 818 + - uid: 592 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 818 + - uid: 593 + components: + - type: Transform + pos: 7.5,0.5 + parent: 818 + - uid: 594 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 818 + - uid: 609 + components: + - type: Transform + pos: 10.5,1.5 + parent: 818 + - uid: 610 + components: + - type: Transform + pos: 7.5,4.5 + parent: 818 + - uid: 611 + components: + - type: Transform + pos: 4.5,4.5 + parent: 818 + - uid: 612 + components: + - type: Transform + pos: 5.5,4.5 + parent: 818 + - uid: 625 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 818 + - uid: 626 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 818 + - uid: 628 + components: + - type: Transform + pos: -2.5,3.5 + parent: 818 + - uid: 633 + components: + - type: Transform + pos: -4.5,5.5 + parent: 818 + - uid: 635 + components: + - type: Transform + pos: -4.5,0.5 + parent: 818 + - uid: 687 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 818 + - uid: 693 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 818 + - uid: 697 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 818 + - uid: 701 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 818 + - uid: 702 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 818 + - uid: 728 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 818 + - uid: 729 + components: + - type: Transform + pos: -7.5,-9.5 + parent: 818 + - uid: 737 + components: + - type: Transform + pos: -8.5,-6.5 + parent: 818 + - uid: 739 + components: + - type: Transform + pos: -10.5,0.5 + parent: 818 + - uid: 749 + components: + - type: Transform + pos: -10.5,-3.5 + parent: 818 + - uid: 751 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 818 + - uid: 755 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 818 + - uid: 758 + components: + - type: Transform + pos: 4.5,3.5 + parent: 818 + - uid: 759 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 818 + - uid: 774 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 818 + - uid: 775 + components: + - type: Transform + pos: 6.5,0.5 + parent: 818 + - uid: 778 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 818 + - uid: 779 + components: + - type: Transform + pos: 4.5,0.5 + parent: 818 + - uid: 780 + components: + - type: Transform + pos: 3.5,0.5 + parent: 818 + - uid: 781 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 818 + - uid: 782 + components: + - type: Transform + pos: 4.5,2.5 + parent: 818 + - uid: 783 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 818 + - uid: 784 + components: + - type: Transform + pos: 2.5,0.5 + parent: 818 + - uid: 785 + components: + - type: Transform + pos: 4.5,1.5 + parent: 818 + - uid: 786 + components: + - type: Transform + pos: 8.5,0.5 + parent: 818 + - uid: 787 + components: + - type: Transform + pos: 10.5,4.5 + parent: 818 + - uid: 788 + components: + - type: Transform + pos: 9.5,0.5 + parent: 818 + - uid: 789 + components: + - type: Transform + pos: 10.5,3.5 + parent: 818 + - uid: 790 + components: + - type: Transform + pos: 9.5,4.5 + parent: 818 + - uid: 792 + components: + - type: Transform + pos: 2.5,4.5 + parent: 818 + - uid: 822 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 818 + - uid: 823 + components: + - type: Transform + pos: -2.5,6.5 + parent: 818 +- proto: CableHV + entities: + - uid: 221 + components: + - type: Transform + pos: -1.5,3.5 + parent: 818 + - uid: 241 + components: + - type: Transform + pos: -0.5,4.5 + parent: 818 + - uid: 242 + components: + - type: Transform + pos: -0.5,3.5 + parent: 818 + - uid: 269 + components: + - type: Transform + pos: -1.5,5.5 + parent: 818 + - uid: 346 + components: + - type: Transform + pos: -0.5,5.5 + parent: 818 +- proto: CableMV + entities: + - uid: 5 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 818 + - uid: 9 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 818 + - uid: 11 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 818 + - uid: 12 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 818 + - uid: 13 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 818 + - uid: 20 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 818 + - uid: 36 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 818 + - uid: 201 + components: + - type: Transform + pos: -9.5,0.5 + parent: 818 + - uid: 229 + components: + - type: Transform + pos: -9.5,1.5 + parent: 818 + - uid: 231 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 818 + - uid: 232 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 818 + - uid: 233 + components: + - type: Transform + pos: -2.5,1.5 + parent: 818 + - uid: 244 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 818 + - uid: 327 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 818 + - uid: 331 + components: + - type: Transform + pos: -4.5,-12.5 + parent: 818 + - uid: 383 + components: + - type: Transform + pos: -9.5,2.5 + parent: 818 + - uid: 391 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 818 + - uid: 418 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 818 + - uid: 454 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 818 + - uid: 455 + components: + - type: Transform + pos: 8.5,1.5 + parent: 818 + - uid: 456 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 818 + - uid: 457 + components: + - type: Transform + pos: -2.5,2.5 + parent: 818 + - uid: 477 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 818 + - uid: 478 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 818 + - uid: 479 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 818 + - uid: 480 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 818 + - uid: 481 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 818 + - uid: 482 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 818 + - uid: 511 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 818 + - uid: 572 + components: + - type: Transform + pos: 8.5,0.5 + parent: 818 + - uid: 573 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 818 + - uid: 574 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 818 + - uid: 598 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 818 + - uid: 599 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 818 + - uid: 605 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 818 + - uid: 606 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 818 + - uid: 607 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 818 + - uid: 608 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 818 + - uid: 614 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 818 + - uid: 615 + components: + - type: Transform + pos: -1.5,5.5 + parent: 818 + - uid: 634 + components: + - type: Transform + pos: -2.5,4.5 + parent: 818 + - uid: 682 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 818 + - uid: 683 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 818 + - uid: 684 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 818 + - uid: 685 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 818 + - uid: 686 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 818 + - uid: 688 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 818 + - uid: 689 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 818 + - uid: 691 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 818 + - uid: 695 + components: + - type: Transform + pos: -2.5,3.5 + parent: 818 + - uid: 734 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 818 + - uid: 735 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 818 + - uid: 736 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 818 + - uid: 738 + components: + - type: Transform + pos: -2.5,5.5 + parent: 818 + - uid: 748 + components: + - type: Transform + pos: -5.5,-12.5 + parent: 818 + - uid: 752 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 818 + - uid: 754 + components: + - type: Transform + pos: -2.5,0.5 + parent: 818 + - uid: 757 + components: + - type: Transform + pos: -2.5,6.5 + parent: 818 + - uid: 763 + components: + - type: Transform + pos: -3.5,-12.5 + parent: 818 + - uid: 764 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 818 + - uid: 766 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 818 + - uid: 767 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 818 + - uid: 768 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 818 + - uid: 777 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 818 +- proto: CableTerminal + entities: + - uid: 362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 818 +- proto: Chair + entities: + - uid: 550 + components: + - type: Transform + pos: -7.5,-6.5 + parent: 818 +- proto: ChairFolding + entities: + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 818 + - uid: 18 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 818 + - uid: 31 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 818 + - uid: 428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-2.5 + parent: 818 + - uid: 565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 818 + - uid: 566 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-3.5 + parent: 818 + - uid: 578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-3.5 + parent: 818 + - uid: 579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,1.5 + parent: 818 + - uid: 585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-3.5 + parent: 818 + - uid: 710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,1.5 + parent: 818 + - uid: 711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-3.5 + parent: 818 + - uid: 712 + components: + - type: Transform + pos: 6.5,-5.5 + parent: 818 + - uid: 713 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,1.5 + parent: 818 + - uid: 714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 818 + - uid: 715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 818 +- proto: chem_master + entities: + - uid: 353 + components: + - type: Transform + pos: 9.5,5.5 + parent: 818 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 297 + components: + - type: Transform + pos: -0.5,1.5 + parent: 818 + - uid: 302 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 818 + - uid: 426 + components: + - type: Transform + pos: -5.5,1.5 + parent: 818 + - uid: 447 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 818 +- proto: ClosetFireFilled + entities: + - uid: 293 + components: + - type: Transform + pos: -4.5,5.5 + parent: 818 + - uid: 305 + components: + - type: Transform + pos: -5.5,5.5 + parent: 818 +- proto: ClothingBackpackDuffelSalvage + entities: + - uid: 719 + components: + - type: Transform + pos: -1.4933963,-9.282214 + parent: 818 + - uid: 720 + components: + - type: Transform + pos: -4.51423,-9.32391 + parent: 818 + - uid: 721 + components: + - type: Transform + pos: -4.4725633,-10.303758 + parent: 818 + - uid: 808 + components: + - type: Transform + pos: -1.5454798,-10.303758 + parent: 818 +- proto: ClothingBeltMedicalFilled + entities: + - uid: 546 + components: + - type: Transform + pos: -11.442155,-1.2167851 + parent: 818 +- proto: ClothingBeltUtilityFilled + entities: + - uid: 433 + components: + - type: Transform + pos: -3.3685877,5.5872755 + parent: 818 + - uid: 547 + components: + - type: Transform + pos: -2.3373377,5.576851 + parent: 818 +- proto: ClothingShoesBootsSalvage + entities: + - uid: 803 + components: + - type: Transform + pos: -4.38923,-10.699865 + parent: 818 + - uid: 809 + components: + - type: Transform + pos: -1.3579798,-9.667899 + parent: 818 + - uid: 815 + components: + - type: Transform + pos: -4.3683963,-9.657475 + parent: 818 + - uid: 816 + components: + - type: Transform + pos: -1.3683963,-10.647746 + parent: 818 +- proto: ComputerBroken + entities: + - uid: 441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-7.5 + parent: 818 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 33 + components: + - type: Transform + pos: -10.5,2.5 + parent: 818 + - uid: 586 + components: + - type: Transform + pos: -8.5,2.5 + parent: 818 +- proto: EggBoxBroken + entities: + - uid: 545 + components: + - type: Transform + pos: -11.504655,-6.3376904 + parent: 818 +- proto: EmergencyLight + entities: + - uid: 8 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-0.5 + parent: 818 + - uid: 452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,3.5 + parent: 818 + - uid: 453 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 818 + - uid: 473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,4.5 + parent: 818 + - uid: 476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 818 + - uid: 567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-6.5 + parent: 818 + - uid: 580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-10.5 + parent: 818 + - uid: 581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-6.5 + parent: 818 + - uid: 582 + components: + - type: Transform + pos: -1.5,1.5 + parent: 818 + - uid: 591 + components: + - type: Transform + pos: 10.5,5.5 + parent: 818 + - uid: 746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-3.5 + parent: 818 + - uid: 756 + components: + - type: Transform + pos: -3.5,5.5 + parent: 818 + - uid: 760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-6.5 + parent: 818 + - uid: 761 + components: + - type: Transform + pos: 6.5,1.5 + parent: 818 +- proto: FlashlightLantern + entities: + - uid: 804 + components: + - type: Transform + pos: -1.628813,-9.667899 + parent: 818 + - uid: 806 + components: + - type: Transform + pos: -4.63923,-9.605355 + parent: 818 + - uid: 811 + components: + - type: Transform + pos: -4.6183968,-10.595626 + parent: 818 + - uid: 812 + components: + - type: Transform + pos: -1.6496464,-10.626899 + parent: 818 +- proto: FloorDrain + entities: + - uid: 214 + components: + - type: Transform + pos: 10.5,4.5 + parent: 818 + - type: Fixtures + fixtures: {} + - uid: 361 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 818 + - type: Fixtures + fixtures: {} +- proto: GasCanisterBrokenBase + entities: + - uid: 448 + components: + - type: Transform + pos: -10.5,-7.5 + parent: 818 +- proto: GasMinerNitrogen + entities: + - uid: 533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,5.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasMinerOxygen + entities: + - uid: 23 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasMixer + entities: + - uid: 540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,5.5 + parent: 818 + - type: GasMixer + inletTwoConcentration: 0.22000003 + inletOneConcentration: 0.78 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasOutletInjector + entities: + - uid: 245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,3.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasPassiveVent + entities: + - uid: 239 + components: + - type: Transform + pos: 11.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,5.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasPipeBend + entities: + - uid: 55 + components: + - type: Transform + pos: -3.5,5.5 + parent: 818 + - uid: 113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,4.5 + parent: 818 + - uid: 272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-7.5 + parent: 818 + - uid: 291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-11.5 + parent: 818 + - uid: 500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-12.5 + parent: 818 + - uid: 516 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 818 + - uid: 616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-6.5 + parent: 818 + - uid: 630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-12.5 + parent: 818 + - uid: 654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-3.5 + parent: 818 + - uid: 662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-11.5 + parent: 818 +- proto: GasPipeFourway + entities: + - uid: 119 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 818 + - uid: 188 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 818 +- proto: GasPipeStraight + entities: + - uid: 22 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,3.5 + parent: 818 + - uid: 26 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,0.5 + parent: 818 + - uid: 27 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-11.5 + parent: 818 + - uid: 29 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-8.5 + parent: 818 + - uid: 44 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-10.5 + parent: 818 + - uid: 52 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 818 + - uid: 79 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 818 + - uid: 80 + components: + - type: Transform + pos: -3.5,4.5 + parent: 818 + - uid: 86 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-6.5 + parent: 818 + - uid: 98 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-0.5 + parent: 818 + - uid: 99 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 818 + - uid: 100 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,5.5 + parent: 818 + - uid: 102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-5.5 + parent: 818 + - uid: 103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 818 + - uid: 104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-12.5 + parent: 818 + - uid: 105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 818 + - uid: 106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 818 + - uid: 108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-2.5 + parent: 818 + - uid: 109 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-12.5 + parent: 818 + - uid: 110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 818 + - uid: 111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 818 + - uid: 112 + components: + - type: Transform + pos: -3.5,3.5 + parent: 818 + - uid: 116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-12.5 + parent: 818 + - uid: 117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-0.5 + parent: 818 + - uid: 120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 818 + - uid: 122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-1.5 + parent: 818 + - uid: 124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 818 + - uid: 125 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 818 + - uid: 126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-11.5 + parent: 818 + - uid: 143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 818 + - uid: 185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 818 + - uid: 186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-9.5 + parent: 818 + - uid: 187 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-7.5 + parent: 818 + - uid: 206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 818 + - uid: 207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 818 + - uid: 222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,5.5 + parent: 818 + - uid: 270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,3.5 + parent: 818 + - uid: 277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 818 + - uid: 278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,5.5 + parent: 818 + - uid: 282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,3.5 + parent: 818 + - uid: 284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 818 + - uid: 286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-7.5 + parent: 818 + - uid: 289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,3.5 + parent: 818 + - uid: 290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 818 + - uid: 292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-10.5 + parent: 818 + - uid: 325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 818 + - uid: 328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-3.5 + parent: 818 + - uid: 330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-4.5 + parent: 818 + - uid: 334 + components: + - type: Transform + pos: -2.5,0.5 + parent: 818 + - uid: 363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-8.5 + parent: 818 + - uid: 365 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 818 + - uid: 366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 818 + - uid: 367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 818 + - uid: 369 + components: + - type: Transform + pos: -2.5,1.5 + parent: 818 + - uid: 370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,5.5 + parent: 818 + - uid: 371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 818 + - uid: 495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-5.5 + parent: 818 + - uid: 497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-6.5 + parent: 818 + - uid: 505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-0.5 + parent: 818 + - uid: 508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,3.5 + parent: 818 + - uid: 518 + components: + - type: Transform + pos: -3.5,1.5 + parent: 818 + - uid: 519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-11.5 + parent: 818 + - uid: 520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,3.5 + parent: 818 + - uid: 521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-2.5 + parent: 818 + - uid: 522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 818 + - uid: 523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-7.5 + parent: 818 + - uid: 525 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,1.5 + parent: 818 + - uid: 530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-1.5 + parent: 818 + - uid: 531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 818 + - uid: 532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,3.5 + parent: 818 + - uid: 535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-9.5 + parent: 818 + - uid: 536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 818 + - uid: 538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,3.5 + parent: 818 + - uid: 617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-6.5 + parent: 818 + - uid: 618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-6.5 + parent: 818 + - uid: 619 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 818 + - uid: 637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 818 + - uid: 639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-11.5 + parent: 818 + - uid: 640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-1.5 + parent: 818 + - uid: 641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 818 + - uid: 642 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-11.5 + parent: 818 + - uid: 650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 818 + - uid: 651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 818 + - uid: 653 + components: + - type: Transform + pos: -3.5,2.5 + parent: 818 + - uid: 655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 818 + - uid: 656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-11.5 + parent: 818 + - uid: 657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-5.5 + parent: 818 + - uid: 658 + components: + - type: Transform + pos: -3.5,0.5 + parent: 818 + - uid: 659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 818 + - uid: 660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,5.5 + parent: 818 + - uid: 661 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 818 + - uid: 663 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-3.5 + parent: 818 + - uid: 664 + components: + - type: Transform + pos: -2.5,2.5 + parent: 818 + - uid: 665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,1.5 + parent: 818 + - uid: 690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-2.5 + parent: 818 + - uid: 791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-11.5 + parent: 818 +- proto: GasPipeTJunction + entities: + - uid: 54 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-6.5 + parent: 818 + - uid: 276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,3.5 + parent: 818 + - uid: 392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 818 + - uid: 647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-1.5 + parent: 818 +- proto: GasPressurePump + entities: + - uid: 118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,3.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasThermoMachineFreezer + entities: + - uid: 352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,3.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasVentPump + entities: + - uid: 101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-0.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 107 + components: + - type: Transform + pos: -10.5,-10.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-11.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 123 + components: + - type: Transform + pos: -3.5,0.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 265 + components: + - type: Transform + pos: 3.5,0.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 271 + components: + - type: Transform + pos: -3.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,5.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 368 + components: + - type: Transform + pos: 3.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: GasVentScrubber + entities: + - uid: 223 + components: + - type: Transform + pos: -2.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 274 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-11.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,3.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-6.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 494 + components: + - type: Transform + pos: 5.5,4.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-2.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-1.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: Gateway + entities: + - uid: 726 + components: + - type: Transform + pos: -8.5,-10.5 + parent: 818 +- proto: GeneratorBasic15kW + entities: + - uid: 303 + components: + - type: Transform + pos: -0.5,3.5 + parent: 818 + - uid: 304 + components: + - type: Transform + pos: -1.5,3.5 + parent: 818 +- proto: GulagOreProcessor + entities: + - uid: 306 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 818 +- proto: HandheldGPSBasic + entities: + - uid: 39 + components: + - type: Transform + pos: -1.3683963,-9.313486 + parent: 818 + - uid: 40 + components: + - type: Transform + pos: -4.3996463,-9.376029 + parent: 818 + - uid: 43 + components: + - type: Transform + pos: -1.3267298,-10.439268 + parent: 818 + - uid: 487 + components: + - type: Transform + pos: -4.3996463,-10.41842 + parent: 818 +- proto: HandheldHealthAnalyzer + entities: + - uid: 439 + components: + - type: Transform + pos: -11.504655,-1.4878067 + parent: 818 +- proto: HolofanProjector + entities: + - uid: 563 + components: + - type: Transform + pos: -0.64259696,-5.9443913 + parent: 818 +- proto: HydroponicsToolHatchet + entities: + - uid: 820 + components: + - type: Transform + pos: 2.536363,3.57721 + parent: 818 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 821 + components: + - type: Transform + pos: 3.473863,3.5459383 + parent: 818 +- proto: HydroponicsToolScythe + entities: + - uid: 466 + components: + - type: Transform + pos: 2.6196961,3.5355139 + parent: 818 +- proto: HydroponicsToolSpade + entities: + - uid: 555 + components: + - type: Transform + pos: 3.6092796,3.5980577 + parent: 818 +- proto: hydroponicsTray + entities: + - uid: 795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,5.5 + parent: 818 + - uid: 797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,3.5 + parent: 818 + - uid: 799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,3.5 + parent: 818 + - uid: 800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,3.5 + parent: 818 + - uid: 801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,5.5 + parent: 818 + - uid: 802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,5.5 + parent: 818 +- proto: KitchenElectricGrill + entities: + - uid: 794 + components: + - type: Transform + pos: 11.5,1.5 + parent: 818 +- proto: KitchenMicrowave + entities: + - uid: 733 + components: + - type: Transform + pos: 11.5,-3.5 + parent: 818 +- proto: KitchenReagentGrinder + entities: + - uid: 731 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 818 +- proto: KitchenSpike + entities: + - uid: 213 + components: + - type: Transform + pos: 10.5,5.5 + parent: 818 +- proto: LampGold + entities: + - uid: 597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.313307,-9.058659 + parent: 818 + - uid: 692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.298287,-9.016963 + parent: 818 + - uid: 747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.3191204,-9.048234 + parent: 818 +- proto: LargeBeaker + entities: + - uid: 442 + components: + - type: Transform + pos: -9.512756,-4.172467 + parent: 818 + - uid: 552 + components: + - type: Transform + pos: -9.799794,-4.362414 + parent: 818 +- proto: LockerFreezerBase + entities: + - uid: 246 + components: + - type: Transform + pos: 11.5,4.5 + parent: 818 + - uid: 268 + components: + - type: Transform + pos: 11.5,5.5 + parent: 818 +- proto: MachineFrameDestroyed + entities: + - uid: 438 + components: + - type: Transform + pos: -11.5,-5.5 + parent: 818 + - uid: 549 + components: + - type: Transform + pos: -8.5,-7.5 + parent: 818 +- proto: MedkitFilled + entities: + - uid: 434 + components: + - type: Transform + pos: -11.567155,-0.30990565 + parent: 818 + - uid: 543 + components: + - type: Transform + pos: -11.400488,-0.5705029 + parent: 818 +- proto: OreBag + entities: + - uid: 708 + components: + - type: Transform + pos: -4.63923,-9.4802685 + parent: 818 + - uid: 722 + components: + - type: Transform + pos: -1.6183964,-9.490692 + parent: 818 + - uid: 813 + components: + - type: Transform + pos: -4.63923,-10.480964 + parent: 818 + - uid: 814 + components: + - type: Transform + pos: -1.5558963,-10.595626 + parent: 818 +- proto: OxygenCanister + entities: + - uid: 17 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 + - uid: 564 + components: + - type: Transform + pos: -1.5,-12.5 + parent: 818 + - type: AtmosDevice + joinedGrid: 818 +- proto: Pickaxe + entities: + - uid: 583 + components: + - type: Transform + pos: -4.4308963,-9.376029 + parent: 818 + - uid: 805 + components: + - type: Transform + pos: -1.472563,-9.396877 + parent: 818 + - uid: 807 + components: + - type: Transform + pos: -4.4413133,-10.41842 + parent: 818 + - uid: 810 + components: + - type: Transform + pos: -1.4517298,-10.449692 + parent: 818 +- proto: PowerCellRecharger + entities: + - uid: 32 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 818 + - uid: 436 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 818 + - uid: 584 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 818 + - uid: 798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-2.5 + parent: 818 +- proto: PowerCellSmall + entities: + - uid: 723 + components: + - type: Transform + pos: -0.33009696,-6.4968576 + parent: 818 +- proto: Poweredlight + entities: + - uid: 10 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 818 + - uid: 14 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 818 + - uid: 34 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-7.5 + parent: 818 + - uid: 451 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-7.5 + parent: 818 + - uid: 468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-0.5 + parent: 818 + - uid: 469 + components: + - type: Transform + pos: 2.5,5.5 + parent: 818 + - uid: 471 + components: + - type: Transform + pos: -8.5,5.5 + parent: 818 + - uid: 474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,4.5 + parent: 818 + - uid: 556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,4.5 + parent: 818 + - uid: 557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 818 + - uid: 568 + components: + - type: Transform + pos: -4.5,-14.5 + parent: 818 + - uid: 569 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 818 + - uid: 587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-6.5 + parent: 818 + - uid: 589 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 818 + - uid: 595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 818 + - uid: 596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 818 + - uid: 600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,0.5 + parent: 818 + - uid: 698 + components: + - type: Transform + pos: 6.5,5.5 + parent: 818 + - uid: 699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 818 + - uid: 700 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 818 + - uid: 740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-9.5 + parent: 818 + - uid: 741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-12.5 + parent: 818 + - uid: 742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-9.5 + parent: 818 + - uid: 743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-8.5 + parent: 818 + - uid: 744 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 818 + - uid: 745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-9.5 + parent: 818 + - uid: 753 + components: + - type: Transform + pos: -9.5,1.5 + parent: 818 +- proto: Protolathe + entities: + - uid: 300 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 818 +- proto: Rack + entities: + - uid: 2 + components: + - type: Transform + pos: -2.5,5.5 + parent: 818 + - uid: 16 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 818 + - uid: 294 + components: + - type: Transform + pos: -3.5,5.5 + parent: 818 + - uid: 704 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 818 + - uid: 725 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 818 + - uid: 727 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 818 +- proto: RandomVendingDrinks + entities: + - uid: 7 + components: + - type: Transform + pos: -4.5,1.5 + parent: 818 + - uid: 425 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 818 + - uid: 602 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 818 + - uid: 603 + components: + - type: Transform + pos: 9.5,-5.5 + parent: 818 +- proto: RandomVendingSnacks + entities: + - uid: 301 + components: + - type: Transform + pos: -1.5,1.5 + parent: 818 + - uid: 427 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 818 + - uid: 484 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 818 +- proto: ResearchAndDevelopmentServer + entities: + - uid: 307 + components: + - type: Transform + pos: -5.5,3.5 + parent: 818 +- proto: SeedExtractor + entities: + - uid: 558 + components: + - type: Transform + pos: 4.5,5.5 + parent: 818 +- proto: Shovel + entities: + - uid: 724 + components: + - type: Transform + pos: -0.5592637,-6.194565 + parent: 818 +- proto: Sink + entities: + - uid: 483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-10.5 + parent: 818 + - uid: 762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-9.5 + parent: 818 + - uid: 819 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,1.5 + parent: 818 +- proto: SmartFridge + entities: + - uid: 279 + components: + - type: Transform + pos: 9.5,2.5 + parent: 818 +- proto: SMESBasic + entities: + - uid: 295 + components: + - type: Transform + pos: -0.5,5.5 + parent: 818 +- proto: Soap + entities: + - uid: 765 + components: + - type: Transform + pos: 1.5247735,-10.445619 + parent: 818 +- proto: soda_dispenser + entities: + - uid: 732 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-2.5 + parent: 818 +- proto: StationMapBroken + entities: + - uid: 548 + components: + - type: Transform + pos: -7.5,-4.5 + parent: 818 +- proto: SubstationBasic + entities: + - uid: 296 + components: + - type: Transform + pos: -1.5,5.5 + parent: 818 +- proto: Syringe + entities: + - uid: 437 + components: + - type: Transform + pos: -11.535905,-0.9353399 + parent: 818 +- proto: Table + entities: + - uid: 81 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-9.5 + parent: 818 + - uid: 227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-4.5 + parent: 818 + - uid: 256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-9.5 + parent: 818 + - uid: 258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 818 + - uid: 259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-9.5 + parent: 818 + - uid: 261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-2.5 + parent: 818 + - uid: 262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-3.5 + parent: 818 + - uid: 332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-1.5 + parent: 818 + - uid: 336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,1.5 + parent: 818 + - uid: 341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,1.5 + parent: 818 + - uid: 342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-10.5 + parent: 818 + - uid: 344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-0.5 + parent: 818 + - uid: 345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-3.5 + parent: 818 + - uid: 377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-2.5 + parent: 818 + - uid: 402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-0.5 + parent: 818 + - uid: 407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-1.5 + parent: 818 + - uid: 408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-1.5 + parent: 818 + - uid: 409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-3.5 + parent: 818 + - uid: 412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 818 + - uid: 506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,3.5 + parent: 818 + - uid: 514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,3.5 + parent: 818 + - uid: 544 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 818 + - uid: 624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 818 + - uid: 631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-4.5 + parent: 818 + - uid: 696 + components: + - type: Transform + pos: -11.5,-6.5 + parent: 818 + - uid: 706 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 818 + - uid: 709 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 818 +- proto: TableCounterMetal + entities: + - uid: 705 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 818 +- proto: ToiletEmpty + entities: + - uid: 648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 818 +- proto: VendingMachineChefDrobe + entities: + - uid: 817 + components: + - type: Transform + pos: 11.5,0.5 + parent: 818 +- proto: VendingMachineChefvend + entities: + - uid: 796 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 818 +- proto: VendingMachineChemDrobe + entities: + - uid: 440 + components: + - type: Transform + pos: -7.5,-5.5 + parent: 818 +- proto: VendingMachineCondiments + entities: + - uid: 703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-3.5 + parent: 818 +- proto: VendingMachineMedical + entities: + - uid: 435 + components: + - type: Transform + pos: -9.5,1.5 + parent: 818 +- proto: VendingMachineNutri + entities: + - uid: 793 + components: + - type: Transform + pos: 2.5,5.5 + parent: 818 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 464 + components: + - type: Transform + pos: 3.5,5.5 + parent: 818 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 707 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 818 +- proto: WallSolid + entities: + - uid: 24 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,2.5 + parent: 818 + - uid: 25 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,1.5 + parent: 818 + - uid: 28 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-11.5 + parent: 818 + - uid: 30 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,0.5 + parent: 818 + - uid: 45 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-11.5 + parent: 818 + - uid: 46 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-11.5 + parent: 818 + - uid: 47 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-10.5 + parent: 818 + - uid: 48 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-11.5 + parent: 818 + - uid: 49 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-1.5 + parent: 818 + - uid: 50 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-4.5 + parent: 818 + - uid: 51 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-7.5 + parent: 818 + - uid: 53 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-11.5 + parent: 818 + - uid: 56 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-11.5 + parent: 818 + - uid: 57 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-2.5 + parent: 818 + - uid: 58 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-5.5 + parent: 818 + - uid: 59 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-8.5 + parent: 818 + - uid: 60 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-6.5 + parent: 818 + - uid: 61 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-9.5 + parent: 818 + - uid: 64 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 818 + - uid: 65 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,6.5 + parent: 818 + - uid: 66 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-8.5 + parent: 818 + - uid: 67 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-9.5 + parent: 818 + - uid: 69 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,2.5 + parent: 818 + - uid: 70 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-0.5 + parent: 818 + - uid: 71 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-13.5 + parent: 818 + - uid: 72 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-8.5 + parent: 818 + - uid: 73 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-3.5 + parent: 818 + - uid: 74 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-11.5 + parent: 818 + - uid: 75 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-11.5 + parent: 818 + - uid: 76 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,6.5 + parent: 818 + - uid: 77 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-10.5 + parent: 818 + - uid: 78 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-11.5 + parent: 818 + - uid: 82 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,6.5 + parent: 818 + - uid: 83 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,5.5 + parent: 818 + - uid: 84 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-3.5 + parent: 818 + - uid: 85 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-4.5 + parent: 818 + - uid: 88 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-4.5 + parent: 818 + - uid: 89 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,6.5 + parent: 818 + - uid: 90 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,5.5 + parent: 818 + - uid: 91 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,6.5 + parent: 818 + - uid: 92 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-13.5 + parent: 818 + - uid: 93 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-8.5 + parent: 818 + - uid: 95 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-6.5 + parent: 818 + - uid: 96 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-13.5 + parent: 818 + - uid: 97 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-4.5 + parent: 818 + - uid: 114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-11.5 + parent: 818 + - uid: 115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-11.5 + parent: 818 + - uid: 127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,2.5 + parent: 818 + - uid: 128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-11.5 + parent: 818 + - uid: 129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,6.5 + parent: 818 + - uid: 130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,2.5 + parent: 818 + - uid: 132 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,6.5 + parent: 818 + - uid: 133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-7.5 + parent: 818 + - uid: 134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,5.5 + parent: 818 + - uid: 135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-13.5 + parent: 818 + - uid: 136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 818 + - uid: 137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-4.5 + parent: 818 + - uid: 138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,0.5 + parent: 818 + - uid: 139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,6.5 + parent: 818 + - uid: 140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,4.5 + parent: 818 + - uid: 141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,6.5 + parent: 818 + - uid: 142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-2.5 + parent: 818 + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-5.5 + parent: 818 + - uid: 157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-8.5 + parent: 818 + - uid: 158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-6.5 + parent: 818 + - uid: 159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,1.5 + parent: 818 + - uid: 160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-0.5 + parent: 818 + - uid: 161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-3.5 + parent: 818 + - uid: 162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-6.5 + parent: 818 + - uid: 163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,1.5 + parent: 818 + - uid: 164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-8.5 + parent: 818 + - uid: 165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-10.5 + parent: 818 + - uid: 166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-9.5 + parent: 818 + - uid: 167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-4.5 + parent: 818 + - uid: 168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,6.5 + parent: 818 + - uid: 169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-1.5 + parent: 818 + - uid: 170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-4.5 + parent: 818 + - uid: 171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-5.5 + parent: 818 + - uid: 172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,3.5 + parent: 818 + - uid: 173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,3.5 + parent: 818 + - uid: 174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-13.5 + parent: 818 + - uid: 175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-7.5 + parent: 818 + - uid: 176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-6.5 + parent: 818 + - uid: 177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-4.5 + parent: 818 + - uid: 178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,6.5 + parent: 818 + - uid: 179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,5.5 + parent: 818 + - uid: 180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,3.5 + parent: 818 + - uid: 181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,2.5 + parent: 818 + - uid: 182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,6.5 + parent: 818 + - uid: 183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-8.5 + parent: 818 + - uid: 184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-10.5 + parent: 818 + - uid: 190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-11.5 + parent: 818 + - uid: 191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-10.5 + parent: 818 + - uid: 192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,3.5 + parent: 818 + - uid: 193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,2.5 + parent: 818 + - uid: 194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,6.5 + parent: 818 + - uid: 195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,6.5 + parent: 818 + - uid: 196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,6.5 + parent: 818 + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-11.5 + parent: 818 + - uid: 198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-8.5 + parent: 818 + - uid: 199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-13.5 + parent: 818 + - uid: 203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-4.5 + parent: 818 + - uid: 204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-9.5 + parent: 818 + - uid: 205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-10.5 + parent: 818 + - uid: 209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-13.5 + parent: 818 + - uid: 210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,6.5 + parent: 818 + - uid: 211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,2.5 + parent: 818 + - uid: 212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-12.5 + parent: 818 + - uid: 215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,0.5 + parent: 818 + - uid: 216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,2.5 + parent: 818 + - uid: 217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,6.5 + parent: 818 + - uid: 218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,6.5 + parent: 818 + - uid: 249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,4.5 + parent: 818 + - uid: 250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,3.5 + parent: 818 + - uid: 251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,6.5 + parent: 818 + - uid: 252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,6.5 + parent: 818 + - uid: 253 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,6.5 + parent: 818 + - uid: 266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,6.5 + parent: 818 + - uid: 267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,6.5 + parent: 818 + - uid: 281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-8.5 + parent: 818 + - uid: 283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,2.5 + parent: 818 + - uid: 285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,2.5 + parent: 818 + - uid: 326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-13.5 + parent: 818 + - uid: 335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-9.5 + parent: 818 + - uid: 339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-9.5 + parent: 818 + - uid: 340 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,6.5 + parent: 818 + - uid: 360 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-8.5 + parent: 818 + - uid: 372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-8.5 + parent: 818 + - uid: 373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,2.5 + parent: 818 + - uid: 374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-8.5 + parent: 818 + - uid: 375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 818 + - uid: 388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-8.5 + parent: 818 + - uid: 389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-11.5 + parent: 818 + - uid: 393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 818 + - uid: 395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-8.5 + parent: 818 + - uid: 397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,4.5 + parent: 818 + - uid: 410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,6.5 + parent: 818 + - uid: 411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,5.5 + parent: 818 + - uid: 422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-13.5 + parent: 818 + - uid: 423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-8.5 + parent: 818 + - uid: 503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 818 + - uid: 510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-11.5 + parent: 818 + - uid: 517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 818 + - uid: 524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-13.5 + parent: 818 + - uid: 526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-10.5 + parent: 818 + - uid: 529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 818 + - uid: 534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-12.5 + parent: 818 + - uid: 539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 818 + - uid: 541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-9.5 + parent: 818 + - uid: 542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-8.5 + parent: 818 + - uid: 636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,6.5 + parent: 818 + - uid: 643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,2.5 + parent: 818 + - uid: 644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,2.5 + parent: 818 + - uid: 645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 818 + - uid: 646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-8.5 + parent: 818 + - uid: 666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-7.5 + parent: 818 + - uid: 667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,0.5 + parent: 818 + - uid: 668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,1.5 + parent: 818 + - uid: 669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,1.5 + parent: 818 + - uid: 671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 818 + - uid: 672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,2.5 + parent: 818 + - uid: 675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 818 + - uid: 676 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-3.5 + parent: 818 + - uid: 677 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 818 + - uid: 678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 818 + - uid: 679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,2.5 + parent: 818 + - uid: 680 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,2.5 + parent: 818 +- proto: WardrobePrisonFilled + entities: + - uid: 486 + components: + - type: Transform + pos: 9.5,-7.5 + parent: 818 + - uid: 604 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 818 + - uid: 769 + components: + - type: Transform + pos: 6.5,-7.5 + parent: 818 + - uid: 770 + components: + - type: Transform + pos: 7.5,-7.5 + parent: 818 + - uid: 771 + components: + - type: Transform + pos: 4.5,-10.5 + parent: 818 + - uid: 772 + components: + - type: Transform + pos: 7.5,-10.5 + parent: 818 + - uid: 773 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 818 +- proto: WaterTankHighCapacity + entities: + - uid: 467 + components: + - type: Transform + pos: 1.5,3.5 + parent: 818 + - uid: 553 + components: + - type: Transform + pos: 1.5,5.5 + parent: 818 +- proto: Windoor + entities: + - uid: 243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,0.5 + parent: 818 + - uid: 264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-4.5 + parent: 818 +- proto: WindoorSecure + entities: + - uid: 356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-9.5 + parent: 818 +- proto: Window + entities: + - uid: 94 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-4.5 + parent: 818 + - uid: 131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-4.5 + parent: 818 + - uid: 287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,2.5 + parent: 818 + - uid: 288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,2.5 + parent: 818 + - uid: 515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 818 + - uid: 527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-8.5 + parent: 818 + - uid: 528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-4.5 + parent: 818 + - uid: 537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 818 + - uid: 670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 818 + - uid: 673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,2.5 + parent: 818 + - uid: 674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 818 + - uid: 681 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 818 +- proto: WindowDirectional + entities: + - uid: 87 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-0.5 + parent: 818 + - uid: 263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-4.5 + parent: 818 + - uid: 413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-4.5 + parent: 818 + - uid: 627 + components: + - type: Transform + pos: 8.5,-2.5 + parent: 818 +- proto: WindowReinforcedDirectional + entities: + - uid: 238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,4.5 + parent: 818 + - uid: 247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-10.5 + parent: 818 + - uid: 255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,3.5 + parent: 818 + - uid: 260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,4.5 + parent: 818 + - uid: 396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,3.5 + parent: 818 + - uid: 414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,5.5 + parent: 818 + - uid: 421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,3.5 + parent: 818 + - uid: 513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,4.5 + parent: 818 +... diff --git a/Resources/Prototypes/_Miracle/Biomes/gulag_biomes.yml b/Resources/Prototypes/_Miracle/Biomes/gulag_biomes.yml new file mode 100644 index 0000000000..57fa031a7a --- /dev/null +++ b/Resources/Prototypes/_Miracle/Biomes/gulag_biomes.yml @@ -0,0 +1,83 @@ +# Caves +- type: biomeTemplate + id: GulagBiome + layers: + - !type:BiomeEntityLayer + threshold: 0.85 + noise: + seed: 2 + noiseType: OpenSimplex2 + fractalType: PingPong + allowedTiles: + - FloorAsteroidSand + entities: + - CrystalGreen + - CrystalPink + - CrystalOrange + - CrystalBlue + - CrystalCyan + - !type:BiomeEntityLayer + threshold: 0.95 + noise: + seed: 1 + noiseType: OpenSimplex2 + frequency: 1 + allowedTiles: + - FloorAsteroidSand + entities: + - FloraStalagmite1 + - FloraStalagmite2 + - FloraStalagmite3 + - FloraStalagmite4 + - FloraStalagmite5 + - FloraStalagmite6 + - !type:BiomeEntityLayer + threshold: -0.5 + invert: true + noise: + seed: 0 + noiseType: Perlin + fractalType: Ridged + octaves: 1 + frequency: 0.1 + gain: 0.5 + allowedTiles: + - FloorAsteroidSand + entities: + - GulagWallRock + - !type:BiomeDummyLayer + id: Loot + - !type:BiomeTileLayer + threshold: -1.0 + tile: FloorAsteroidSand + variants: + - 0 + - !type:BiomeTileLayer + threshold: 0.5 + noise: + seed: 1 + noiseType: OpenSimplex2 + frequency: 2 + tile: FloorAsteroidSand + +- type: entity + id: GulagWallRock + parent: WallRock + name: rock + suffix: planetmap + components: + - type: OreVein + oreChance: 0.25 + oreRarityPrototypeId: RandomGulagOreDistributionStandard + +- type: weightedRandomOre + id: RandomGulagOreDistributionStandard + weights: + OreSteel: 10 + OreCoal: 10 + OreSpaceQuartz: 8 + OreGold: 2 + OrePlasma: 4 + OreSilver: 1 + OreUranium: 1 + OreBananium: 0.5 diff --git a/Resources/Prototypes/_Miracle/Entities/Containers/gulag.yml b/Resources/Prototypes/_Miracle/Entities/Containers/gulag.yml new file mode 100644 index 0000000000..872042db92 --- /dev/null +++ b/Resources/Prototypes/_Miracle/Entities/Containers/gulag.yml @@ -0,0 +1,6 @@ +- type: entity + id: CrateGulag + parent: CrateGenericSteel + noSpawn: true + components: + - type: GulagFillContainer diff --git a/Resources/Prototypes/_Miracle/Entities/Structures/Machine/gulag_machines.yml b/Resources/Prototypes/_Miracle/Entities/Structures/Machine/gulag_machines.yml new file mode 100644 index 0000000000..da2e67813e --- /dev/null +++ b/Resources/Prototypes/_Miracle/Entities/Structures/Machine/gulag_machines.yml @@ -0,0 +1,38 @@ +- type: entity + id: GulagOreProcessor + name: gulagMachine + description: Shit + parent: BaseMachinePowered + suffix: NoSpawn + components: + - type: Sprite + sprite: Structures/Machines/ore_processor.rsi + layers: + - state: icon + map: [ "enum.LatheVisualLayers.IsRunning" ] + - state: unlit + shader: unshaded + map: [ "enum.PowerDeviceVisualLayers.Powered" ] + - state: inserting + map: [ "enum.MaterialStorageVisualLayers.Inserting" ] + - state: panel + map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + - type: MaterialStorage + ignoreColor: true + whitelist: + tags: + - Ore + - type: GulagOreProcessor + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.4" + density: 190 + mask: + - MachineMask + layer: + - MachineLayer + - type: Transform + anchored: true