Container cleanup, standalone security panel (#20909)

Updated crate and locker sprites and icon overlay code to use a new
standalone 'securitypanel' overlay to lay the groundwork for, in the
future, being able to install/uninstall access-code locks on containers
just like you can in airlocks. For lockers, little visual change at all.
For crates, the security panel is now an overlay within the 'handle'
section of the crate rather than being a chunky box off to the side on
front. Locked/unlocked/emag sprites also updated for the new panel
location.
![Screenshot 2025-06-28
130646](https://github.com/user-attachments/assets/4b4469e7-5d62-42e0-9d9b-27c2f70a4239)
![Screenshot 2025-06-28
130944](https://github.com/user-attachments/assets/5741094f-9214-435a-8ef1-97e5c06b1c61)
![Screenshot 2025-06-28
130951](https://github.com/user-attachments/assets/3d9563b5-a89c-407d-9f8b-190d6382fb8b)

Moved closet.dmi, crate.dmi, guncabinet.dmi, safe.dmi, and
walllocker.dmi to a new subfolder /icons/obj/containers, and updated all
references to them in code, for sake of organization. Ideally (IMHO),
we'd differentiate structure-based storage containers from item-based
storage containers, but that's a larger organizational task and outside
of scope- this just moves storage structures into one common location.

Deleted sciguncabinet.dmi, as its contents had already been migrated to
guncabinet.dmi and it was no longer referenced anywhere in the codebase.
This commit is contained in:
Batrachophreno
2026-01-14 12:38:00 -05:00
committed by GitHub
parent 3c433a18a2
commit 142862c8bc
21 changed files with 1724 additions and 1665 deletions
@@ -1,7 +1,7 @@
/obj/structure/closet
name = "closet"
desc = "It's a basic storage unit."
icon = 'icons/obj/closet.dmi'
icon = 'icons/obj/containers/closet.dmi'
icon_state = "generic"
density = TRUE
build_amt = 2
@@ -626,6 +626,7 @@
update_secure_overlays()
/obj/structure/closet/proc/update_secure_overlays()
AddOverlays("[icon_door_overlay]securitypanel")
if(broken)
AddOverlays("[icon_door_overlay]emag")
else
@@ -1,7 +1,7 @@
/obj/structure/closet/secure_closet/guncabinet
name = "gun cabinet"
req_access = list(ACCESS_ARMORY)
icon = 'icons/obj/guncabinet.dmi'
icon = 'icons/obj/containers/guncabinet.dmi'
icon_state = "base"
anchored = TRUE
canbemoved = TRUE
@@ -1,7 +1,7 @@
/obj/structure/closet/secure_closet
name = "locker"
desc = "It's a steel ID-locked locker."
icon = 'icons/obj/closet.dmi'
icon = 'icons/obj/containers/closet.dmi'
icon_state = "secure"
anchored = FALSE
secure = TRUE
@@ -4,7 +4,7 @@
/obj/structure/closet/walllocker
name = "wall locker"
desc = "A wall mounted storage locker."
icon = 'icons/obj/walllocker.dmi'
icon = 'icons/obj/containers/walllocker.dmi'
icon_state = "walllocker" //...man, how OLD is this $#!?
door_anim_angle = 132
door_anim_squish = 0.38
@@ -5,7 +5,7 @@
/obj/structure/closet/crate
name = "crate"
desc = "A rectangular steel crate."
icon = 'icons/obj/crate.dmi'
icon = 'icons/obj/containers/crate.dmi'
icon_state = "crate"
climbable = TRUE
build_amt = 10
@@ -240,7 +240,6 @@
/obj/structure/closet/crate/secure
name = "secure crate"
desc = "A secure crate."
icon_state = "secure_crate"
locked = TRUE
secure = TRUE
secure_lights = TRUE
@@ -488,12 +487,12 @@
/obj/structure/closet/crate/secure/weapon
name = "weapons crate"
desc = "A secure weapons crate."
icon_state = "syndi_secure_crate"
icon_state = "syndi_crate"
icon_door_override = TRUE
icon_door = "syndi_crate"
/obj/structure/closet/crate/secure/weapon/alt
icon_state = "syndi_secure_crate1"
icon_state = "syndi_crate1"
icon_door = "syndi_crate1"
/obj/structure/closet/crate/secure/legion
@@ -516,8 +515,8 @@
/obj/structure/closet/crate/secure/hydrosec
name = "secure hydroponics crate"
desc = "A crate with a lock on it, painted in the scheme of the station's botanists."
icon_state = "hydro_secure_crate"
desc = "A crate painted in the scheme of the station's botanists."
icon_state = "hydro_crate"
req_one_access = list(ACCESS_HYDROPONICS, ACCESS_XENOBOTANY)
/obj/structure/closet/crate/secure/bin
+1 -1
View File
@@ -8,7 +8,7 @@ FLOOR SAFES
/obj/structure/safe
name = "safe"
desc = "A huge chunk of metal with a dial embedded in it. Fine print on the dial reads \"Scarborough Arms - 2 tumbler safe, guaranteed thermite resistant, explosion resistant, and assistant resistant.\""
icon = 'icons/obj/safe.dmi'
icon = 'icons/obj/containers/safe.dmi'
icon_state = "safe"
anchored = 1
density = 1
+1 -1
View File
@@ -1,7 +1,7 @@
/obj/structure/tranqcabinet
name = "tranquilizer rifle cabinet"
desc = "A wall mounted cabinet designed to hold a tranquilizer rifle."
icon = 'icons/obj/closet.dmi'
icon = 'icons/obj/containers/closet.dmi'
icon_state = "tranq_closed"
anchored = 1
density = 0
@@ -1,7 +1,7 @@
/obj/structure/undies_wardrobe
name = "underwear wardrobe"
desc = "Holds item of clothing you shouldn't be showing off in the hallways."
icon = 'icons/obj/closet.dmi'
icon = 'icons/obj/containers/closet.dmi'
icon_state = "cabinet"
density = 1