diff --git a/Content.Client/_DV/Salvage/Systems/ShelterCapsuleSystem.cs b/Content.Client/_DV/Salvage/Systems/ShelterCapsuleSystem.cs new file mode 100644 index 00000000000..a35a3667394 --- /dev/null +++ b/Content.Client/_DV/Salvage/Systems/ShelterCapsuleSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._DV.Salvage.Systems; + +namespace Content.Client._DV.Salvage.Systems; + +public sealed class ShelterCapsuleSystem : SharedShelterCapsuleSystem; diff --git a/Content.Server/_DV/Salvage/Systems/ShelterCapsuleSystem.cs b/Content.Server/_DV/Salvage/Systems/ShelterCapsuleSystem.cs new file mode 100644 index 00000000000..ff2fc3883bd --- /dev/null +++ b/Content.Server/_DV/Salvage/Systems/ShelterCapsuleSystem.cs @@ -0,0 +1,67 @@ +using Content.Server.Procedural; +using Content.Shared.Administration.Logs; +using Content.Shared.Database; +using Content.Shared._DV.Salvage.Components; +using Content.Shared._DV.Salvage.Systems; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Robust.Shared.Map.Components; +using Robust.Shared.Maths; +using Robust.Shared.Prototypes; +using System.Numerics; + +namespace Content.Server._DV.Salvage.Systems; + +public sealed class ShelterCapsuleSystem : SharedShelterCapsuleSystem +{ + [Dependency] private readonly DungeonSystem _dungeon = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly SharedMapSystem _map = default!; + [Dependency] private readonly TurfSystem _turf = default!; + + private HashSet> _entities = new(); + + protected override LocId? TrySpawnRoom(Entity ent) + { + var xform = Transform(ent); + if (xform.GridUid is not {} gridUid || !TryComp(gridUid, out var grid)) + return "shelter-capsule-error-space"; + + var gridXform = Transform(gridUid); + var center = _map.LocalToTile(gridUid, grid, xform.Coordinates); + var room = _proto.Index(ent.Comp.Room); + var origin = center - room.Size / 2; + + // check that every tile it needs isn't blocked + var mask = CollisionGroup.MobMask; + for (int y = 0; y < room.Size.Y; y++) + { + for (int x = 0; x < room.Size.X; x++) + { + var pos = origin + new Vector2i(x, y); + var tile = _map.GetTileRef((gridUid, grid), pos); + if (tile.Tile.IsEmpty) + return "shelter-capsule-error-space"; + + if (_turf.IsTileBlocked(gridUid, pos, mask, grid, gridXform)) + return "shelter-capsule-error-obstructed"; + } + } + + var user = ent.Comp.User; + _adminLogger.Add(LogType.Action, LogImpact.High, $"{ToPrettyString(user):user} expanded {ToPrettyString(ent):capsule} at {center} on {ToPrettyString(gridUid):grid}"); + + _dungeon.SpawnRoom(gridUid, + grid, + origin, + room, + new Random(), + null, + clearExisting: true); // already checked for mobs and structures here + + QueueDel(ent); + return null; + } +} diff --git a/Content.Shared/_DV/Salvage/Components/ShelterCapsuleComponent.cs b/Content.Shared/_DV/Salvage/Components/ShelterCapsuleComponent.cs new file mode 100644 index 00000000000..00e79715c05 --- /dev/null +++ b/Content.Shared/_DV/Salvage/Components/ShelterCapsuleComponent.cs @@ -0,0 +1,39 @@ +using Content.Shared._DV.Salvage.Systems; +using Content.Shared.Procedural; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared._DV.Salvage.Components; + +/// +/// Spawns a dungeon room after a delay when used and deletes itself. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedShelterCapsuleSystem))] +[AutoGenerateComponentPause] +public sealed partial class ShelterCapsuleComponent : Component +{ + /// + /// The room to spawn. + /// + [DataField(required: true)] + public ProtoId Room; + + /// + /// How long to wait between using and spawning the room. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + /// + /// When to next spawn the room, also used to ignore activating multiple times. + /// + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan? NextSpawn; + + /// + /// The user of the capsule, used for logging. + /// + [DataField] + public EntityUid? User; +} diff --git a/Content.Shared/_DV/Salvage/Systems/SharedShelterCapsuleSystem.cs b/Content.Shared/_DV/Salvage/Systems/SharedShelterCapsuleSystem.cs new file mode 100644 index 00000000000..ff1afb7d328 --- /dev/null +++ b/Content.Shared/_DV/Salvage/Systems/SharedShelterCapsuleSystem.cs @@ -0,0 +1,66 @@ +using Content.Shared._DV.Salvage.Components; +using Content.Shared.Interaction.Events; +using Content.Shared.Popups; +using Robust.Shared.Timing; + +namespace Content.Shared._DV.Salvage.Systems; + +/// +/// Handles interaction for shelter capsules. +/// Room spawning is done serverside. +/// +public abstract class SharedShelterCapsuleSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnUse); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var now = _timing.CurTime; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + if (comp.NextSpawn is not {} nextSpawn || now < nextSpawn) + continue; + + comp.User = null; + comp.NextSpawn = null; + if (TrySpawnRoom((uid, comp)) is {} id) + { + var msg = Loc.GetString(id, ("capsule", uid)); + _popup.PopupEntity(msg, uid, PopupType.LargeCaution); + } + } + } + + /// + /// Spawn the room, returning a locale string for an error. It gets "capsule" passed. + /// + protected virtual LocId? TrySpawnRoom(Entity ent) + { + return null; + } + + private void OnUse(Entity ent, ref UseInHandEvent args) + { + if (args.Handled || ent.Comp.NextSpawn != null) + return; + + args.Handled = true; + + var msg = Loc.GetString("shelter-capsule-warning", ("capsule", ent)); + _popup.PopupPredicted(msg, ent, args.User, PopupType.LargeCaution); + + ent.Comp.User = args.User; + ent.Comp.NextSpawn = _timing.CurTime + ent.Comp.Delay; + } +} diff --git a/Resources/Locale/en-US/_DV/salvage/shelter-capsule.ftl b/Resources/Locale/en-US/_DV/salvage/shelter-capsule.ftl new file mode 100644 index 00000000000..6fd15e166a7 --- /dev/null +++ b/Resources/Locale/en-US/_DV/salvage/shelter-capsule.ftl @@ -0,0 +1,3 @@ +shelter-capsule-warning = {THE($capsule)} begins to shake. Stand back! +shelter-capsule-error-space = {THE($capsule)} needs ground to deploy on! +shelter-capsule-error-obstructed = {THE($capsule)} is obstructed, clear the area first! diff --git a/Resources/Maps/_DV/Nonstations/shelters.yml b/Resources/Maps/_DV/Nonstations/shelters.yml new file mode 100644 index 00000000000..4f81d167453 --- /dev/null +++ b/Resources/Maps/_DV/Nonstations/shelters.yml @@ -0,0 +1,2109 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 71: FloorMining + 72: FloorMiningDark + 73: FloorMiningLight + 84: FloorReinforced + 91: FloorShuttleOrange + 92: FloorShuttlePurple + 131: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: RwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAVAAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAVAAAAAAARwAAAAAARwAAAAAARwAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAgwAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAgwAAAAAASAAAAAAASAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAgwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAgwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAgwAAAAAARwAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAARwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAgwAAAAAARwAAAAAAgwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAWwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAgwAAAAAARwAAAAAARwAAAAAARwAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: RwAAAAAARwAAAAAARwAAAAAAgwAAAAAASQAAAAAAgwAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAASQAAAAAASQAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAASQAAAAAAgwAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAASAAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAARwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAgwAAAAAAWwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAAgwAAAAAASQAAAAAASQAAAAAAgwAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + canCollide: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: SpreaderGrid + - type: Shuttle + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: GridPathfinding + - type: DecalGrid + chunkCollection: + version: 2 + nodes: [] + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 64699 + 0,-1: + 0: 48624 + -1,0: + 0: 59050 + 0,1: + 0: 136 + 1,1: + 0: 241 + 1,0: + 0: 61166 + 1,-1: + 0: 59888 + 2,0: + 0: 48059 + 2,1: + 0: 35068 + 2,-1: + 0: 48368 + 3,0: + 0: 61423 + 3,1: + 0: 61422 + 2,2: + 0: 136 + 3,2: + 0: 241 + 3,-1: + 0: 57840 + 4,0: + 0: 63351 + 4,1: + 0: 65535 + 4,2: + 0: 240 + -1,-1: + 0: 42720 + 4,-1: + 0: 29680 + 5,0: + 0: 47545 + 5,1: + 0: 48059 + 5,2: + 0: 252 + 5,-1: + 0: 48368 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: LoadedMap +- proto: AirlockMining + entities: + - uid: 2 + components: + - type: Transform + pos: 17.5,-1.5 + parent: 1 + - uid: 4 + components: + - type: Transform + pos: 20.5,0.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: 20.5,2.5 + parent: 1 +- proto: AirlockMiningGlass + entities: + - uid: 6 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 7 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: AirlockMiningLocked + entities: + - uid: 8 + components: + - type: Transform + pos: 12.5,6.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 9 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 +- proto: AtmosDeviceFanDirectional + entities: + - uid: 12 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 +- proto: Bed + entities: + - uid: 14 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 +- proto: BedsheetBlack + entities: + - uid: 16 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 +- proto: BookBartendersManual + entities: + - uid: 18 + components: + - type: Transform + pos: 16.386806,7.732797 + parent: 1 +- proto: BoozeDispenser + entities: + - uid: 19 + components: + - type: Transform + pos: 14.5,7.5 + parent: 1 +- proto: BoxFolderClipboard + entities: + - uid: 20 + components: + - type: Transform + pos: 17.293056,7.717172 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 21 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 20.5,0.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 20.5,2.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 20.5,1.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 14.5,0.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 15.5,0.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 16.5,0.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 17.5,0.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 17.5,1.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 17.5,2.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 17.5,3.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 17.5,4.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 18.5,6.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 19.5,6.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 20.5,4.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 20.5,3.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 14.5,1.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 14.5,3.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 14.5,4.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 14.5,5.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 14.5,6.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 14.5,2.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 15.5,6.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 16.5,6.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: 17.5,6.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 17.5,5.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 20.5,6.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 16.5,7.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 20.5,5.5 + parent: 1 +- proto: CableHV + entities: + - uid: 60 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 15.5,8.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 19.5,8.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 17.5,8.5 + parent: 1 +- proto: CableMV + entities: + - uid: 3 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 15.5,8.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 +- proto: CigarCase + entities: + - uid: 82 + components: + - type: Transform + pos: 18.183681,7.685922 + parent: 1 +- proto: CigarGoldCase + entities: + - uid: 83 + components: + - type: Transform + pos: 18.402431,7.685922 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: 18.683681,7.670297 + parent: 1 +- proto: ComfyChair + entities: + - uid: 85 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-0.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: 9.5,2.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 13.5,2.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: 15.5,2.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: 16.5,2.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 18.5,2.5 + parent: 1 + - uid: 91 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,0.5 + parent: 1 + - uid: 92 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,0.5 + parent: 1 + - uid: 93 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,0.5 + parent: 1 + - uid: 94 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,0.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 95 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 +- proto: CrateSurvivalPodStorage + entities: + - uid: 97 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 +- proto: CurtainsBlack + entities: + - uid: 99 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 +- proto: DisposalBend + entities: + - uid: 101 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,3.5 + parent: 1 +- proto: DisposalJunction + entities: + - uid: 102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,7.5 + parent: 1 +- proto: DisposalPipe + entities: + - uid: 103 + components: + - type: Transform + pos: 22.5,4.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 22.5,5.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 22.5,6.5 + parent: 1 +- proto: DisposalTrunk + entities: + - uid: 106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,7.5 + parent: 1 + - uid: 107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,3.5 + parent: 1 +- proto: DisposalUnit + entities: + - uid: 108 + components: + - type: Transform + pos: 21.5,7.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 21.5,3.5 + parent: 1 +- proto: DrinkGlass + entities: + - uid: 110 + components: + - type: Transform + pos: 9.694993,0.7559149 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 9.679368,1.4746649 + parent: 1 +- proto: DrinkShaker + entities: + - uid: 112 + components: + - type: Transform + pos: 16.683681,7.529672 + parent: 1 +- proto: DrinkWineBottleFull + entities: + - uid: 113 + components: + - type: Transform + pos: 9.273118,1.6934149 + parent: 1 +- proto: FloorDrain + entities: + - uid: 114 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 115 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: FoodShakerPepper + entities: + - uid: 116 + components: + - type: Transform + pos: 18.371181,1.7952971 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: 16.386806,1.7640471 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: 15.355557,1.7640471 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 13.3460045,1.8421721 + parent: 1 +- proto: FoodShakerSalt + entities: + - uid: 120 + components: + - type: Transform + pos: 13.668057,1.5609221 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: 15.761807,1.5609221 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: 16.636806,1.5452971 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: 18.714931,1.5609221 + parent: 1 +- proto: GasPipeBend + entities: + - uid: 124 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 +- proto: GasPort + entities: + - uid: 126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 + - uid: 127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,3.5 + parent: 1 +- proto: GasVentPump + entities: + - uid: 128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + - uid: 129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,2.5 + parent: 1 +- proto: GeneratorWallmountAPU + entities: + - uid: 130 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 +- proto: GeneratorWallmountBasic + entities: + - uid: 132 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 133 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 +- proto: GlassBoxFrame + entities: + - uid: 134 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 +- proto: Grille + entities: + - uid: 135 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: 16.5,-1.5 + parent: 1 +- proto: KitchenMicrowave + entities: + - uid: 138 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 +- proto: Lighter + entities: + - uid: 139 + components: + - type: Transform + pos: 13.358808,5.675431 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: 13.452558,5.472306 + parent: 1 +- proto: LockerBoozeFilled + entities: + - uid: 141 + components: + - type: Transform + pos: 20.5,7.5 + parent: 1 + - type: Lock + locked: False +- proto: Matchbox + entities: + - uid: 142 + components: + - type: Transform + pos: 16.405682,5.675431 + parent: 1 +- proto: MedkitBruteFilled + entities: + - uid: 143 + components: + - type: Transform + pos: 5.525051,1.2559149 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 144 + components: + - type: Transform + pos: 5.525051,1.6309149 + parent: 1 +- proto: Mirror + entities: + - uid: 145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,1.5 + parent: 1 + - uid: 146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,1.5 + parent: 1 +- proto: OxygenCanister + entities: + - uid: 147 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 +- proto: PlushieCarp + entities: + - uid: 149 + components: + - type: Transform + pos: 9.502847,2.349665 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 150 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-0.5 + parent: 1 + - uid: 152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,1.5 + parent: 1 + - uid: 153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-0.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: 14.5,7.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: 20.5,7.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 + - uid: 157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-0.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: 21.5,1.5 + parent: 1 + - uid: 159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,2.5 + parent: 1 +- proto: RagItem + entities: + - uid: 160 + components: + - type: Transform + pos: 16.402431,7.529672 + parent: 1 +- proto: RandomFoodMeal + entities: + - uid: 161 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 +- proto: RandomSoap + entities: + - uid: 162 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 +- proto: SignBar + entities: + - uid: 164 + components: + - type: Transform + pos: 21.5,-1.5 + parent: 1 +- proto: SignNTMine + entities: + - uid: 165 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 166 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 +- proto: SignSurvival + entities: + - uid: 167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,4.5 + parent: 1 + - uid: 168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,4.5 + parent: 1 + - uid: 169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,3.5 + parent: 1 + - uid: 170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + - uid: 171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-0.5 + parent: 1 + - uid: 172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,1.5 + parent: 1 + - uid: 173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,4.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - uid: 176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,0.5 + parent: 1 + - uid: 177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,2.5 + parent: 1 + - uid: 178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,3.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: 15.5,-1.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-0.5 + parent: 1 + - uid: 185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,1.5 + parent: 1 + - uid: 186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,3.5 + parent: 1 + - uid: 187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,5.5 + parent: 1 + - uid: 188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,7.5 + parent: 1 + - uid: 189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,8.5 + parent: 1 + - uid: 190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,8.5 + parent: 1 + - uid: 191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,8.5 + parent: 1 + - uid: 192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,8.5 + parent: 1 + - uid: 193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,8.5 + parent: 1 + - uid: 194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,3.5 + parent: 1 + - uid: 195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,1.5 + parent: 1 + - uid: 196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-0.5 + parent: 1 + - uid: 197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,5.5 + parent: 1 + - uid: 198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,7.5 + parent: 1 +- proto: Sink + entities: + - uid: 199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,1.5 + parent: 1 + - uid: 200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,1.5 + parent: 1 +- proto: SinkWide + entities: + - uid: 201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-0.5 + parent: 1 +- proto: SodaDispenser + entities: + - uid: 202 + components: + - type: Transform + pos: 13.5,7.5 + parent: 1 +- proto: StasisBed + entities: + - uid: 203 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 204 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 +- proto: StoolBar + entities: + - uid: 205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,4.5 + parent: 1 + - uid: 206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,4.5 + parent: 1 + - uid: 207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,4.5 + parent: 1 + - uid: 208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,4.5 + parent: 1 + - uid: 209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,4.5 + parent: 1 + - uid: 210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,4.5 + parent: 1 + - uid: 211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,4.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 212 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 +- proto: Table + entities: + - uid: 215 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 216 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: TableFancyBlack + entities: + - uid: 217 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: 13.5,7.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: 14.5,7.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: 17.5,7.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: 18.5,7.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: 16.5,7.5 + parent: 1 +- proto: TableFancyRed + entities: + - uid: 225 + components: + - type: Transform + pos: 13.5,1.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 15.5,1.5 + parent: 1 + - uid: 227 + components: + - type: Transform + pos: 16.5,1.5 + parent: 1 + - uid: 228 + components: + - type: Transform + pos: 18.5,1.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,5.5 + parent: 1 + - uid: 230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,5.5 + parent: 1 + - uid: 231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,5.5 + parent: 1 + - uid: 232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,5.5 + parent: 1 + - uid: 233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,5.5 + parent: 1 + - uid: 234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,5.5 + parent: 1 + - uid: 235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,5.5 + parent: 1 + - uid: 236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,5.5 + parent: 1 +- proto: ToiletEmpty + entities: + - uid: 237 + components: + - type: Transform + pos: 9.5,3.5 + parent: 1 + - uid: 238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-0.5 + parent: 1 +- proto: ToyFigurineBartender + entities: + - uid: 239 + components: + - type: Transform + pos: 17.418056,7.560922 + parent: 1 +- proto: VendingMachineBooze + entities: + - uid: 240 + components: + - type: Transform + pos: 15.5,7.5 + parent: 1 +- proto: VendingMachineCigs + entities: + - uid: 241 + components: + - type: Transform + pos: 21.5,4.5 + parent: 1 +- proto: VendingMachineSnackBlue + entities: + - uid: 242 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 1 +- proto: WallMining + entities: + - uid: 243 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 247 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 248 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 249 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 250 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 251 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 253 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 10.5,1.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: 10.5,2.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 258 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 259 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 260 + components: + - type: Transform + pos: 10.5,0.5 + parent: 1 + - uid: 261 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 262 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 264 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 270 + components: + - type: Transform + pos: 9.5,4.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: 8.5,4.5 + parent: 1 + - uid: 272 + components: + - type: Transform + pos: 10.5,3.5 + parent: 1 + - uid: 273 + components: + - type: Transform + pos: 12.5,7.5 + parent: 1 + - uid: 274 + components: + - type: Transform + pos: 12.5,5.5 + parent: 1 + - uid: 275 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 276 + components: + - type: Transform + pos: 12.5,3.5 + parent: 1 + - uid: 277 + components: + - type: Transform + pos: 12.5,1.5 + parent: 1 + - uid: 278 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 1 + - uid: 280 + components: + - type: Transform + pos: 14.5,-1.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: 15.5,-1.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: 18.5,-1.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 284 + components: + - type: Transform + pos: 20.5,-1.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: 21.5,-1.5 + parent: 1 + - uid: 286 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 1 + - uid: 287 + components: + - type: Transform + pos: 22.5,0.5 + parent: 1 + - uid: 288 + components: + - type: Transform + pos: 22.5,1.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: 22.5,2.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: 22.5,3.5 + parent: 1 + - uid: 291 + components: + - type: Transform + pos: 22.5,4.5 + parent: 1 + - uid: 292 + components: + - type: Transform + pos: 22.5,5.5 + parent: 1 + - uid: 293 + components: + - type: Transform + pos: 22.5,6.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: 22.5,7.5 + parent: 1 + - uid: 295 + components: + - type: Transform + pos: 21.5,8.5 + parent: 1 + - uid: 296 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 + - uid: 297 + components: + - type: Transform + pos: 19.5,8.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: 17.5,8.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: 15.5,8.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 + - uid: 303 + components: + - type: Transform + pos: 13.5,8.5 + parent: 1 + - uid: 304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,2.5 + parent: 1 + - uid: 305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,1.5 + parent: 1 + - uid: 306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-0.5 + parent: 1 + - uid: 307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,0.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,0.5 + parent: 1 + - uid: 309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,2.5 + parent: 1 +- proto: WallMiningDiagonal + entities: + - uid: 310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + - uid: 311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 316 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-1.5 + parent: 1 + - uid: 317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,4.5 + parent: 1 + - uid: 318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,8.5 + parent: 1 + - uid: 319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-1.5 + parent: 1 + - uid: 320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-1.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: 12.5,8.5 + parent: 1 +- proto: Windoor + entities: + - uid: 322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,2.5 + parent: 1 + - uid: 323 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 20.5,5.5 + parent: 1 +- proto: WindowTintedReinforcedDirectional + entities: + - uid: 325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,2.5 + parent: 1 + - uid: 326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,2.5 + parent: 1 + - uid: 327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,0.5 + parent: 1 + - uid: 328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,3.5 + parent: 1 + - uid: 329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 1 + - uid: 330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,1.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: 16.5,-1.5 + parent: 1 + - uid: 334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-1.5 + parent: 1 + - uid: 335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,0.5 + parent: 1 + - uid: 336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,2.5 + parent: 1 + - uid: 337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,2.5 + parent: 1 + - uid: 338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,0.5 + parent: 1 + - uid: 339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,0.5 + parent: 1 + - uid: 340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,2.5 + parent: 1 + - uid: 341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-1.5 + parent: 1 + - uid: 342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-1.5 + parent: 1 +- proto: WoodenKegBeer + entities: + - uid: 343 + components: + - type: Transform + pos: 19.5,7.5 + parent: 1 +... diff --git a/Resources/Prototypes/_DV/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/_DV/Catalog/Fills/Crates/salvage.yml new file mode 100644 index 00000000000..2254e44ba65 --- /dev/null +++ b/Resources/Prototypes/_DV/Catalog/Fills/Crates/salvage.yml @@ -0,0 +1,23 @@ +# This is meant to be a smart fridge, but thats useless so +- type: entity + parent: CratePlastic + id: CrateSurvivalPodStorage + name: survival pod storage + suffix: Filled + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: SurvivalPod + +- type: entityTable + id: SurvivalPod + table: !type:AllSelector + children: + - id: FoodDonkpocketWarm + amount: !type:ConstantNumberSelector + value: 5 + - !type:GroupSelector + children: + - id: d6Dice + - id: AcousticGuitarInstrument diff --git a/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml b/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml index c1558ca8e50..a07fb149532 100644 --- a/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml +++ b/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml @@ -18,7 +18,8 @@ # TODO: stabilizing serum for 400 - id: FultonBeacon cost: 400 - # TODO: bluespace shelter capsule for 400 + - id: ShelterCapsule + cost: 400 - id: ClothingEyesGlassesGarMeson cost: 500 - id: ClothingBeltSalvageWebbing @@ -47,7 +48,9 @@ # TODO: jump boots for 2500 - id: ClothingOuterHardsuitSalvage cost: 3000 - # TODO: luxury shelter capsule for 3k - # TODO: luxury elite bar capsule for 10k + - id: ShelterCapsuleLuxury + cost: 3000 + - id: ShelterCapsuleBar + cost: 10000 # TODO: pka mods # TODO: mining drone stuff diff --git a/Resources/Prototypes/_DV/Catalog/mining_voucher.yml b/Resources/Prototypes/_DV/Catalog/mining_voucher.yml index 4937ee660a9..f10e146527b 100644 --- a/Resources/Prototypes/_DV/Catalog/mining_voucher.yml +++ b/Resources/Prototypes/_DV/Catalog/mining_voucher.yml @@ -34,16 +34,16 @@ # - Resonator # - FireExtinguisherMini -# TODO: bluespace shelter capsule so this isnt a scam -#- type: thiefBackpackSet -# id: MiningSurvival -# name: mining-voucher-survival-name -# description: mining-voucher-survival-description -# sprite: -# sprite: Clothing/Belt/salvagewebbing.rsi -# state: icon -# content: -# - ClothingBeltSalvageWebbing +- type: thiefBackpackSet + id: MiningSurvival + name: mining-voucher-survival-name + description: mining-voucher-survival-description + sprite: + sprite: Clothing/Belt/salvagewebbing.rsi + state: icon + content: + - ClothingBeltSalvageWebbing + - ShelterCapsule # TODO: mining drone #- type: thiefBackpackSet diff --git a/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/mining_voucher.yml b/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/mining_voucher.yml new file mode 100644 index 00000000000..e23bece1498 --- /dev/null +++ b/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/mining_voucher.yml @@ -0,0 +1,28 @@ +- type: entity + parent: BaseItem + id: MiningVoucher + name: mining voucher + description: A token to redeem a piece of equipment. Insert into your salvage vendor to redeem it. + components: + - type: Sprite + sprite: _DV/Objects/Specific/Salvage/voucher.rsi + state: icon + - type: Item + size: Tiny + - type: ActivatableUI + key: enum.MiningVoucherUiKey.Key + - type: UserInterface + interfaces: + enum.MiningVoucherUiKey.Key: + type: MiningVoucherBoundUserInterface + - type: MiningVoucher + vendorWhitelist: # it's the only mining points vendor :) + components: + - PointsVendor + kits: + - MiningCrusher + - MiningExtraction + #- MiningResonator + - MiningSurvival + #- MiningDrone + - MiningConscription diff --git a/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/shelter_capsules.yml b/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/shelter_capsules.yml new file mode 100644 index 00000000000..b3574bc927c --- /dev/null +++ b/Resources/Prototypes/_DV/Entities/Objects/Specific/Salvage/shelter_capsules.yml @@ -0,0 +1,63 @@ +- type: entity + abstract: true + parent: BaseItem + id: BaseShelterCapsule + components: + - type: Sprite + sprite: _DV/Objects/Specific/Salvage/shelter_capsule.rsi + state: capsule + - type: Item + size: Tiny + - type: UseDelay + delay: 15 # avoid spamming popups when you know it will fail to spawn a room + - type: ShelterCapsule + +- type: entity + parent: BaseShelterCapsule + id: ShelterCapsule + name: bluespace shelter capsule + description: An emergency shelter stored within a pocket of bluespace. + components: + - type: ShelterCapsule + room: EmergencyShelter + +- type: entity + parent: BaseShelterCapsule + id: ShelterCapsuleLuxury + name: luxury bluespace shelter capsule + description: An exorbitantly expensive luxury suite stored within a pocket of bluespace. + components: + - type: ShelterCapsule + room: LuxuryShelter + +- type: entity + parent: BaseShelterCapsule + id: ShelterCapsuleBar + name: luxury elite bar capsule + description: A luxury bar in a capsule. Bartender required and not included. + components: + - type: ShelterCapsule + room: EliteBarShelter + +# Dungeon room prototypes + +- type: dungeonRoom + id: EmergencyShelter + size: 5,5 + atlas: /Maps/_DV/Nonstations/shelters.yml + offset: -2,-2 # grid is offset badly cba to fix it + ignoreTile: FloorShuttleOrange + +- type: dungeonRoom + id: LuxuryShelter + size: 7,7 + atlas: /Maps/_DV/Nonstations/shelters.yml + offset: 4,-2 + ignoreTile: FloorShuttleOrange + +- type: dungeonRoom + id: EliteBarShelter + size: 11,11 + atlas: /Maps/_DV/Nonstations/shelters.yml + offset: 12,-2 + ignoreTile: FloorShuttleOrange diff --git a/Resources/Prototypes/_DV/Entities/Objects/Specific/mining_voucher.yml b/Resources/Prototypes/_DV/Entities/Objects/Specific/mining_voucher.yml index 6a67f357041..e23bece1498 100644 --- a/Resources/Prototypes/_DV/Entities/Objects/Specific/mining_voucher.yml +++ b/Resources/Prototypes/_DV/Entities/Objects/Specific/mining_voucher.yml @@ -23,6 +23,6 @@ - MiningCrusher - MiningExtraction #- MiningResonator - #- MiningSurvival + - MiningSurvival #- MiningDrone - MiningConscription diff --git a/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/capsule.png b/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/capsule.png new file mode 100644 index 00000000000..946f1e6cb08 Binary files /dev/null and b/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/capsule.png differ diff --git a/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/meta.json b/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/meta.json new file mode 100644 index 00000000000..5cd385f6de0 --- /dev/null +++ b/Resources/Textures/_DV/Objects/Specific/Salvage/shelter_capsule.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/8d20615ba100e7744792b42b6a6c7f4ea6314b3f/icons/obj/mining.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "capsule" + } + ] +}