diff --git a/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs b/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs index 2c86d6e6e4..dc63d70e32 100644 --- a/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs +++ b/Content.Server/Storage/EntitySystems/EntityStorageSystem.cs @@ -12,9 +12,9 @@ using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Placeable; using Content.Shared.Storage; +using Content.Shared.Wall; using Content.Shared.Whitelist; using Robust.Server.Containers; -using Robust.Shared.Audio; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Physics; @@ -24,6 +24,8 @@ namespace Content.Server.Storage.EntitySystems; public sealed class EntityStorageSystem : EntitySystem { + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly ConstructionSystem _construction = default!; [Dependency] private readonly ContainerSystem _container = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; @@ -148,7 +150,7 @@ public sealed class EntityStorageSystem : EntitySystem component.Open = true; EmptyContents(uid, component); ModifyComponents(uid, component); - SoundSystem.Play(component.OpenSound.GetSound(), Filter.Pvs(component.Owner), component.Owner); + _audio.PlayPvs(component.OpenSound, component.Owner); ReleaseGas(uid, component); RaiseLocalEvent(uid, new StorageAfterOpenEvent()); } @@ -187,7 +189,7 @@ public sealed class EntityStorageSystem : EntitySystem TakeGas(uid, component); ModifyComponents(uid, component); - SoundSystem.Play(component.CloseSound.GetSound(), Filter.Pvs(uid), uid); + _audio.PlayPvs(component.CloseSound, component.Owner); component.LastInternalOpenAttempt = default; RaiseLocalEvent(uid, new StorageAfterCloseEvent()); } @@ -265,15 +267,14 @@ public sealed class EntityStorageSystem : EntitySystem } //Checks to see if the opening position, if offset, is inside of a wall. - if (component.EnteringOffset != (0, 0)) //if the entering position is offset + if (component.EnteringOffset != (0, 0) && !HasComp(target)) //if the entering position is offset { var targetXform = Transform(target); var newCoords = new EntityCoordinates(target, component.EnteringOffset); - if (!_interactionSystem.InRangeUnobstructed(target, newCoords, collisionMask: component.EnteringOffsetCollisionFlags)) + if (!_interactionSystem.InRangeUnobstructed(target, newCoords, 0, collisionMask: component.EnteringOffsetCollisionFlags)) { if (!silent) _popupSystem.PopupEntity(Loc.GetString("entity-storage-component-cannot-open-no-space"), target, Filter.Pvs(target)); - return false; } } @@ -301,8 +302,10 @@ public sealed class EntityStorageSystem : EntitySystem return false; if (TryComp(toAdd, out var phys)) + { if (component.MaxSize < phys.GetWorldAABB().Size.X || component.MaxSize < phys.GetWorldAABB().Size.Y) return false; + } return Insert(toAdd, container, component); } @@ -326,10 +329,7 @@ public sealed class EntityStorageSystem : EntitySystem var targetIsMob = HasComp(toInsert); var storageIsItem = HasComp(container); - - var allowedToEat = whitelist == null - ? HasComp(toInsert) - : whitelist.IsValid(toInsert); + var allowedToEat = whitelist?.IsValid(toInsert) ?? HasComp(toInsert); // BEFORE REPLACING THIS WITH, I.E. A PROPERTY: // Make absolutely 100% sure you have worked out how to stop people ending up in backpacks. @@ -379,11 +379,8 @@ public sealed class EntityStorageSystem : EntitySystem if (TryComp(uid, out var surface)) _placeableSurface.SetPlaceable(uid, component.Open, surface); - if (TryComp(uid, out var appearance)) - { - appearance.SetData(StorageVisuals.Open, component.Open); - appearance.SetData(StorageVisuals.HasContents, component.Contents.ContainedEntities.Any()); - } + _appearance.SetData(uid, StorageVisuals.Open, component.Open); + _appearance.SetData(uid, StorageVisuals.HasContents, component.Contents.ContainedEntities.Count > 0); } private void TakeGas(EntityUid uid, EntityStorageComponent component) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml b/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml index b3ecf118bb..414c2aab07 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/medical.yml @@ -16,6 +16,25 @@ - id: Ointment amount: 2 +- type: entity + id: LockerWallMedicalFilled + suffix: Filled + parent: LockerWallMedical + components: + - type: StorageFill + contents: + - id: BoxPillCanister + amount: 1 + - id: BoxSyringe + amount: 1 + - id: EpinephrineChemistryBottle + amount: 3 + - id: Brutepack + amount: 2 + - id: Ointment + amount: 2 + + - type: entity id: LockerMedicalFilled suffix: Filled diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml index bb93917cfc..bdb89a5f04 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml @@ -37,6 +37,32 @@ prob: 0.5 - id: BoxMRE prob: 0.1 + +- type: entity + id: ClosetWallEmergencyFilledRandom + parent: ClosetWallEmergency + suffix: Filled, Random + components: + - type: StorageFill + contents: + - id: ToolboxEmergencyFilled + prob: 0.4 + - id: ClothingMaskBreath + prob: 0.4 + - id: ClothingMaskBreath + prob: 0.25 + - id: EmergencyOxygenTankFilled + prob: 0.4 + - id: OxygenTankFilled + prob: 0.2 + - id: MedkitOxygenFilled + prob: 0.2 + - id: WeaponFlareGun + prob: 0.05 + - id: ClothingOuterSuitEmergency + prob: 0.5 + - id: BoxMRE + prob: 0.1 - type: entity id: ClosetFireFilled @@ -54,6 +80,22 @@ - id: ClothingHeadHelmetFire prob: 0.75 +- type: entity + id: ClosetWallFireFilledRandom + parent: ClosetWallFire + suffix: Filled + components: + - type: StorageFill + contents: + - id: YellowOxygenTankFilled + prob: 0.6 + - id: ClothingOuterSuitFire + prob: 0.75 + - id: ClothingMaskGas + prob: 0.75 + - id: ClothingHeadHelmetFire + prob: 0.75 + - type: entity id: ClosetMaintenanceFilledRandom suffix: Filled, Random @@ -93,3 +135,29 @@ prob: 0.1 - id: ClothingHandsGlovesColorYellowBudget prob: 0.33 + +- type: entity + id: ClosetWallMaintenanceFilledRandom + parent: ClosetWall + suffix: Filled, Random + components: + - type: StorageFill + contents: + - id: ToolboxEmergencyFilled + prob: 0.4 + - id: ClothingMaskBreath + prob: 0.4 + - id: ClothingMaskBreath + prob: 0.25 + - id: EmergencyOxygenTankFilled + prob: 0.4 + - id: OxygenTankFilled + prob: 0.2 + - id: MedkitOxygenFilled + prob: 0.2 + - id: WeaponFlareGun + prob: 0.05 + - id: ClothingOuterSuitEmergency + prob: 0.5 + - id: BoxMRE + prob: 0.1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index df794b2b0b..73010ba033 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -70,3 +70,85 @@ state: generic state_open: generic_open state_closed: generic_door + +#Wall Closet +- type: entity + id: BaseWallCloset + placement: + mode: SnapgridCenter + abstract: true + name: wall closet + description: A standard-issue Nanotrasen storage unit, now on walls. + components: + - type: InteractionOutline + - type: Clickable + - type: ResistLocker + - type: Weldable + - type: WallMount + arc: 180 + - type: Transform + noRot: false + - type: Sprite + drawdepth: WallMountedItems + netsync: false + noRot: false + sprite: Structures/Storage/wall_locker.rsi + layers: + - state: generic + - state: generic_door + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - type: EntityStorage + isCollidableWhenOpen: true + enteringOffset: 0, -0.8 + closeSound: + path: /Audio/Items/deconstruct.ogg + openSound: + path: /Audio/Items/deconstruct.ogg + - type: ContainerContainer + containers: + entity_storage: !type:Container + ents: [] + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/metalbreak.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + +#Wall locker +- type: entity + id: BaseWallLocker + parent: BaseWallCloset + abstract: true + components: + - type: AccessReader + - type: Lock + - type: Sprite + netsync: false + sprite: Structures/Storage/wall_locker.rsi + layers: + - state: generic + - state: generic_door + map: ["enum.StorageVisualLayers.Door"] + - state: locked + map: ["enum.StorageVisualLayers.Lock"] + shader: unshaded + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/wall_lockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/wall_lockers.yml index 2646f4fae8..8d26eaa233 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/wall_lockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/wall_lockers.yml @@ -1,48 +1,180 @@ - type: entity - id: BaseWallLocker - placement: - mode: SnapgridCenter - abstract: true + id: ClosetWall + parent: BaseWallCloset + name: maintenance wall closet + description: It's a storage unit. components: - - type: Clickable - - type: InteractionOutline - - type: WallMount - arc: 180 - - type: Sprite - drawdepth: WallMountedItems - netsync: false - sprite: Structures/Storage/wall_locker.rsi - layers: - - state: door - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 50 - behaviors: - - !type:DoActsBehavior - acts: ["Destruction"] - - !type:PlaySoundBehavior - sound: - path: /Audio/Effects/metalbreak.ogg - - !type:SpawnEntitiesBehavior - spawn: - SheetSteel1: - min: 1 - max: 2 - - type: Storage - capacity: 100 - - type: UserInterface - interfaces: - - key: enum.StorageUiKey.Key - type: StorageBoundUserInterface - - type: ContainerContainer - containers: - storagebase: !type:Container - ents: [] + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: generic_door - type: entity - id: WallLocker + id: ClosetWallEmergency + name: emergency wall closet + parent: BaseWallCloset + description: It's a storage unit for emergency breath masks and O2 tanks. + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: emergency + state_open: emergency_open + state_closed: emergency_door + +- type: entity + id: ClosetWallFire + name: fire-safety wall closet + parent: BaseWallCloset + description: It's a storage unit for fire-fighting supplies. + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: fire + state_open: fire_open + state_closed: fire_door + +- type: entity + id: ClosetWallBlue + parent: BaseWallCloset + name: blue wall closet + description: "A wardrobe packed with stylish blue clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: blue_door + +- type: entity + id: ClosetWallPink + parent: BaseWallCloset + name: pink wall closet + description: "A wardrobe packed with fabulous pink clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: pink_door + +- type: entity + id: ClosetWallBlack + parent: BaseWallCloset + name: black wall closet + description: "A wardrobe packed with stylish black clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: black_door + +- type: entity + id: ClosetWallGreen + parent: BaseWallCloset + name: green wall closet + description: "A wardrobe packed with stylish green clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: green_door + +- type: entity + id: ClosetWallOrange + parent: BaseWallCloset + name: prison wall closet + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: orange_door + +- type: entity + id: ClosetWallYellow + parent: BaseWallCloset + name: yellow wall closet + description: "A wardrobe packed with stylish yellow clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: yellow_door + +- type: entity + id: ClosetWallWhite + parent: BaseWallCloset + name: white wall closet + description: "A wardrobe packed with stylish white clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: white_door + +- type: entity + id: ClosetWallGrey + parent: BaseWallCloset + name: grey wall closet + description: "A wardrobe packed with a tide of grey clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: gray_door + +- type: entity + id: ClosetWallMixed + parent: BaseWallCloset + name: mixed wall closet + description: "A wardrobe packed with a mix of colorful clothing." + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: mixed_door + +- type: entity + id: ClosetWallAtmospherics + parent: BaseWallCloset + name: atmospherics wall closet + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: generic + state_open: generic_open + state_closed: atmos_door + +- type: entity + id: LockerWallMedical parent: BaseWallLocker - name: wall locker - description: A locker built into the wall. + name: medical doctor's wall locker + components: + - type: Appearance + visuals: + - type: StorageVisualizer + state: med + state_open: med_open + state_closed: med_door + - type: AccessReader + access: [["Medical"]] \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/atmos_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/atmos_door.png new file mode 100644 index 0000000000..673ff2736a Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/atmos_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/black_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/black_door.png new file mode 100644 index 0000000000..1a29724165 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/black_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/blue_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/blue_door.png new file mode 100644 index 0000000000..163d9befe6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/blue_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/door.png deleted file mode 100644 index fbd0d5c854..0000000000 Binary files a/Resources/Textures/Structures/Storage/wall_locker.rsi/door.png and /dev/null differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency.png new file mode 100644 index 0000000000..1bd0e3d1bd Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_door.png new file mode 100644 index 0000000000..9a0dcbd874 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_open.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_open.png new file mode 100644 index 0000000000..81c00f85e5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/emergency_open.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/fire.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire.png new file mode 100644 index 0000000000..d51cd0bfe2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_door.png new file mode 100644 index 0000000000..bb7b6e9d58 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_open.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_open.png new file mode 100644 index 0000000000..ee2b7cfea1 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/fire_open.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/generic.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic.png new file mode 100644 index 0000000000..c3607015d3 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_door.png new file mode 100644 index 0000000000..1e8326a743 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_open.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_open.png new file mode 100644 index 0000000000..83448e47e6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_open.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/gray_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/gray_door.png new file mode 100644 index 0000000000..182f28f1a4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/gray_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/green_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/green_door.png new file mode 100644 index 0000000000..51b2ea29d1 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/green_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/locked.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/locked.png index 51e409e869..579d46f069 100644 Binary files a/Resources/Textures/Structures/Storage/wall_locker.rsi/locked.png and b/Resources/Textures/Structures/Storage/wall_locker.rsi/locked.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/med.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/med.png new file mode 100644 index 0000000000..07367feddc Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/med.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/med_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/med_door.png new file mode 100644 index 0000000000..1c810b64b5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/med_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/med_open.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/med_open.png new file mode 100644 index 0000000000..70044b48d2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/med_open.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json b/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json index 26a29349e1..bb115f3d02 100644 --- a/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json @@ -1,23 +1,37 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/space-wizards/space-station-14/pull/10673, modified from TGstation commit 4a274a6e4b195dfcaffd20d7348631131418ecb5", + "copyright": "Taken from shiptest at commmit https://github.com/shiptest-ss13/Shiptest/commit/440a15fb476a20d77ba28c1fe315c1b659032ce8", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "door" - }, - { - "name": "locked" - }, - { - "name": "unlocked" - }, - { - "name": "welded" - } + { "name": "atmos_door" }, + { "name": "black_door" }, + { "name": "blue_door" }, + { "name": "emergency" }, + { "name": "emergency_door" }, + { "name": "emergency_open" }, + { "name": "fire" }, + { "name": "fire_door" }, + { "name": "fire_open" }, + { "name": "generic" }, + { "name": "generic_door" }, + { "name": "generic_open" }, + { "name": "gray_door" }, + { "name": "green_door" }, + { "name": "locked" }, + { "name": "med" }, + { "name": "med_door" }, + { "name": "med_open" }, + { "name": "mixed_door" }, + { "name": "orange_door" }, + { "name": "pink_door" }, + { "name": "red_door" }, + { "name": "unlocked" }, + { "name": "welded" }, + { "name": "white_door" }, + { "name": "yellow_door" } ] } diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/mixed_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/mixed_door.png new file mode 100644 index 0000000000..25c245e59a Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/mixed_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/orange_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/orange_door.png new file mode 100644 index 0000000000..d205dbcd1d Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/orange_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/pink_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/pink_door.png new file mode 100644 index 0000000000..62e15b974f Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/pink_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/red_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/red_door.png new file mode 100644 index 0000000000..f301ca42f5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/red_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/unlocked.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/unlocked.png index 7935a7c0f9..fc0dcdb23d 100644 Binary files a/Resources/Textures/Structures/Storage/wall_locker.rsi/unlocked.png and b/Resources/Textures/Structures/Storage/wall_locker.rsi/unlocked.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/welded.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/welded.png index 5ba5dcc896..355d7fa0cb 100644 Binary files a/Resources/Textures/Structures/Storage/wall_locker.rsi/welded.png and b/Resources/Textures/Structures/Storage/wall_locker.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/white_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/white_door.png new file mode 100644 index 0000000000..e731b577e7 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/white_door.png differ diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/yellow_door.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/yellow_door.png new file mode 100644 index 0000000000..c9ccbeca29 Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/yellow_door.png differ