From 36908ce69b83dbc36914258011eca0fd70a2a071 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 7 Dec 2023 14:14:06 +0300 Subject: [PATCH] [MIRROR] [Modular] New Lockers! (Skyrat Edition) (#999) * [Modular] New Lockers! (Skyrat Edition) [MDB IGNORE] (#25409) * moves sec lockers to use modular file * Removes redundant /station subtype from NTC Locker * consistency with other stuff + its converted now (YOU'RE THE LAZY ASSHAT, ASSHAT.) * blueshield consistency with other lockers/bags * resprite all the modular closets (that I'm willing to do) * stop being mean. Asshat. * Resprites wall lockers (separate file so they can have working overlays) * Even if these don't work here's the icons so I don't lose them (again) * Wall mounts can be rebuilt! Yahoo! * oh I should probably push these whoops * fixes animations * removes an EVIL icon override we had buried * ff maps --------- Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com> Co-authored-by: Iajret --- _maps/map_files/KiloStation2/KiloStation2.dmm | 2 +- _maps/map_files/NSSJourney/NSSJourney.dmm | 2 +- _maps/map_files/NSVBlueshift/Blueshift.dmm | 2 +- _maps/map_files/VoidRaptor/VoidRaptor.dmm | 2 +- .../birdshot/birdshot_ntrep_office.dmm | 2 +- .../deltastation_ntrep_office.dmm | 2 +- .../templates/icebox/icebox_ntrep_office.dmm | 2 +- .../metastation/metastation_ntrep_office.dmm | 2 +- .../northstar/northstar_ntrep_office.dmm | 2 +- .../tramstation/tramstation_ntrep_office.dmm | 2 +- .../items/stacks/sheets/sheet_types.dm | 3 + .../master_files/icons/obj/closet.dmi | Bin 14951 -> 7026 bytes .../master_files/icons/obj/closet_wall.dmi | Bin 0 -> 1833 bytes .../modules/advanced_shuttles/code/closet.dm | 104 ++++++++++++++---- .../modules/blueshield/code/closet.dm | 4 +- .../code/lockers/interdyne_fob/generic.dm | 4 - .../code/nanotrasen_consultant.dm | 9 +- modular_skyrat/modules/salon/code/barber.dm | 2 +- .../corrections_officer_equipment.dm | 2 +- .../code/peacekeeper/peacekeeper_lockers.dm | 22 +--- .../modules/sec_haul/icons/lockers/closet.dmi | Bin 3866 -> 0 bytes 21 files changed, 110 insertions(+), 60 deletions(-) create mode 100644 modular_skyrat/master_files/icons/obj/closet_wall.dmi delete mode 100644 modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi diff --git a/_maps/map_files/KiloStation2/KiloStation2.dmm b/_maps/map_files/KiloStation2/KiloStation2.dmm index dfac366950f..7486e890529 100644 --- a/_maps/map_files/KiloStation2/KiloStation2.dmm +++ b/_maps/map_files/KiloStation2/KiloStation2.dmm @@ -63836,9 +63836,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) "uwV" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, /obj/item/assembly/flash/handheld, /obj/machinery/status_display/ai/directional/north, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/nt_rep) "uwX" = ( diff --git a/_maps/map_files/NSSJourney/NSSJourney.dmm b/_maps/map_files/NSSJourney/NSSJourney.dmm index 40f7a7dbe31..0ce6af848d8 100644 --- a/_maps/map_files/NSSJourney/NSSJourney.dmm +++ b/_maps/map_files/NSSJourney/NSSJourney.dmm @@ -39437,8 +39437,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, /obj/item/clothing/under/rank/centcom/intern, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "hZK" = ( diff --git a/_maps/map_files/NSVBlueshift/Blueshift.dmm b/_maps/map_files/NSVBlueshift/Blueshift.dmm index 097db5270ea..c8cbf66f31a 100644 --- a/_maps/map_files/NSVBlueshift/Blueshift.dmm +++ b/_maps/map_files/NSVBlueshift/Blueshift.dmm @@ -72121,7 +72121,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "nOw" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /obj/item/clothing/accessory/medal/silver/bureaucracy, /obj/item/clothing/accessory/medal/gold/nanotrasen_consultant, /obj/item/clothing/accessory/medal/gold/ordom, diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm index 8287ea7e2eb..9fb023c4254 100644 --- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm +++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm @@ -51429,7 +51429,7 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/supply) "ovo" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /obj/item/clothing/accessory/medal/gold/ordom, /obj/item/storage/briefcase/secure/white, /obj/item/clothing/gloves/combat/naval, diff --git a/_maps/skyrat/automapper/templates/birdshot/birdshot_ntrep_office.dmm b/_maps/skyrat/automapper/templates/birdshot/birdshot_ntrep_office.dmm index 41608333fd3..e94e2c7b466 100644 --- a/_maps/skyrat/automapper/templates/birdshot/birdshot_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/birdshot/birdshot_ntrep_office.dmm @@ -17,7 +17,7 @@ /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/nt_rep) "bD" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/nt_rep) "ca" = ( diff --git a/_maps/skyrat/automapper/templates/deltastation/deltastation_ntrep_office.dmm b/_maps/skyrat/automapper/templates/deltastation/deltastation_ntrep_office.dmm index 0cbab5e2916..2631b57cbd7 100644 --- a/_maps/skyrat/automapper/templates/deltastation/deltastation_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/deltastation/deltastation_ntrep_office.dmm @@ -175,7 +175,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "D" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /obj/item/storage/briefcase, /obj/item/assembly/flash/handheld, /obj/effect/turf_decal/tile/neutral/fourcorners, diff --git a/_maps/skyrat/automapper/templates/icebox/icebox_ntrep_office.dmm b/_maps/skyrat/automapper/templates/icebox/icebox_ntrep_office.dmm index 51e78624d58..90fd5c1fa81 100644 --- a/_maps/skyrat/automapper/templates/icebox/icebox_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/icebox/icebox_ntrep_office.dmm @@ -333,7 +333,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "yu" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /obj/item/assembly/flash/handheld, /obj/machinery/light/directional/west, /obj/item/radio/intercom/directional/west, diff --git a/_maps/skyrat/automapper/templates/metastation/metastation_ntrep_office.dmm b/_maps/skyrat/automapper/templates/metastation/metastation_ntrep_office.dmm index c18d33363e6..f64dd5bcf48 100644 --- a/_maps/skyrat/automapper/templates/metastation/metastation_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/metastation/metastation_ntrep_office.dmm @@ -133,7 +133,7 @@ "A" = ( /obj/machinery/airalarm/directional/east, /obj/machinery/light/directional/east, -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /obj/item/assembly/flash/handheld, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/nt_rep) diff --git a/_maps/skyrat/automapper/templates/northstar/northstar_ntrep_office.dmm b/_maps/skyrat/automapper/templates/northstar/northstar_ntrep_office.dmm index f797c7905a7..7ed8c993b5a 100644 --- a/_maps/skyrat/automapper/templates/northstar/northstar_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/northstar/northstar_ntrep_office.dmm @@ -138,7 +138,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "v" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "w" = ( diff --git a/_maps/skyrat/automapper/templates/tramstation/tramstation_ntrep_office.dmm b/_maps/skyrat/automapper/templates/tramstation/tramstation_ntrep_office.dmm index bd1e3e8870c..ad53dc870e2 100644 --- a/_maps/skyrat/automapper/templates/tramstation/tramstation_ntrep_office.dmm +++ b/_maps/skyrat/automapper/templates/tramstation/tramstation_ntrep_office.dmm @@ -30,7 +30,7 @@ /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/nt_rep) "e" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant/station, +/obj/structure/closet/secure_closet/nanotrasen_consultant, /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "f" = ( diff --git a/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm index 2b4b7cca870..16b4d361242 100644 --- a/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -21,6 +21,9 @@ // Iron GLOBAL_LIST_INIT(skyrat_metal_recipes, list( + new/datum/stack_recipe("wall mounted fire-safety closet", /obj/item/wallframe/firecloset, 2, time = 1.5 SECONDS, check_density = FALSE, category = CAT_FURNITURE), + new/datum/stack_recipe("wall mounted emergency closet", /obj/item/wallframe/emcloset, 2, time = 1.5 SECONDS, check_density = FALSE, category = CAT_FURNITURE), + new/datum/stack_recipe("wall mounted closet", /obj/item/wallframe/closet, 2, time = 1.5 SECONDS, check_density = FALSE, category = CAT_FURNITURE), new/datum/stack_recipe("pool floor tile", /obj/item/stack/tile/iron/pool, 1, 4, 20, check_density = FALSE, category = CAT_TILES), new/datum/stack_recipe("lowered floor tile", /obj/item/stack/tile/iron/lowered, 1, 4, 20, check_density = FALSE, category = CAT_TILES), new/datum/stack_recipe("elevated floor tile", /obj/item/stack/tile/iron/elevated, 1, 4, 20, check_density = FALSE, category = CAT_TILES), diff --git a/modular_skyrat/master_files/icons/obj/closet.dmi b/modular_skyrat/master_files/icons/obj/closet.dmi index ce409c16b3ea612558b91ad85c47bb8874daa76d..5673b2f19630defb16d33c1999909c035a2a90bc 100644 GIT binary patch literal 7026 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 diff --git a/modular_skyrat/master_files/icons/obj/closet_wall.dmi b/modular_skyrat/master_files/icons/obj/closet_wall.dmi new file mode 100644 index 0000000000000000000000000000000000000000..60465a0acc39f27ded2f46f37eb6d424bd18cdb4 GIT binary patch literal 1833 zcmV+^2iEwBP)005u}0{{R3yb+fl0001iP)t-sz`(%3 zlyld$l&yDH4xAkaXdh$+1sX^u=hd?az7@hG1)LxZO-)T7A0IOg3SVStw70m2jF8dN z(PU&~U}I^FjEq1)KtDf2h>VT5x3@k(LmnO>9~~hqW0RY_cmMzZ0d!JMQvg8b*k%9#0N#33Sad{Xb7OL8 zaCB*JZU6vyoRyPJ4uc>Nh1YTlqT8nFkK1kzU}a_IMjK*aEd5S!nb$yls_cPNTOTUx3FjG=Qn?76HkU03C&7*6 z^>5<9dWujt`Ahl!7U6NU`7!8(Vo_aVy)eCu?LUjKjUy@spRIXn^B1 zn!f4-1IrxRGSzC+000GSNkl7FfnVEyJ-k@`p$8&%f~TuReiqXoX(Be#75Cw}LM_Plf;Xjqk!<$v?+5 z3eB7;CkJB33#Qi9{li$O8fiEd(I@)MWo;hGhSb$?Ae{;Pn9l1XIY`g74pr zm)XbB22qb-=78#0$5tyjOaT?MHo*bFQ!=&ImB6>yv&rK1Jw z=n0JmT$3bw6i|E$1kHtp=z>(f9x3R}??zX!Z<)!Y?Dz^MJ6}HMxCZqK9!CgHs-Q2w z`#ydh)R|eq`r^YgV&6JwU4zuv%cw~r+$L2}f@LS~t_u2Ru`MVT$8?Ql=IE-Rb`1^| zq=as_4r13}pWwuG(2KKznBd-I?kx63cW^)0-R3$nFkVmH4*BBo#+0mb4K7A=FFu9V z=tl~kp4cx*&d;qEi9{lijmROPg#h{G)8z7GhWX`($>M^(h}Lro^H0b~K?VWi_Kw#y zWS5Bt2(m%>-!MUyJ-G#?U1w+ss>ezwNCrIj4m`!GfKMu@3Wy2Tj;sLVTK=~| z1%;%!E*KTO;f>*y@K^gzN{%|A0Pe(qKb|RwzK%^uArL5ban-;x$A>?EJ=nA7f9&b=zv8*| zB9TZWvJoXDv=E@Y-A!&w8-nfD*ygzM_OHp(g0KV9>M!)1!txFoDaav~Al?AU?>Cb> z2jgHv3CBn0f54C)4rl`;zk>oIg47b^e0=@~1=IcEpfwnR21q4%?G-fhKQ%5+*OdIv z5+r+}c<>0y=-}!TObtOkG5@m#iBL>4*qLMqUXcodcuf;*zPN;-_;S`hw)P2j1q>l5 zAJ~Tr@(PTD{BH%p^I1q{u)oj{ERhO=cx|4bGyh9dDg-^V_#t>(Q_!9NH5D8xh|OX; zyMoUAuc;t9i#4ok5TsWR!KwM5`x?y7n4r4P;lZ{e`pPOXYvfT!W2~^Wlr-f2Y$bf=RVp{&za9;1`KRBL5RgNN6Fz`th3=yt{4n z_|5MJIut?w-|YBp0YS7u(HFn156g3`L6M8+l>Yc_6G3rOb4>vJ$)Afoe_6KAWX5yx zc7pjuDCV7jEm+=!Vi{5}&t)$}zhGI)XC;^{Y$_<5Ibds(E+`-N2nik9X zx%;o78&Jp|P$3BW|2o4;X2e1e=7ZZB!p2IS$`QP7OHrVLNmT_Fl!|y~rkxB&BD47q X7U#em$%zOb00000NkvXXu0mjf&?;kj literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/advanced_shuttles/code/closet.dm b/modular_skyrat/modules/advanced_shuttles/code/closet.dm index 33f97d35727..66ce9f92cc9 100644 --- a/modular_skyrat/modules/advanced_shuttles/code/closet.dm +++ b/modular_skyrat/modules/advanced_shuttles/code/closet.dm @@ -16,7 +16,7 @@ icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' icon_state = "wallcloset" icon_door = "wallcloset_mesh" - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS + door_anim_time = 0 //Somebody needs to remove the hard-sprited shuttles, or at least their lockers. These are a sin. /obj/structure/closet/shuttle/white icon_state = "wallcloset_white" @@ -69,40 +69,106 @@ icon_state = "vent" icon_door = "vent" -//Wall closets -/obj/structure/closet/firecloset/wall +//Generic Wall Closets - mount onto a wall, will end up storing anything that's on the tile it was placed from and 'occupies'. +//Mob Size is small so that it doesn't end up storing players standing on those tiles. +/obj/structure/closet/generic/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 wall_mounted = TRUE max_mob_size = MOB_SIZE_SMALL - anchored = TRUE density = TRUE - icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' - icon_state = "fire_wall" - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS + anchored = TRUE + anchorable = FALSE //Prevents it being unwrenched and dragged around. Gotta unweld it! + paint_jobs = FALSE //Prevents it being repainted into other non-wall lockers. + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" /obj/structure/closet/emcloset/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 wall_mounted = TRUE max_mob_size = MOB_SIZE_SMALL - anchored = TRUE density = TRUE - icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' + anchored = TRUE + anchorable = FALSE + paint_jobs = FALSE + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' icon_state = "emergency_wall" - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS -/obj/structure/closet/secure_closet/wall +/obj/structure/closet/firecloset/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 wall_mounted = TRUE max_mob_size = MOB_SIZE_SMALL + density = TRUE anchored = TRUE + anchorable = FALSE + paint_jobs = FALSE + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "fire_wall" + +//These two are pre-locked versions of closet/generic/wall, for mapping only +/obj/structure/closet/secure_closet/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL density = TRUE - icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' - icon_state = "closet_wall" - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS + anchored = TRUE + anchorable = FALSE + paint_jobs = FALSE + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" /obj/structure/closet/secure_closet/personal/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 wall_mounted = TRUE max_mob_size = MOB_SIZE_SMALL - anchored = TRUE density = TRUE - icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' - icon_state = "closet_wall" - icon_door = null - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS + anchored = TRUE + anchorable = FALSE + paint_jobs = FALSE + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" + +//These procs create empty subtypes, for when it's placed by a user rather than mapped in... +//Secure/personal don't get these since they're made with airlock electronics +/obj/structure/closet/generic/wall/empty/PopulateContents() + return + +/obj/structure/closet/emcloset/wall/empty/PopulateContents() + return + +/obj/structure/closet/firecloset/wall/empty/PopulateContents() + return + +//Wallmounts, for rebuilding the wall lockers above +/obj/item/wallframe/closet + name = "wall mounted closet" + desc = "It's a wall mounted storage unit for... well, whatever you put in this one. Apply to wall to use." + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "locker_mount" + result_path = /obj/structure/closet/generic/wall/empty + pixel_shift = 32 + +/obj/item/wallframe/emcloset + name = "wall mounted emergency closet" + desc = "It's a wall mounted storage unit for emergency breath masks and O2 tanks. Apply to wall to use." + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "emergency_mount" + result_path = /obj/structure/closet/emcloset/wall/empty + pixel_shift = 32 + +/obj/item/wallframe/firecloset + name = "wall mounted fire-safety closet" + desc = "It's a wall mounted storage unit for fire-fighting supplies. Apply to wall to use." + icon = 'modular_skyrat/master_files/icons/obj/closet_wall.dmi' + icon_state = "fire_mount" + result_path = /obj/structure/closet/firecloset/wall/empty + pixel_shift = 32 diff --git a/modular_skyrat/modules/blueshield/code/closet.dm b/modular_skyrat/modules/blueshield/code/closet.dm index 53b77308c35..fe34c776ef7 100644 --- a/modular_skyrat/modules/blueshield/code/closet.dm +++ b/modular_skyrat/modules/blueshield/code/closet.dm @@ -1,5 +1,5 @@ /obj/item/storage/bag/garment/blueshield - name = "Blueshield's garment bag" + name = "blueshield's garment bag" desc = "A bag for storing extra clothes and shoes. This one belongs to the blueshield." /obj/item/storage/bag/garment/blueshield/PopulateContents() @@ -15,7 +15,7 @@ new /obj/item/clothing/neck/mantle/bsmantle(src) /obj/structure/closet/secure_closet/blueshield - name = "\the blueshield's locker" + name = "blueshield's locker" icon_state = "bs" icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' req_access = list(ACCESS_CAPTAIN) diff --git a/modular_skyrat/modules/mapping/code/lockers/interdyne_fob/generic.dm b/modular_skyrat/modules/mapping/code/lockers/interdyne_fob/generic.dm index a03686d04e1..b66da6e5e85 100644 --- a/modular_skyrat/modules/mapping/code/lockers/interdyne_fob/generic.dm +++ b/modular_skyrat/modules/mapping/code/lockers/interdyne_fob/generic.dm @@ -3,10 +3,6 @@ req_access = list("syndicate") // Generic lockers/subtypes -/obj/structure/closet/secure_closet/personal - icon_door = "cabinet" - icon_state = "cabinet" - /obj/structure/closet/secure_closet/interdynefob/mod_locker icon_door = "syndicate" icon_state = "syndicate" diff --git a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm index f40bb161957..00ec24f2de7 100644 --- a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm +++ b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm @@ -112,7 +112,7 @@ greyscale_colors = "#017941#0060b8" /obj/item/storage/bag/garment/nanotrasen_consultant - name = "Nanotrasen consultant's garment bag" + name = "nanotrasen consultant's garment bag" desc = "A bag for storing extra clothes and shoes. This one belongs to the Nanotrasen consultant." /obj/item/storage/bag/garment/nanotrasen_consultant/PopulateContents() @@ -133,14 +133,13 @@ new /obj/item/clothing/under/rank/centcom/intern(src) new /obj/item/clothing/head/hats/intern(src) -/obj/structure/closet/secure_closet/nanotrasen_consultant/station - name = "\proper nanotrasen consultant's locker" +/obj/structure/closet/secure_closet/nanotrasen_consultant + name = "nanotrasen consultant's locker" req_access = list(ACCESS_CAPTAIN, ACCESS_CENT_GENERAL) icon_state = "cc" icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS -/obj/structure/closet/secure_closet/nanotrasen_consultant/station/PopulateContents() +/obj/structure/closet/secure_closet/nanotrasen_consultant/PopulateContents() ..() new /obj/item/storage/backpack/satchel/leather(src) new /obj/item/clothing/neck/petcollar(src) diff --git a/modular_skyrat/modules/salon/code/barber.dm b/modular_skyrat/modules/salon/code/barber.dm index 66caf0bb282..03ebc52e6a8 100644 --- a/modular_skyrat/modules/salon/code/barber.dm +++ b/modular_skyrat/modules/salon/code/barber.dm @@ -36,7 +36,7 @@ id_trim = /datum/id_trim/job/barber /obj/structure/closet/secure_closet/barber - name = "Barber's locker" + name = "barber's locker" icon_state = "barber" icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' req_access = list(ACCESS_BARBER) diff --git a/modular_skyrat/modules/sec_haul/code/corrections_officer/corrections_officer_equipment.dm b/modular_skyrat/modules/sec_haul/code/corrections_officer/corrections_officer_equipment.dm index 848c487ff57..1fb6233002d 100644 --- a/modular_skyrat/modules/sec_haul/code/corrections_officer/corrections_officer_equipment.dm +++ b/modular_skyrat/modules/sec_haul/code/corrections_officer/corrections_officer_equipment.dm @@ -51,7 +51,7 @@ name = "corrections officer riot gear" icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' icon_state = "riot" - door_anim_time = 0 //CONVERT THESE DOORS YOU LAZY ASSHATS + door_anim_time = 0 //Somebody resprite or remove this 'riot' locker. It's evil. /obj/structure/closet/secure_closet/corrections_officer/PopulateContents() ..() diff --git a/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_lockers.dm b/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_lockers.dm index 2b9bfd0e815..a2daf1e74d7 100644 --- a/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_lockers.dm +++ b/modular_skyrat/modules/sec_haul/code/peacekeeper/peacekeeper_lockers.dm @@ -1,22 +1,8 @@ /obj/structure/closet/secure_closet/security - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' - -/obj/structure/closet/secure_closet/hos - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' + icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' /obj/structure/closet/secure_closet/warden - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' - -/obj/structure/closet/secure_closet/armory1 - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' - icon_state = "armory" + icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' -/obj/structure/closet/secure_closet/armory2 - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' - icon_state = "armory" - icon_door = null - -/obj/structure/closet/secure_closet/armory3 - icon = 'modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi' - icon_state = "armory" - icon_door = null +/obj/structure/closet/secure_closet/hos + icon = 'modular_skyrat/master_files/icons/obj/closet.dmi' diff --git a/modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi b/modular_skyrat/modules/sec_haul/icons/lockers/closet.dmi deleted file mode 100644 index 16f7331fa882c64171c5f7ce62129c952171c75c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3866 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 JtJQIg`40(3ZOQ-u