diff --git a/code/ATMOSPHERICS/_atmos_setup.dm b/code/ATMOSPHERICS/_atmos_setup.dm index 6af102cf384..a2735133e25 100644 --- a/code/ATMOSPHERICS/_atmos_setup.dm +++ b/code/ATMOSPHERICS/_atmos_setup.dm @@ -6,15 +6,6 @@ // atmospherics devices. //-------------------------------------------- -#define PIPE_COLOR_GREY "#ffffff" //yes white is grey -#define PIPE_COLOR_RED "#ff0000" -#define PIPE_COLOR_BLUE "#0000ff" -#define PIPE_COLOR_CYAN "#00ffff" -#define PIPE_COLOR_GREEN "#00ff00" -#define PIPE_COLOR_YELLOW "#ffcc00" -#define PIPE_COLOR_BLACK "#444444" -#define PIPE_COLOR_PURPLE "#5c1ec0" - var/global/list/pipe_colors = list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "black" = PIPE_COLOR_BLACK, "purple" = PIPE_COLOR_PURPLE) /proc/pipe_color_lookup(var/color) diff --git a/code/__defines/color.dm b/code/__defines/color.dm index c1416a5e923..56c3f5fa7e1 100644 --- a/code/__defines/color.dm +++ b/code/__defines/color.dm @@ -1,3 +1,141 @@ +// BYOND lower-cases color values, and thus we do so as well to ensure atom.color == COLOR_X will work correctly +#define COLOR_BLACK "#000000" +#define COLOR_NAVY "#000080" +#define COLOR_NAVY_BLUE "#000080" +#define COLOR_GREEN "#008000" +#define COLOR_DARK_GRAY "#404040" +#define COLOR_MAROON "#800000" +#define COLOR_PURPLE "#800080" +#define COLOR_VIOLET "#9933ff" +#define COLOR_OLIVE "#808000" +#define COLOR_BROWN_ORANGE "#824b28" +#define COLOR_DARK_ORANGE "#b95a00" +#define COLOR_GRAY40 "#666666" +#define COLOR_GRAY20 "#333333" +#define COLOR_GRAY15 "#151515" +#define COLOR_SEDONA "#cc6600" +#define COLOR_DARK_BROWN "#917448" +#define COLOR_BLUE "#0000ff" +#define COLOR_DEEP_SKY_BLUE "#00e1ff" +#define COLOR_LIME "#00ff00" +#define COLOR_CYAN "#00ffff" +#define COLOR_TEAL "#33cccc" +#define COLOR_RED "#ff0000" +#define COLOR_PINK "#ff00ff" +#define COLOR_PALE_PINK "#bf89ba" +#define COLOR_ORANGE "#ff9900" +#define COLOR_YELLOW "#ffff00" +#define COLOR_YELLOW_GRAY "#c9a344" +#define COLOR_PALE_YELLOW "#c1bb7a" +#define COLOR_WARM_YELLOW "#b3863c" +#define COLOR_GRAY "#808080" +#define COLOR_RED_GRAY "#aa5f61" +#define COLOR_BROWN "#b19664" +#define COLOR_GREEN_GRAY "#8daf6a" +#define COLOR_DARK_GREEN_GRAY "#54654c" +#define COLOR_BLUE_GRAY "#6a97b0" +#define COLOR_DARK_BLUE_GRAY "#3e4855" +#define COLOR_SURGERY_BLUE "#e0f2f6" +#define COLOR_SUN "#ec8b2f" +#define COLOR_PURPLE_GRAY "#a2819e" +#define COLOR_BLUE_LIGHT "#33ccff" +#define COLOR_RED_LIGHT "#ff3333" +#define COLOR_BEIGE "#ceb689" +#define COLOR_BABY_BLUE "#89cff0" +#define COLOR_PALE_GREEN_GRAY "#aed18b" +#define COLOR_PALE_RED_GRAY "#cc9090" +#define COLOR_PALE_PURPLE_GRAY "#bda2ba" +#define COLOR_PALE_BLUE_GRAY "#8bbbd5" +#define COLOR_LUMINOL "#66ffff" +#define COLOR_SILVER "#c0c0c0" +#define COLOR_GRAY80 "#cccccc" +#define COLOR_OFF_WHITE "#eeeeee" +#define COLOR_WHITE "#ffffff" +#define COLOR_GOLD "#ffcc33" +#define COLOR_CLOSET_GOLD "#6d6133" +#define COLOR_NT_RED "#9d2300" +#define COLOR_BOTTLE_GREEN "#1f6b4f" +#define COLOR_PALE_BTL_GREEN "#57967f" +#define COLOR_GUNMETAL "#545c68" +#define COLOR_WALL_GUNMETAL "#353a42" +#define COLOR_STEEL "#a8b0b2" +#define COLOR_MUZZLE_FLASH "#ffffb2" +#define COLOR_CHESTNUT "#996633" +#define COLOR_BEASTY_BROWN "#663300" +#define COLOR_WHEAT "#ffff99" +#define COLOR_CYAN_BLUE "#3366cc" +#define COLOR_LIGHT_CYAN "#66ccff" +#define COLOR_PAKISTAN_GREEN "#006600" +#define COLOR_HULL "#436b8e" +#define COLOR_AMBER "#ffbf00" +#define COLOR_COMMAND_BLUE "#46698c" +#define COLOR_SKY_BLUE "#5ca1cc" +#define COLOR_PALE_ORANGE "#b88a3b" +#define COLOR_CIVIE_GREEN "#b7f27d" +#define COLOR_TITANIUM "#d1e6e3" +#define COLOR_DARK_GUNMETAL "#4c535b" +#define COLOR_BRONZE "#8c7853" +#define COLOR_BRASS "#b99d71" +#define COLOR_INDIGO "#4b0082" +#define COLOR_ALUMINIUM "#bbbbbb" +#define COLOR_CRYSTAL "#00c8a5" +#define COLOR_ASTEROID_ROCK "#735555" +#define COLOR_NULLGLASS "#ff6088" +#define COLOR_DIAMOND "#d8d4ea" + +#define PIPE_COLOR_GREY "#808080" +#define PIPE_COLOR_RED "#ff0000" +#define PIPE_COLOR_BLUE "#0000ff" +#define PIPE_COLOR_CYAN "#00ffff" +#define PIPE_COLOR_GREEN "#00ff00" +#define PIPE_COLOR_YELLOW "#ffcc00" +#define PIPE_COLOR_BLACK "#444444" +#define PIPE_COLOR_ORANGE "#b95a00" +#define PIPE_COLOR_WHITE "#ffffff" +#define PIPE_COLOR_PURPLE "#5c1ec0" + +#define COMMS_COLOR_DEFAULT "#ff00ff" +#define COMMS_COLOR_ENTERTAIN "#666666" +#define COMMS_COLOR_AI "#ff00ff" +#define COMMS_COLOR_COMMON "#408010" +#define COMMS_COLOR_SERVICE "#709b00" +#define COMMS_COLOR_SUPPLY "#7f6539" +#define COMMS_COLOR_SCIENCE "#993399" +#define COMMS_COLOR_MEDICAL "#009190" +#define COMMS_COLOR_MEDICAL_I "#509190" +#define COMMS_COLOR_EXPLORER "#929820" +#define COMMS_COLOR_ENGINEER "#a66300" +#define COMMS_COLOR_SECURITY "#930000" +#define COMMS_COLOR_SECURITY_I "#935050" +#define COMMS_COLOR_COMMAND "#204090" +#define COMMS_COLOR_CENTCOMM "#5c5c7c" +#define COMMS_COLOR_SYNDICATE "#6d3f40" +#define COMMS_COLOR_SKRELL "#7331c4" + +#define WOOD_COLOR_GENERIC "#d5a66e" +#define WOOD_COLOR_RICH "#792f27" +#define WOOD_COLOR_PALE "#d2bc9d" +#define WOOD_COLOR_PALE2 "#e6d2ba" +#define WOOD_COLOR_BLACK "#332521" +#define WOOD_COLOR_CHOCOLATE "#543c30" +#define WOOD_COLOR_YELLOW "#e3994e" + +#define GLASS_COLOR "#74c1ee" +#define GLASS_COLOR_PHORON "#7c3a9a" +#define GLASS_COLOR_TINTED "#222222" +#define GLASS_COLOR_FROSTED "#ffffff" + +#define COLOR_BLOOD_HUMAN "#a10808" + +//Colors defines used by e-sword lighting +#define COLOR_SABER_BLUE "#40ceff" +#define COLOR_SABER_RED "#ff0000" //In case someone wants to tweak COLOR_RED, since COLOR_GREEN is not #00ff00 +#define COLOR_SABER_GREEN "#00ff00" +#define COLOR_SABER_PURPLE "#6800f4" +#define COLOR_SABER_SKRELL "#6600cc" +#define COLOR_SABER_AXE "#00ccff" +#define COLOR_SABER_CUTLASS "#ff0033" + //Color defines used by the assembly detailer. #define COLOR_ASSEMBLY_BLACK "#545454" #define COLOR_ASSEMBLY_BGRAY "#9497AB" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 8534378b554..c81bcd4c0cf 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -44,40 +44,6 @@ #define LIFE_HUD 10 // STATUS_HUD that only reports dead or alive #define TOTAL_HUDS 10 // Total number of HUDs. Like body layers, and other things, it comes up sometimes. -//some colors -#define COLOR_WHITE "#FFFFFF" -#define COLOR_SILVER "#C0C0C0" -#define COLOR_GRAY "#808080" -#define COLOR_BLACK "#000000" -#define COLOR_RED "#FF0000" -#define COLOR_MAROON "#800000" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_OLIVE "#808000" -#define COLOR_LIME "#00FF00" -#define COLOR_GREEN "#008000" -#define COLOR_CYAN "#00FFFF" -#define COLOR_TEAL "#008080" -#define COLOR_BLUE "#0000FF" -#define COLOR_NAVY "#000080" -#define COLOR_PINK "#FF00FF" -#define COLOR_PURPLE "#800080" -#define COLOR_ORANGE "#FF9900" -#define COLOR_LUMINOL "#66FFFF" -#define COLOR_BEIGE "#CEB689" -#define COLOR_BLUE_GRAY "#6A97B0" -#define COLOR_BROWN "#B19664" -#define COLOR_DARK_BROWN "#917448" -#define COLOR_DARK_ORANGE "#B95A00" -#define COLOR_GREEN_GRAY "#8DAF6A" -#define COLOR_RED_GRAY "#AA5F61" -#define COLOR_PALE_BLUE_GRAY "#8BBBD5" -#define COLOR_PALE_GREEN_GRAY "#AED18B" -#define COLOR_PALE_RED_GRAY "#CC9090" -#define COLOR_PALE_PURPLE_GRAY "#BDA2BA" -#define COLOR_PURPLE_GRAY "#A2819E" -#define COLOR_RED_LIGHT "#FF3333" -#define COLOR_DEEP_SKY_BLUE "#00e1ff" - #define CLIENT_FROM_VAR(I) (ismob(I) ? I:client : (isclient(I) ? I : null)) // Shuttles. diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 8a34fb50b7b..7b829455646 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -25,6 +25,9 @@ var/list/mannequins_ // Times that players are allowed to respawn ("ckey" = world.time) GLOBAL_LIST_EMPTY(respawn_timers) +// Closets have magic appearances +GLOBAL_LIST_EMPTY(closet_appearances) + // Posters var/global/list/poster_designs = list() var/global/list/NT_poster_designs = list() @@ -204,6 +207,12 @@ var/global/list/string_slot_flags = list( var/datum/poster/P = new T NT_poster_designs += P + //Closet appearances + paths = typesof(/decl/closet_appearance) + for(var/T in paths) + var/decl/closet_appearance/app = new T() + GLOB.closet_appearances[T] = app + // VOREStation Add - Vore Modes! paths = typesof(/datum/digest_mode) - /datum/digest_mode/transform for(var/T in paths) diff --git a/code/datums/supplypacks/recreation.dm b/code/datums/supplypacks/recreation.dm index 357f0eaeadc..134ae76e303 100644 --- a/code/datums/supplypacks/recreation.dm +++ b/code/datums/supplypacks/recreation.dm @@ -66,7 +66,7 @@ contains = list( /obj/item/device/pipe_painter = 2, /obj/item/device/floor_painter = 2, - /obj/item/device/closet_painter = 2 + ///obj/item/device/closet_painter = 2 ) /datum/supply_pack/recreation/cheapbait diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 6caf76a982e..be70e217c3e 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1712,7 +1712,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/security/brig/prison_break() for(var/obj/structure/closet/secure_closet/brig/temp_closet in src) temp_closet.locked = 0 - temp_closet.icon_state = temp_closet.icon_closed + temp_closet.icon_state = "closed_unlocked" for(var/obj/machinery/door_timer/temp_timer in src) temp_timer.releasetime = 1 ..() @@ -1724,7 +1724,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/security/prison/prison_break() for(var/obj/structure/closet/secure_closet/brig/temp_closet in src) temp_closet.locked = 0 - temp_closet.icon_state = temp_closet.icon_closed + temp_closet.icon_state = "closed_unlocked" for(var/obj/machinery/door_timer/temp_timer in src) temp_timer.releasetime = 1 ..() diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index ba737a416a5..083a90fc094 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -187,7 +187,7 @@ var/hadevent = 0 for (var/obj/structure/closet/secure_closet/brig/temp_closet in A) temp_closet.locked = 0 - temp_closet.icon_state = temp_closet.icon_closed + temp_closet.icon_state = "closed_unlocked" for (var/obj/machinery/door/airlock/security/temp_airlock in A) spawn(0) temp_airlock.prison_open() diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index a15887cc589..3722e66cf6c 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -114,7 +114,7 @@ if(C.broken) continue if(C.opened && !C.close()) continue C.locked = 1 - C.icon_state = C.icon_locked + C.icon_state = "closed_locked" return 1 @@ -135,7 +135,7 @@ if(C.broken) continue if(C.opened) continue C.locked = 0 - C.icon_state = C.icon_closed + C.icon_state = "closed_unlocked" return 1 diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index e714263ebe8..b49ee7a70f1 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -3,7 +3,7 @@ /obj/item/bodybag name = "body bag" desc = "A folded bag designed for the storage and transportation of cadavers." - icon = 'icons/obj/bodybag.dmi' + icon = 'icons/obj/closets/bodybag.dmi' icon_state = "bodybag_folded" w_class = ITEMSIZE_SMALL @@ -31,10 +31,8 @@ /obj/structure/closet/body_bag name = "body bag" desc = "A plastic bag designed for the storage and transportation of cadavers." - icon = 'icons/obj/bodybag.dmi' - icon_state = "bodybag_closed" - icon_closed = "bodybag_closed" - icon_opened = "bodybag_open" + icon = 'icons/obj/closets/bodybag.dmi' + closet_appearance = null open_sound = 'sound/items/zip.ogg' close_sound = 'sound/items/zip.ogg' var/item_path = /obj/item/bodybag @@ -105,19 +103,22 @@ /obj/structure/closet/body_bag/update_icon() if(opened) - icon_state = icon_opened + icon_state = "open" else - if(contains_body > 0) - icon_state = "bodybag_closed1" - else - icon_state = icon_closed + icon_state = "closed_unlocked" + + src.overlays.Cut() + /* Ours don't have toetags + if(has_label) + src.overlays += image(src.icon, "bodybag_label") + */ /obj/item/bodybag/cryobag name = "stasis bag" desc = "A non-reusable plastic bag designed to slow down bodily functions such as circulation and breathing, \ especially useful if short on time or in a hostile enviroment." - icon = 'icons/obj/cryobag.dmi' + icon = 'icons/obj/closets/cryobag.dmi' icon_state = "bodybag_folded" item_state = "bodybag_cryo_folded" origin_tech = list(TECH_BIO = 4) @@ -135,7 +136,7 @@ name = "stasis bag" desc = "A non-reusable plastic bag designed to slow down bodily functions such as circulation and breathing, \ especially useful if short on time or in a hostile enviroment." - icon = 'icons/obj/cryobag.dmi' + icon = 'icons/obj/closets/cryobag.dmi' item_path = /obj/item/bodybag/cryobag store_misc = 0 store_items = 0 @@ -166,13 +167,17 @@ /obj/structure/closet/body_bag/cryobag/open() . = ..() if(used) - var/obj/item/O = new/obj/item(src.loc) - O.name = "used [name]" - O.icon = src.icon - O.icon_state = "bodybag_used" - O.desc = "Pretty useless now..." + new /obj/item/usedcryobag(loc) qdel(src) +/obj/structure/closet/body_bag/cryobag/update_icon() + ..() + overlays.Cut() + var/image/I = image(icon, "indicator[opened]") + I.appearance_flags = RESET_COLOR + I.color = COLOR_LIME + overlays += I + /obj/structure/closet/body_bag/cryobag/MouseDrop(over_object, src_location, over_location) . = ..() if(. && syringe) @@ -260,3 +265,9 @@ else ..() + +/obj/item/usedcryobag + name = "used stasis bag" + desc = "Pretty useless now.." + icon_state = "bodybag_used" + icon = 'icons/obj/closets/cryobag.dmi' diff --git a/code/game/objects/items/poi_items.dm b/code/game/objects/items/poi_items.dm index b86d93aec87..4300eeed71f 100644 --- a/code/game/objects/items/poi_items.dm +++ b/code/game/objects/items/poi_items.dm @@ -61,10 +61,8 @@ /obj/structure/closet/crate/oldreactor name = "fission reactor rack" desc = "Used in older models of nuclear reactors, essentially a cooling rack for high volumes of radioactive material." - icon = 'icons/obj/objects.dmi' - icon_state = "poireactor" - icon_opened = "poireactor_open" - icon_closed = "poireactor" + icon = 'icons/obj/closets/poireactor.dmi' + closet_appearance = null catalogue_data = list(/datum/category_item/catalogue/information/objects/oldreactor) climbable = 0 diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/__closets.dm similarity index 88% rename from code/game/objects/structures/crates_lockers/closets.dm rename to code/game/objects/structures/crates_lockers/__closets.dm index 2cea4f4cccf..24b68bdf2af 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/__closets.dm @@ -1,15 +1,16 @@ +// Someone should really merge secure closets and crates into this, which Bay has done already. /obj/structure/closet name = "closet" desc = "It's a basic storage unit." icon = 'icons/obj/closet.dmi' - icon_state = "closed" + icon_state = "closed_unlocked" density = 1 w_class = ITEMSIZE_HUGE layer = UNDER_JUNK_LAYER - var/icon_closed = "closed" - var/icon_opened = "open" + var/opened = 0 var/sealed = 0 + var/seal_tool = /obj/item/weapon/weldingtool //Tool used to seal the closet, defaults to welder var/wall_mounted = 0 //never solid (You can always pass over it) var/health = 100 @@ -30,7 +31,9 @@ var/store_mobs = 1 //Will the closet store mobs? var/max_closets = 0 //Number of other closets allowed on tile before it won't close. - var/list/starts_with + var/list/starts_with // List of type = count (or just type for 1) + + var/closet_appearance = /decl/closet_appearance // The /decl that defines what decals we end up with, that makes our look unique /obj/structure/closet/Initialize() ..() @@ -46,22 +49,28 @@ if(!opened) // if closed, any item at the crate's loc is put in the contents if(istype(loc, /mob/living)) return //VOREStation Edit - No collecting mob organs if spawned inside mob var/obj/item/I - for(I in src.loc) + for(I in loc) if(I.density || I.anchored || I == src) continue I.forceMove(src) // adjust locker size to hold all items with 5 units of free store room var/content_size = 0 - for(I in src.contents) + for(I in contents) content_size += CEILING(I.w_class/2, 1) if(content_size > storage_capacity-5) storage_capacity = content_size + 5 + + if(ispath(closet_appearance)) + var/decl/closet_appearance/app = GLOB.closet_appearances[closet_appearance] + if(app) + icon = app.icon + color = null update_icon() /obj/structure/closet/examine(mob/user) . = ..() if(Adjacent(user) || isobserver(user)) var/content_size = 0 - for(var/obj/item/I in src.contents) + for(var/obj/item/I in contents) if(!I.anchored) content_size += CEILING(I.w_class/2, 1) if(!content_size) @@ -75,7 +84,7 @@ else . += "It is full." - if(!src.opened && isobserver(user)) + if(!opened && isobserver(user)) . += "It contains: [counting_english_list(contents)]" /obj/structure/closet/CanPass(atom/movable/mover, turf/target) @@ -84,7 +93,7 @@ return ..() /obj/structure/closet/proc/can_open() - if(src.sealed) + if(sealed) return 0 return 1 @@ -101,37 +110,37 @@ /obj/structure/closet/proc/dump_contents() //Cham Projector Exception for(var/obj/effect/dummy/chameleon/AD in src) - AD.forceMove(src.loc) + AD.forceMove(loc) for(var/obj/I in src) - I.forceMove(src.loc) + I.forceMove(loc) for(var/mob/M in src) - M.forceMove(src.loc) + M.forceMove(loc) if(M.client) M.client.eye = M.client.mob M.client.perspective = MOB_PERSPECTIVE /obj/structure/closet/proc/open() - if(src.opened) + if(opened) return 0 - if(!src.can_open()) + if(!can_open()) return 0 - src.dump_contents() + dump_contents() - src.icon_state = src.icon_opened - src.opened = 1 + opened = 1 playsound(src, open_sound, 15, 1, -3) if(initial(density)) density = !density + update_icon() return 1 /obj/structure/closet/proc/close() - if(!src.opened) + if(!opened) return 0 - if(!src.can_close()) + if(!can_close()) return 0 var/stored_units = 0 @@ -145,18 +154,18 @@ if(max_closets) stored_units += store_closets(stored_units) - src.icon_state = src.icon_closed - src.opened = 0 + opened = 0 playsound(src, close_sound, 15, 1, -3) if(initial(density)) density = !density + update_icon() return 1 //Cham Projector Exception /obj/structure/closet/proc/store_misc(var/stored_units) var/added_units = 0 - for(var/obj/effect/dummy/chameleon/AD in src.loc) + for(var/obj/effect/dummy/chameleon/AD in loc) if((stored_units + added_units) > storage_capacity) break AD.forceMove(src) @@ -165,7 +174,7 @@ /obj/structure/closet/proc/store_items(var/stored_units) var/added_units = 0 - for(var/obj/item/I in src.loc) + for(var/obj/item/I in loc) var/item_size = CEILING(I.w_class / 2, 1) if(stored_units + added_units + item_size > storage_capacity) continue @@ -176,7 +185,7 @@ /obj/structure/closet/proc/store_mobs(var/stored_units) var/added_units = 0 - for(var/mob/living/M in src.loc) + for(var/mob/living/M in loc) if(M.buckled || M.pinned.len) continue if(stored_units + added_units + M.mob_size > storage_capacity) @@ -190,7 +199,7 @@ /obj/structure/closet/proc/store_closets(var/stored_units) var/added_units = 0 - for(var/obj/structure/closet/C in src.loc) + for(var/obj/structure/closet/C in loc) if(C == src) //Don't store ourself continue if(C.anchored) //Don't worry about anchored things on the same tile @@ -205,7 +214,7 @@ /obj/structure/closet/proc/toggle(mob/user as mob) - if(!(src.opened ? src.close() : src.open())) + if(!(opened ? close() : open())) to_chat(user, "It won't budge!") return update_icon() @@ -215,19 +224,19 @@ switch(severity) if(1) for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion - A.forceMove(src.loc) + A.forceMove(loc) A.ex_act(severity + 1) qdel(src) if(2) if(prob(50)) for (var/atom/movable/A as mob|obj in src) - A.forceMove(src.loc) + A.forceMove(loc) A.ex_act(severity + 1) qdel(src) if(3) if(prob(5)) for(var/atom/movable/A as mob|obj in src) - A.forceMove(src.loc) + A.forceMove(loc) qdel(src) /obj/structure/closet/blob_act() @@ -237,7 +246,7 @@ health -= damage if(health <= 0) for(var/atom/movable/A in src) - A.forceMove(src.loc) + A.forceMove(loc) qdel(src) /obj/structure/closet/bullet_act(var/obj/item/projectile/Proj) @@ -251,10 +260,10 @@ return /obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(src.opened) + if(opened) if(istype(W, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = W - src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet + MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet return 0 if(istype(W,/obj/item/tk_grab)) return 0 @@ -267,7 +276,7 @@ to_chat(user, "You need more welding fuel to complete this task.") return playsound(src, WT.usesound, 50) - new /obj/item/stack/material/steel(src.loc) + new /obj/item/stack/material/steel(loc) for(var/mob/M in viewers(src)) M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2) qdel(src) @@ -287,7 +296,7 @@ return usr.drop_item() if(W) - W.forceMove(src.loc) + W.forceMove(loc) else if(istype(W, /obj/item/weapon/packageWrap)) return else if(seal_tool) @@ -303,8 +312,8 @@ return if(do_after(user, 20 * S.toolspeed)) playsound(src, S.usesound, 50) - src.sealed = !src.sealed - src.update_icon() + sealed = !sealed + update_icon() for(var/mob/M in viewers(src)) M.show_message("[src] has been [sealed?"sealed":"unsealed"] by [user.name].", 3) else if(W.is_wrench()) @@ -319,7 +328,7 @@ to_chat(user, "You [anchored? "un" : ""]secured \the [src]!") anchored = !anchored else - src.attack_hand(user) + attack_hand(user) return /obj/structure/closet/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob) @@ -333,14 +342,14 @@ return if(!isturf(user.loc)) // are you in a container/closet/pod/etc? return - if(!src.opened) + if(!opened) return if(istype(O, /obj/structure/closet)) return - step_towards(O, src.loc) + step_towards(O, loc) if(user != O) user.show_viewers("[user] stuffs [O] into [src]!") - src.add_fingerprint(user) + add_fingerprint(user) return /obj/structure/closet/attack_robot(mob/user) @@ -348,20 +357,20 @@ attack_hand(user) /obj/structure/closet/relaymove(mob/user as mob) - if(user.stat || !isturf(src.loc)) + if(user.stat || !isturf(loc)) return - if(!src.open()) + if(!open()) to_chat(user, "It won't budge!") /obj/structure/closet/attack_hand(mob/user as mob) - src.add_fingerprint(user) - src.toggle(user) + add_fingerprint(user) + toggle(user) // tk grab then use on self /obj/structure/closet/attack_self_tk(mob/user as mob) - src.add_fingerprint(user) - if(!src.toggle()) + add_fingerprint(user) + if(!toggle()) to_chat(usr, "It won't budge!") /obj/structure/closet/verb/verb_toggleopen() @@ -373,19 +382,16 @@ return if(ishuman(usr) || isrobot(usr)) - src.add_fingerprint(usr) - src.toggle(usr) + add_fingerprint(usr) + toggle(usr) else to_chat(usr, "This mob type can't use this verb.") -/obj/structure/closet/update_icon()//Putting the sealed stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) - overlays.Cut() - if(!opened) - icon_state = icon_closed - if(sealed) - overlays += "welded" +/obj/structure/closet/update_icon() + if(opened) + icon_state = "open" else - icon_state = icon_opened + icon_state = "closed_unlocked[sealed ? "_welded" : ""]" /obj/structure/closet/attack_generic(var/mob/user, var/damage, var/attack_message = "destroys") if(damage < STRUCTURE_MIN_DAMAGE_THRESHOLD) @@ -461,8 +467,8 @@ return TRUE /obj/structure/closet/return_air_for_internal_lifeform(var/mob/living/L) - if(src.loc) - if(istype(src.loc, /obj/structure/closet)) + if(loc) + if(istype(loc, /obj/structure/closet)) return (loc.return_air_for_internal_lifeform(L)) return return_air() diff --git a/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm b/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm new file mode 100644 index 00000000000..2436e6a99ff --- /dev/null +++ b/code/game/objects/structures/crates_lockers/_closets_appearance_definitions.dm @@ -0,0 +1,917 @@ +/obj/structure/closet/debug/Initialize(var/maploading, var/newappearance) + closet_appearance = newappearance + . = ..() + +/decl/closet_appearance + var/color = COLOR_GRAY40 + var/decals = list( + "upper_vent", + "lower_vent" + ) + var/list/extra_decals + var/icon/icon + var/base_icon = 'icons/obj/closets/bases/closet.dmi' + var/decal_icon = 'icons/obj/closets/decals/closet.dmi' + var/can_lock = FALSE + +/decl/closet_appearance/New() + // Build our colour and decal lists. + if(LAZYLEN(extra_decals)) + if(!decals) + decals = list() + for(var/thing in extra_decals) + decals[thing] = extra_decals[thing] + for(var/thing in decals) + if(isnull(decals[thing])) + decals[thing] = color + + // Declare storage vars for icons. + var/icon/open_icon + var/icon/closed_emagged_icon + var/icon/closed_emagged_welded_icon + var/icon/closed_locked_icon + var/icon/closed_locked_welded_icon + var/icon/closed_unlocked_icon + var/icon/closed_unlocked_welded_icon + + // Create open icon. + var/icon/new_icon = new + open_icon = icon(base_icon, "base") + open_icon.Blend(icon(base_icon, "open"), ICON_OVERLAY) + open_icon.Blend(color, BLEND_ADD) + open_icon.Blend(icon(base_icon, "interior"), ICON_OVERLAY) + if(decal_icon) + for(var/thing in decals) + var/icon/this_decal_icon = icon(decal_icon, "[thing]_open") + this_decal_icon.Blend(decals[thing], BLEND_ADD) + open_icon.Blend(this_decal_icon, ICON_OVERLAY) + + // Generate basic closed icons. + closed_emagged_icon = icon(base_icon, "base") + if(can_lock) + closed_emagged_icon.Blend(icon(base_icon, "lock"), ICON_OVERLAY) + closed_emagged_icon.Blend(color, BLEND_ADD) + if(decal_icon) + for(var/thing in decals) + var/icon/this_decal_icon = icon(decal_icon, thing) + this_decal_icon.Blend(decals[thing], BLEND_ADD) + closed_emagged_icon.Blend(this_decal_icon, ICON_OVERLAY) + closed_locked_icon = icon(closed_emagged_icon) + closed_unlocked_icon = icon(closed_emagged_icon) + + // Add lock lights. + if(can_lock) + var/icon/light = icon(base_icon, "light") + light.Blend(COLOR_RED, BLEND_ADD) + closed_locked_icon.Blend(light, ICON_OVERLAY) + light = icon(base_icon, "light") + light.Blend(COLOR_LIME, BLEND_ADD) + closed_unlocked_icon.Blend(light, ICON_OVERLAY) + + // Add welded states. + var/icon/welded = icon(base_icon, "welded") + closed_locked_welded_icon = icon(closed_locked_icon) + closed_unlocked_welded_icon = icon(closed_unlocked_icon) + closed_emagged_welded_icon = icon(closed_emagged_icon) + closed_locked_welded_icon.Blend(welded, ICON_OVERLAY) + closed_unlocked_welded_icon.Blend(welded, ICON_OVERLAY) + closed_emagged_welded_icon.Blend(welded, ICON_OVERLAY) + + // Finish up emagged icons. + var/icon/sparks = icon(base_icon, "sparks") + closed_emagged_icon.Blend(sparks, ICON_OVERLAY) + closed_emagged_welded_icon.Blend(sparks, ICON_OVERLAY) + + // Insert our bevy of icons into the final icon file. + new_icon.Insert(open_icon, "open") + new_icon.Insert(closed_emagged_icon, "closed_emagged") + new_icon.Insert(closed_emagged_welded_icon, "closed_emagged_welded") + new_icon.Insert(closed_locked_icon, "closed_locked") + new_icon.Insert(closed_locked_welded_icon, "closed_locked_welded") + new_icon.Insert(closed_unlocked_icon, "closed_unlocked") + new_icon.Insert(closed_unlocked_welded_icon, "closed_unlocked_welded") + + // Set icon! + icon = new_icon + +/decl/closet_appearance/tactical + color = COLOR_RED_GRAY + extra_decals = list( + "inset" = COLOR_GRAY + ) + +/decl/closet_appearance/tactical/alt + color = COLOR_PALE_BTL_GREEN + +/decl/closet_appearance/wardrobe + extra_decals = list( + "stripe_horizontal" = COLOR_PALE_BLUE_GRAY, + "stripe_w" = COLOR_GRAY + ) + +/decl/closet_appearance/wardrobe/mixed + extra_decals = list( + "stripe_horizontal_upper" = COLOR_PURPLE_GRAY, + "stripe_horizontal_lower" = COLOR_PALE_RED_GRAY, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/orange + extra_decals = list( + "stripe_horizontal" = COLOR_PALE_ORANGE, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/green + extra_decals = list( + "stripe_horizontal" = COLOR_GREEN_GRAY, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/grey + extra_decals = list( + "stripe_horizontal" = COLOR_GRAY, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/pink + extra_decals = list( + "stripe_horizontal" = COLOR_PALE_PINK, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/black + extra_decals = list( + "stripe_horizontal" = COLOR_GRAY20, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/yellow + extra_decals = list( + "stripe_horizontal" = COLOR_PALE_YELLOW, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/red + extra_decals = list( + "stripe_horizontal" = COLOR_RED_GRAY, + "stripe_w" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/wardrobe/white + extra_decals = list( + "stripe_horizontal" = COLOR_GRAY, + "stripe_w" = COLOR_OFF_WHITE, + ) + +/decl/closet_appearance/bio + color = COLOR_PALE_ORANGE + decals = list( + "l3" = COLOR_OFF_WHITE, + "stripe_horizontal_narrow" = COLOR_ORANGE + ) + extra_decals = list( + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/bio/command + extra_decals = list( + "lower_half_solid" = COLOR_BLUE_GRAY, + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/bio/science + extra_decals = list( + "lower_half_solid" = COLOR_PALE_YELLOW, + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/bio/security + extra_decals = list( + "lower_half_solid" = COLOR_RED_GRAY, + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/bio/janitor + color = COLOR_PURPLE + decals = list( + "l3" = COLOR_OFF_WHITE, + ) + extra_decals = list( + "stripe_horizontal_broad" = COLOR_ORANGE, + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/bio/virology + extra_decals = list( + "lower_half_solid" = COLOR_GREEN_GRAY, + "biohazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet + can_lock = TRUE + +/decl/closet_appearance/secure_closet/engineering + can_lock = TRUE + color = COLOR_YELLOW_GRAY + decals = list( + "upper_side_vent", + "lower_side_vent" + ) + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_BEASTY_BROWN, + "stripe_vertical_left_partial" = COLOR_BEASTY_BROWN, + "eng" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/engineering/electrical + decals = list( + "lower_vent" + ) + extra_decals = list( + "electric" = COLOR_BEASTY_BROWN, + "vertical_stripe_simple" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/engineering/atmos + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_CYAN_BLUE, + "stripe_vertical_mid_partial" = COLOR_CYAN_BLUE, + "atmos" = COLOR_CYAN_BLUE + ) + +/decl/closet_appearance/secure_closet/engineering/welding + decals = list( + "lower_vent" + ) + extra_decals = list( + "fire" = COLOR_BEASTY_BROWN, + "vertical_stripe_simple" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/engineering/tools + can_lock = FALSE + decals = list( + "lower_vent" + ) + extra_decals = list( + "tool" = COLOR_BEASTY_BROWN, + "vertical_stripe_simple" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/engineering/tools/radiation + extra_decals = list( + "l2" = COLOR_BEASTY_BROWN, + "rads" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/engineering/ce + color = COLOR_OFF_WHITE + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_CLOSET_GOLD, + "stripe_vertical_mid_partial" = COLOR_CLOSET_GOLD, + "eng_narrow" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/mining + color = COLOR_WARM_YELLOW + decals = list( + "upper_side_vent", + "lower_side_vent" + ) + extra_decals = list( + "stripe_vertical_mid_partial" = COLOR_BEASTY_BROWN, + "stripe_vertical_left_partial" = COLOR_BEASTY_BROWN, + "mining" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/mining/sec + decals = list( + "stripe_vertical_mid_partial" = COLOR_NT_RED, + "stripe_vertical_left_partial" = COLOR_NT_RED, + "mining" = COLOR_NT_RED + ) + +/decl/closet_appearance/secure_closet/command + color = COLOR_BLUE_GRAY + decals = list( + "lower_holes", + "upper_holes" + ) + extra_decals = list( + "stripe_vertical_left_partial" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_partial" = COLOR_CLOSET_GOLD, + "captain" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/command/hop + color = COLOR_PALE_BLUE_GRAY + extra_decals = list( + "stripe_vertical_mid_partial" = COLOR_CLOSET_GOLD, + "hop" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/cmo + color = COLOR_BABY_BLUE + decals = list( + "upper_side_vent", + "lower_side_vent" + ) + extra_decals = list( + "medcircle" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_partial" = COLOR_CLOSET_GOLD, + "stripe_vertical_mid_partial" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/medical + color = COLOR_OFF_WHITE + decals = null + extra_decals = list( + "circle" = COLOR_BLUE_GRAY, + "stripes_horizontal" = COLOR_BLUE_GRAY + ) + +/decl/closet_appearance/secure_closet/medical/virology + decals = list( + "upper_side_vent", + "lower_side_vent" + ) + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_BOTTLE_GREEN, + "stripe_vertical_mid_partial" = COLOR_BOTTLE_GREEN, + "viro" = COLOR_BOTTLE_GREEN + ) + +/decl/closet_appearance/secure_closet/medical/alt + extra_decals = list( + "medcircle" =COLOR_BLUE_GRAY, + "stripe_vertical_right_partial" = COLOR_BLUE_GRAY, + "stripe_vertical_mid_partial" = COLOR_BLUE_GRAY + ) + +/decl/closet_appearance/secure_closet/cargo + color = COLOR_WARM_YELLOW + decals = list( + "upper_side_vent", + "lower_side_vent" + ) + extra_decals = list( + "cargo" = COLOR_GRAY40, + "stripe_vertical_left_partial" = COLOR_GRAY40, + "stripe_vertical_mid_partial" = COLOR_GRAY40 + ) + +/decl/closet_appearance/secure_closet/cargo/qm + extra_decals = list( + "cargo" = COLOR_BEASTY_BROWN, + "stripe_vertical_left_partial" = COLOR_BEASTY_BROWN, + "stripe_vertical_mid_partial" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/security + color = COLOR_NT_RED + decals = list( + "lower_holes" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_WARM_YELLOW, + "security" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/secure_closet/security/warden + extra_decals = list( + "stripe_vertical_left_full" = COLOR_WARM_YELLOW, + "stripe_vertical_right_full" = COLOR_WARM_YELLOW, + "security" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/secure_closet/security/hos + extra_decals = list( + "stripe_vertical_left_full" = COLOR_WARM_YELLOW, + "stripe_vertical_right_full" = COLOR_WARM_YELLOW, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "security" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/bomb + color = COLOR_DARK_GREEN_GRAY + decals = list( + "l4" = COLOR_OFF_WHITE + ) + extra_decals = list( + "lower_half_solid" = COLOR_GREEN_GRAY + ) + +/decl/closet_appearance/bomb/security + extra_decals = list( + "lower_half_solid" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/oxygen + color = COLOR_LIGHT_CYAN + decals = list( + "lower_vent" + ) + extra_decals = list( + "oxy" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/oxygen/fire + color = COLOR_RED_GRAY + extra_decals = list( + "extinguisher" = COLOR_OFF_WHITE, + "vertical_stripe_simple" = COLOR_OFF_WHITE, + ) + +/decl/closet_appearance/alien + color = COLOR_PURPLE + +/decl/closet_appearance/secure_closet/expedition + color = COLOR_BLUE_GRAY + decals = list( + "lower_side_vent" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_PURPLE, + "security" = COLOR_PURPLE + ) + +/decl/closet_appearance/secure_closet/expedition/pathfinder + extra_decals = list( + "stripe_vertical_left_full" = COLOR_PURPLE, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_PURPLE, + "security" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/expedition/science + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_PURPLE, + "research" = COLOR_PURPLE + ) + +/decl/closet_appearance/secure_closet/rd + color = COLOR_BOTTLE_GREEN + decals = list( + "lower_holes" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_GOLD, + "stripe_vertical_left_full" = COLOR_PURPLE, + "stripe_vertical_right_full" = COLOR_PURPLE, + "research" = COLOR_GOLD + ) + +/decl/closet_appearance/secure_closet/corporate + color = COLOR_GREEN_GRAY + decals = list( + "lower_holes" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_GRAY80, + "research" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/hydroponics + color = COLOR_GREEN_GRAY + decals = list( + "lower_side_vent", + "upper_side_vent" + ) + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_DARK_GREEN_GRAY, + "stripe_vertical_mid_partial" = COLOR_DARK_GREEN_GRAY, + "hydro" = COLOR_DARK_GREEN_GRAY + ) + +/decl/closet_appearance/secure_closet/chaplain + decals = list( + "lower_side_vent", + "upper_side_vent" + ) + extra_decals = list( + "stripe_vertical_right_full" = COLOR_GRAY20, + "stripe_vertical_mid_full" = COLOR_GRAY20 + ) + +/decl/closet_appearance/secure_closet/sol + color = COLOR_BABY_BLUE + decals = list( + "lower_side_vent" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_BOTTLE_GREEN, + "security" = COLOR_BOTTLE_GREEN + ) + +/decl/closet_appearance/secure_closet/sol/two + extra_decals = list( + "stripe_vertical_left_full" = COLOR_BOTTLE_GREEN, + "stripe_vertical_right_full" = COLOR_BOTTLE_GREEN, + "security" = COLOR_BOTTLE_GREEN + ) + +/decl/closet_appearance/secure_closet/sol/two/dark + color = COLOR_DARK_BLUE_GRAY + +// Crates. +/decl/closet_appearance/crate + decals = null + extra_decals = null + base_icon = 'icons/obj/closets/bases/crate.dmi' + decal_icon = 'icons/obj/closets/decals/crate.dmi' + color = COLOR_GRAY40 + +/decl/closet_appearance/crate/plastic + color = COLOR_GRAY80 + +/decl/closet_appearance/crate/oxygen + color = COLOR_CYAN_BLUE + decals = list( + "crate_stripes" = COLOR_OFF_WHITE, + "crate_oxy" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/medical + color = COLOR_GRAY80 + decals = list( + "crate_stripe" = COLOR_WARM_YELLOW, + "crate_cross" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/medical/trauma + decals = list( + "crate_stripe" = COLOR_NT_RED, + "crate_cross" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/medical/oxygen + decals = list( + "crate_stripe" = COLOR_BABY_BLUE, + "crate_cross" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/medical/toxins + decals = list( + "crate_stripe" = COLOR_GREEN_GRAY, + "crate_cross" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/hydroponics + decals = list( + "crate_stripe_left" = COLOR_GREEN_GRAY, + "crate_stripe_right" = COLOR_GREEN_GRAY + ) + +/decl/closet_appearance/crate/radiation + color = COLOR_BROWN_ORANGE + extra_decals = list( + "crate_radiation_left" = COLOR_WARM_YELLOW, + "crate_radiation_right" = COLOR_WARM_YELLOW, + "lid_stripes" = COLOR_NT_RED + ) + +/decl/closet_appearance/crate/freezer + color = COLOR_BABY_BLUE + +/decl/closet_appearance/crate/secure + can_lock = TRUE + +/decl/closet_appearance/crate/secure/hazard + color = COLOR_NT_RED + decals = list( + "crate_bracing" + ) + extra_decals = list( + "crate_stripe_left" = COLOR_OFF_WHITE, + "crate_stripe_right" = COLOR_OFF_WHITE, + "toxin" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/secure/weapon + color = COLOR_GREEN_GRAY + decals = list( + "crate_bracing" + ) + extra_decals = list( + "crate_stripe_left" = COLOR_OFF_WHITE, + "crate_stripe_right" = COLOR_OFF_WHITE, + "hazard" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/crate/secure/hydroponics + extra_decals = list( + "crate_stripe_left" = COLOR_GREEN_GRAY, + "crate_stripe_right" = COLOR_GREEN_GRAY + ) + +/decl/closet_appearance/crate/secure/shuttle + extra_decals = list( + "crate_stripe_left" = COLOR_YELLOW_GRAY, + "crate_stripe_right" = COLOR_YELLOW_GRAY + ) + +// Large crates. +/decl/closet_appearance/large_crate + base_icon = 'icons/obj/closets/bases/large_crate.dmi' + decal_icon = 'icons/obj/closets/decals/large_crate.dmi' + decals = null + extra_decals = null + +/decl/closet_appearance/large_crate/critter + decals = list( + "airholes" + ) + extra_decals = list( + "oxy" = COLOR_WHITE + ) + +/decl/closet_appearance/large_crate/hydroponics + extra_decals = list( + "stripes" = COLOR_GREEN_GRAY, + "text" = COLOR_GREEN_GRAY + ) + +/decl/closet_appearance/large_crate/secure + can_lock = TRUE + +/decl/closet_appearance/large_crate/secure/hazard + color = COLOR_NT_RED + decals = list( + "crate_bracing" + ) + extra_decals = list( + "marking" = COLOR_OFF_WHITE, + "text_upper" = COLOR_OFF_WHITE + ) + +// Cabinets. +/decl/closet_appearance/cabinet + base_icon = 'icons/obj/closets/bases/cabinet.dmi' + decal_icon = null + color = WOOD_COLOR_RICH + decals = null + extra_decals = null + +/decl/closet_appearance/cabinet/secure + can_lock = TRUE + +// Wall lockers. +/decl/closet_appearance/wall + base_icon = 'icons/obj/closets/bases/wall.dmi' + decal_icon = 'icons/obj/closets/decals/wall.dmi' + decals = list( + "vent" + ) + extra_decals = null + +/decl/closet_appearance/wall/emergency + decals = null + extra_decals = list( + "glass" = COLOR_WHITE + ) + +/decl/closet_appearance/wall/medical + decals = null + color = COLOR_OFF_WHITE + extra_decals = list( + "stripe_outer" = COLOR_BLUE_GRAY, + "stripe_inner" = COLOR_OFF_WHITE, + "cross" = COLOR_BLUE_GRAY + ) + +/decl/closet_appearance/wall/shipping + color = COLOR_WARM_YELLOW + decals = null + extra_decals = list( + "stripes" = COLOR_BEASTY_BROWN, + "glass" = COLOR_WHITE + ) + +/decl/closet_appearance/wall/hydrant + color = COLOR_NT_RED + decals = null + extra_decals = list( + "stripes" = COLOR_OFF_WHITE, + "glass" = COLOR_WHITE + ) + +// Carts +/decl/closet_appearance/cart + color = COLOR_GRAY20 + base_icon = 'icons/obj/closets/bases/cart.dmi' + decal_icon = 'icons/obj/closets/decals/cart.dmi' + decals = null + extra_decals = null + +/decl/closet_appearance/cart/trash + color = COLOR_BOTTLE_GREEN + +/decl/closet_appearance/cart/biohazard + can_lock = TRUE + decals = list( + "biohazard" = COLOR_GRAY80 + ) + +/decl/closet_appearance/cart/biohazard/alt + color = COLOR_SURGERY_BLUE + decals = list( + "biohazard" = COLOR_RED_GRAY + ) + +// From the Torch +/decl/closet_appearance/secure_closet/exploration // These three renamed since Polaris actually uses these + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_PURPLE, + "exped" = COLOR_PURPLE + ) + +/decl/closet_appearance/secure_closet/exploration/pilot + extra_decals = list( + "stripe_vertical_left_full" = COLOR_PURPLE, + "stripe_vertical_right_full" = COLOR_PURPLE, + "exped" = COLOR_PURPLE + ) + +/decl/closet_appearance/secure_closet/exploration/pathfinder + extra_decals = list( + "stripe_vertical_left_full" = COLOR_PURPLE, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_PURPLE, + "exped" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/command + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/command/bo + extra_decals = list( + "stripe_vertical_left_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/command/xo + extra_decals = list( + "stripe_vertical_left_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_CLOSET_GOLD, + "command" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/command/co + extra_decals = list( + "stripe_vertical_left_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_mid_full" = COLOR_OFF_WHITE, + "stripe_vertical_right_full" = COLOR_CLOSET_GOLD, + "command" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/torch/engineering + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_WARM_YELLOW, + "exped" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/secure_closet/torch/engineering/atmos + extra_decals = list( + "stripe_vertical_right_full" = COLOR_WARM_YELLOW, + "stripe_vertical_mid_full" = COLOR_CYAN_BLUE, + "atmos_upper" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/secure_closet/torch/engineering/se + extra_decals = list( + "stripe_vertical_left_full" = COLOR_WARM_YELLOW, + "stripe_vertical_right_full" = COLOR_WARM_YELLOW, + "exped" = COLOR_WARM_YELLOW + ) + +/decl/closet_appearance/secure_closet/torch/engineering/ce + extra_decals = list( + "stripe_vertical_left_full" = COLOR_WARM_YELLOW, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_WARM_YELLOW, + "exped" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/medical + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_BABY_BLUE, + "medical" = COLOR_BABY_BLUE + ) + +/decl/closet_appearance/secure_closet/torch/medical/physician + extra_decals = list( + "stripe_vertical_left_full" = COLOR_BABY_BLUE, + "stripe_vertical_right_full" = COLOR_BABY_BLUE, + "medical" = COLOR_BABY_BLUE + ) + +/decl/closet_appearance/secure_closet/torch/medical/cmo + extra_decals = list( + "stripe_vertical_left_full" = COLOR_BABY_BLUE, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_BABY_BLUE, + "medical" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/sol + color = COLOR_BABY_BLUE + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/torch/sol/rep + color = COLOR_BABY_BLUE + extra_decals = list( + "stripe_vertical_left_full" = COLOR_OFF_WHITE, + "stripe_vertical_right_full" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/torch/corporate + color = COLOR_BOTTLE_GREEN + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/torch/corporate/liaison + extra_decals = list( + "stripe_vertical_left_full" = COLOR_OFF_WHITE, + "stripe_vertical_right_full" = COLOR_OFF_WHITE, + "command" = COLOR_OFF_WHITE + ) + +/decl/closet_appearance/secure_closet/torch/science + extra_decals = list( + "stripe_vertical_left_full" = COLOR_PURPLE_GRAY, + "stripe_vertical_right_full" = COLOR_PURPLE_GRAY, + "research" = COLOR_PURPLE_GRAY + ) + +/decl/closet_appearance/secure_closet/torch/science/cso + color = COLOR_BOTTLE_GREEN + decals = list( + "lower_holes" + ) + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_GOLD, + "stripe_vertical_left_full" = COLOR_PURPLE, + "stripe_vertical_right_full" = COLOR_PURPLE, + "research" = COLOR_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/security + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_NT_RED, + "security" = COLOR_NT_RED + ) + +/decl/closet_appearance/secure_closet/torch/security/forensics + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_NT_RED, + "forensics" = COLOR_NT_RED + ) + +/decl/closet_appearance/secure_closet/torch/security/warden + extra_decals = list( + "stripe_vertical_left_full" = COLOR_NT_RED, + "stripe_vertical_right_full" = COLOR_NT_RED, + "security" = COLOR_NT_RED + ) + +/decl/closet_appearance/secure_closet/torch/security/hos + extra_decals = list( + "stripe_vertical_left_full" = COLOR_NT_RED, + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_right_full" = COLOR_NT_RED, + "security" = COLOR_CLOSET_GOLD + ) + +/decl/closet_appearance/secure_closet/torch/hydroponics + extra_decals = list( + "stripe_vertical_right_partial" = COLOR_GREEN_GRAY, + "stripe_vertical_mid_partial" = COLOR_GREEN_GRAY, + "hydro" = COLOR_GREEN_GRAY + ) + +/decl/closet_appearance/secure_closet/torch/cargo + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_BEASTY_BROWN, + "cargo_upper" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/torch/cargo/worker + extra_decals = list( + "stripe_vertical_left_full" = COLOR_BEASTY_BROWN, + "stripe_vertical_right_full" = COLOR_BEASTY_BROWN, + "cargo_upper" = COLOR_BEASTY_BROWN + ) + +/decl/closet_appearance/secure_closet/torch/cargo/deck_officer + extra_decals = list( + "stripe_vertical_mid_full" = COLOR_CLOSET_GOLD, + "stripe_vertical_left_full" = COLOR_BEASTY_BROWN, + "stripe_vertical_right_full" = COLOR_BEASTY_BROWN, + "cargo_upper" = COLOR_CLOSET_GOLD + ) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 7ea80de7ff8..14e1c276b23 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -1,30 +1,25 @@ /obj/structure/closet/coffin name = "coffin" desc = "It's a burial receptacle for the dearly departed." - icon_state = "coffin" - icon_closed = "coffin" - icon_opened = "coffin_open" + icon = 'icons/obj/closets/coffin.dmi' + + icon_state = "closed_unlocked" seal_tool = /obj/item/weapon/tool/screwdriver breakout_sound = 'sound/weapons/tablehit1.ogg' - -/obj/structure/closet/coffin/update_icon() - if(!opened) - icon_state = icon_closed - else - icon_state = icon_opened + closet_appearance = null // Special icon for us /* Graves */ /obj/structure/closet/grave name = "grave" desc = "Dirt." - icon_state = "grave" - icon_closed = "grave" - icon_opened = "grave_open" + icon = 'icons/obj/closets/grave.dmi' + icon_state = "closed_unlocked" seal_tool = null breakout_sound = 'sound/weapons/thudswoosh.ogg' anchored = 1 max_closets = 1 opened = 1 + closet_appearance = null // Special icon for us /obj/structure/closet/grave/attack_hand(mob/user as mob) if(opened) diff --git a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm index 3546cd52e7b..72a9188d127 100644 --- a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm +++ b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm @@ -1,6 +1,4 @@ /obj/structure/closet/crate/critter name = "critter crate" desc = "A crate which can sustain life for a while." - icon_state = "critter" - icon_opened = "critteropen" - icon_closed = "critter" + closet_appearance = /decl/closet_appearance/large_crate/critter \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm index c261d8d2f63..a3515fd3fd2 100644 --- a/code/game/objects/structures/crates_lockers/closets/fitness.dm +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -1,8 +1,7 @@ /obj/structure/closet/athletic_mixed name = "athletic wardrobe" desc = "It's a storage unit for athletic wear." - icon_state = "mixed" - icon_closed = "mixed" + closet_appearance = /decl/closet_appearance/wardrobe/mixed starts_with = list( /obj/item/clothing/under/shorts/grey, @@ -44,8 +43,7 @@ /obj/structure/closet/lasertag/red name = "red laser tag equipment" desc = "It's a storage unit for laser tag equipment." - icon_state = "red" - icon_closed = "red" + closet_appearance = /decl/closet_appearance/wardrobe/red starts_with = list( /obj/item/weapon/gun/energy/lasertag/red = 5, @@ -55,8 +53,7 @@ /obj/structure/closet/lasertag/blue name = "blue laser tag equipment" desc = "It's a storage unit for laser tag equipment." - icon_state = "blue" - icon_closed = "blue" + closet_appearance = /decl/closet_appearance/wardrobe starts_with = list( /obj/item/weapon/gun/energy/lasertag/blue = 5, diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index f567cdbd3a1..2ca6dc3c6e4 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -1,38 +1,23 @@ /obj/structure/closet/cabinet name = "cabinet" desc = "Old will forever be in fashion." - icon_state = "cabinet_closed" - icon_closed = "cabinet_closed" - icon_opened = "cabinet_open" - -/obj/structure/closet/cabinet/update_icon() - if(!opened) - icon_state = icon_closed - else - icon_state = icon_opened + closet_appearance = /decl/closet_appearance/cabinet /obj/structure/closet/acloset name = "strange closet" desc = "It looks alien!" - icon_state = "acloset" - icon_closed = "acloset" - icon_opened = "aclosetopen" - + closet_appearance = /decl/closet_appearance/alien /obj/structure/closet/gimmick name = "administrative supply closet" desc = "It's a storage unit for things that have no right being here." - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical anchored = 0 /obj/structure/closet/gimmick/russian name = "russian surplus closet" desc = "It's a storage unit for Russian standard-issue surplus." - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/clothing/head/ushanka = 5, @@ -42,9 +27,7 @@ /obj/structure/closet/gimmick/tacticool name = "tacticool gear closet" desc = "It's a storage unit for Tacticool gear." - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/clothing/glasses/eyepatch, @@ -60,9 +43,7 @@ /obj/structure/closet/thunderdome name = "\improper Thunderdome closet" desc = "Everything you need!" - icon_state = "syndicate" - icon_closed = "syndicate" - icon_opened = "syndicateopen" + closet_appearance = /decl/closet_appearance/tactical/alt anchored = 1 /obj/structure/closet/thunderdome/tdred @@ -78,9 +59,7 @@ /obj/structure/closet/thunderdome/tdgreen name = "green-team Thunderdome closet" - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/clothing/suit/armor/tdome/green = 3, @@ -93,8 +72,6 @@ /obj/structure/closet/alien name = "alien container" desc = "Contains secrets of the universe." - icon = 'icons/obj/abductor.dmi' - icon_state = "alien_locker" - icon_closed = "alien_locker" - icon_opened = "alien_locker_open" + icon = 'icons/obj/closets/abductor.dmi' anchored = TRUE + closet_appearance = null // special icons diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index cfed9c545f5..642935973d2 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -11,8 +11,7 @@ /obj/structure/closet/gmcloset name = "formal closet" desc = "It's a storage unit for formal clothing." - icon_state = "black" - icon_closed = "black" + closet_appearance = /decl/closet_appearance/wardrobe/black starts_with = list( /obj/item/clothing/head/that = 2, @@ -37,8 +36,7 @@ /obj/structure/closet/chefcloset name = "chef's closet" desc = "It's a storage unit for foodservice garments." - icon_state = "black" - icon_closed = "black" + closet_appearance = /decl/closet_appearance/wardrobe/black starts_with = list( /obj/item/clothing/under/sundress, @@ -55,8 +53,7 @@ /obj/structure/closet/jcloset name = "custodial closet" desc = "It's a storage unit for janitorial clothes and gear." - icon_state = "mixed" - icon_closed = "mixed" + closet_appearance = /decl/closet_appearance/wardrobe/mixed starts_with = list( /obj/item/clothing/under/rank/janitor, @@ -79,8 +76,7 @@ /obj/structure/closet/lawcloset name = "legal closet" desc = "It's a storage unit for courtroom apparel and items." - icon_state = "blue" - icon_closed = "blue" + closet_appearance = /decl/closet_appearance/wardrobe starts_with = list( /obj/item/clothing/under/lawyer/female = 2, diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm index 695b5575d2b..66af8329f5b 100644 --- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm +++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm @@ -1,14 +1,10 @@ /obj/structure/closet/l3closet name = "level-3 biohazard suit closet" desc = "It's a storage unit for level-3 biohazard gear." - icon_state = "bio" - icon_closed = "bio" - icon_opened = "bioopen" + closet_appearance = /decl/closet_appearance/bio /obj/structure/closet/l3closet/general - icon_state = "bio_general" - icon_closed = "bio_general" - icon_opened = "bio_generalopen" + closet_appearance = /decl/closet_appearance/bio starts_with = list( /obj/item/clothing/suit/bio_suit/general, @@ -16,9 +12,7 @@ /obj/structure/closet/l3closet/virology - icon_state = "bio_virology" - icon_closed = "bio_virology" - icon_opened = "bio_virologyopen" + closet_appearance = /decl/closet_appearance/bio/virology starts_with = list( /obj/item/clothing/suit/bio_suit/virology, @@ -28,9 +22,7 @@ /obj/structure/closet/l3closet/security - icon_state = "bio_security" - icon_closed = "bio_security" - icon_opened = "bio_securityopen" + closet_appearance = /decl/closet_appearance/bio/security starts_with = list( /obj/item/clothing/suit/bio_suit/security, @@ -38,9 +30,7 @@ ///obj/item/weapon/gun/energy/taser/xeno/sec) //VOREStation Removal /obj/structure/closet/l3closet/janitor - icon_state = "bio_janitor" - icon_closed = "bio_janitor" - icon_opened = "bio_janitoropen" + closet_appearance = /decl/closet_appearance/bio/janitor starts_with = list( /obj/item/clothing/suit/bio_suit/janitor = 2, @@ -50,9 +40,7 @@ /obj/structure/closet/l3closet/scientist - icon_state = "bio_scientist" - icon_closed = "bio_scientist" - icon_opened = "bio_scientistopen" + closet_appearance = /decl/closet_appearance/bio/science starts_with = list( /obj/item/clothing/suit/bio_suit/scientist, @@ -65,9 +53,7 @@ /obj/structure/closet/l3closet/medical - icon_state = "bio_scientist" - icon_closed = "bio_scientist" - icon_opened = "bio_scientistopen" + closet_appearance = /decl/closet_appearance/bio/science starts_with = list( /obj/item/clothing/suit/bio_suit/general = 3, diff --git a/code/game/objects/structures/crates_lockers/closets/malfunction.dm b/code/game/objects/structures/crates_lockers/closets/malfunction.dm index 40b6ec68b9f..feaa63e39f2 100644 --- a/code/game/objects/structures/crates_lockers/closets/malfunction.dm +++ b/code/game/objects/structures/crates_lockers/closets/malfunction.dm @@ -1,8 +1,6 @@ /obj/structure/closet/malf/suits desc = "It's a storage unit for operational gear." - icon_state = "syndicate" - icon_closed = "syndicate" - icon_opened = "syndicateopen" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/weapon/tank/jetpack/void, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index 516d2a645e6..52b949f809d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -1,24 +1,7 @@ /obj/structure/closet/secure_closet/bar name = "booze closet" req_access = list(access_bar) - icon_state = "cabinetdetective_locked" - icon_closed = "cabinetdetective" - icon_locked = "cabinetdetective_locked" - icon_opened = "cabinetdetective_open" - icon_broken = "cabinetdetective_broken" - icon_off = "cabinetdetective_broken" + closet_appearance = /decl/closet_appearance/cabinet/secure starts_with = list( /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 10) - -/obj/structure/closet/secure_closet/bar/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 9ab55aa86cf..6b5fef54f3d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -1,12 +1,7 @@ /obj/structure/closet/secure_closet/cargotech name = "cargo technician's locker" req_access = list(access_cargo) - icon_state = "securecargo1" - icon_closed = "securecargo" - icon_locked = "securecargo1" - icon_opened = "securecargoopen" - icon_broken = "securecargobroken" - icon_off = "securecargooff" + closet_appearance = /decl/closet_appearance/secure_closet/cargo starts_with = list( /obj/item/clothing/under/rank/cargotech, @@ -34,12 +29,7 @@ /obj/structure/closet/secure_closet/quartermaster name = "quartermaster's locker" req_access = list(access_qm) - icon_state = "secureqm1" - icon_closed = "secureqm" - icon_locked = "secureqm1" - icon_opened = "secureqmopen" - icon_broken = "secureqmbroken" - icon_off = "secureqmoff" + closet_appearance = /decl/closet_appearance/secure_closet/cargo/qm starts_with = list( /obj/item/clothing/under/rank/cargo, @@ -70,13 +60,8 @@ /obj/structure/closet/secure_closet/miner name = "miner's equipment" - icon_state = "miningsec1" - icon_closed = "miningsec" - icon_locked = "miningsec1" - icon_opened = "miningsecopen" - icon_broken = "miningsecbroken" - icon_off = "miningsecoff" req_access = list(access_mining) + closet_appearance = /decl/closet_appearance/secure_closet/mining starts_with = list( /obj/item/device/radio/headset/headset_mine, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 43f50a83873..7b1dd6a41f7 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -1,12 +1,7 @@ /obj/structure/closet/secure_closet/engineering_chief name = "chief engineer's locker" - icon_state = "securece1" - icon_closed = "securece" - icon_locked = "securece1" - icon_opened = "secureceopen" - icon_broken = "securecebroken" - icon_off = "secureceoff" req_access = list(access_ce) + closet_appearance = /decl/closet_appearance/secure_closet/engineering/ce starts_with = list( /obj/item/clothing/accessory/storage/brown_vest, @@ -46,13 +41,8 @@ /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies" - icon_state = "secureengelec1" - icon_closed = "secureengelec" - icon_locked = "secureengelec1" - icon_opened = "toolclosetopen" - icon_broken = "secureengelecbroken" - icon_off = "secureengelecoff" req_access = list(access_engine_equip) + closet_appearance = /decl/closet_appearance/secure_closet/engineering/electrical starts_with = list( /obj/item/clothing/gloves/yellow = 2, @@ -63,13 +53,8 @@ /obj/structure/closet/secure_closet/engineering_welding name = "welding supplies" - icon_state = "secureengweld1" - icon_closed = "secureengweld" - icon_locked = "secureengweld1" - icon_opened = "toolclosetopen" - icon_broken = "secureengweldbroken" - icon_off = "secureengweldoff" req_access = list(access_construction) + closet_appearance = /decl/closet_appearance/secure_closet/engineering/welding starts_with = list( /obj/item/clothing/head/welding = 3, @@ -79,13 +64,8 @@ /obj/structure/closet/secure_closet/engineering_personal name = "engineer's locker" - icon_state = "secureeng1" - icon_closed = "secureeng" - icon_locked = "secureeng1" - icon_opened = "secureengopen" - icon_broken = "secureengbroken" - icon_off = "secureengoff" req_access = list(access_engine_equip) + closet_appearance = /decl/closet_appearance/secure_closet/engineering starts_with = list( /obj/item/clothing/accessory/storage/brown_vest, @@ -115,13 +95,8 @@ /obj/structure/closet/secure_closet/atmos_personal name = "technician's locker" - icon_state = "secureatm1" - icon_closed = "secureatm" - icon_locked = "secureatm1" - icon_opened = "secureatmopen" - icon_broken = "secureatmbroken" - icon_off = "secureatmoff" req_access = list(access_atmospherics) + closet_appearance = /decl/closet_appearance/secure_closet/engineering/atmos starts_with = list( /obj/item/clothing/accessory/storage/brown_vest, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index f6ca40fe2b0..afb8b1c3baa 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -1,20 +1,6 @@ -/obj/structure/closet/secure_closet/freezer - -/obj/structure/closet/secure_closet/freezer/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened - /obj/structure/closet/secure_closet/freezer/kitchen name = "kitchen cabinet" - req_access = list() + req_access = list(access_kitchen) starts_with = list( /obj/item/weapon/reagent_containers/food/condiment/flour = 7, @@ -26,12 +12,8 @@ /obj/structure/closet/secure_closet/freezer/meat name = "meat fridge" - icon_state = "fridge1" - icon_closed = "fridge" - icon_locked = "fridge1" - icon_opened = "fridgeopen" - icon_broken = "fridgebroken" - icon_off = "fridge1" + icon = 'icons/obj/closets/fridge.dmi' + closet_appearance = null starts_with = list( /obj/item/weapon/reagent_containers/food/snacks/meat/monkey = 10) @@ -39,12 +21,8 @@ /obj/structure/closet/secure_closet/freezer/fridge name = "refrigerator" - icon_state = "fridge1" - icon_closed = "fridge" - icon_locked = "fridge1" - icon_opened = "fridgeopen" - icon_broken = "fridgebroken" - icon_off = "fridge1" + icon = 'icons/obj/closets/fridge.dmi' + closet_appearance = null starts_with = list( /obj/item/weapon/reagent_containers/food/drinks/milk = 6, @@ -55,12 +33,8 @@ /obj/structure/closet/secure_closet/freezer/money name = "freezer" - icon_state = "fridge1" - icon_closed = "fridge" - icon_locked = "fridge1" - icon_opened = "fridgeopen" - icon_broken = "fridgebroken" - icon_off = "fridge1" + icon = 'icons/obj/closets/fridge.dmi' + closet_appearance = null req_access = list(access_heads_vault) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm index 2be8e52db13..b69a3ff368d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -2,12 +2,8 @@ name = "gun cabinet" icon = 'icons/obj/guncabinet.dmi' icon_state = "base" - icon_off ="base" - icon_broken ="base" - icon_locked ="base" - icon_closed ="base" - icon_opened = "base" req_one_access = list(access_armory) + closet_appearance = null /obj/structure/closet/secure_closet/guncabinet/Initialize() . = ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index 71c76bb7e37..b97f0bf2f7f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -1,12 +1,7 @@ /obj/structure/closet/secure_closet/hydroponics name = "botanist's locker" req_access = list(access_hydroponics) - icon_state = "hydrosecure1" - icon_closed = "hydrosecure" - icon_locked = "hydrosecure1" - icon_opened = "hydrosecureopen" - icon_broken = "hydrosecurebroken" - icon_off = "hydrosecureoff" + closet_appearance = /decl/closet_appearance/secure_closet/hydroponics starts_with = list( /obj/item/weapon/storage/bag/plants, @@ -32,12 +27,7 @@ /obj/structure/closet/secure_closet/hydroponics/sci name = "xenoflorist's locker" req_access = list(access_xenobiology) - icon_state = "scihydrosecure1" - icon_closed = "scihydrosecure" - icon_locked = "scihydrosecure1" - icon_opened = "scihydrosecureopen" - icon_broken = "scihydrosecurebroken" - icon_off = "scihydrosecureoff" + closet_appearance = /decl/closet_appearance/secure_closet/hydroponics /obj/structure/closet/secure_closet/hydroponics/sci/Initialize() starts_with += /obj/item/clothing/head/bio_hood/scientist diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 86cb24dc8c4..b8c849320d3 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -1,13 +1,8 @@ /obj/structure/closet/secure_closet/medical1 name = "medicine closet" desc = "Filled with medical junk." - icon_state = "medical1" - icon_closed = "medical" - icon_locked = "medical1" - icon_opened = "medicalopen" - icon_broken = "medicalbroken" - icon_off = "medicaloff" req_access = list(access_medical) + closet_appearance = /decl/closet_appearance/secure_closet/medical starts_with = list( /obj/item/weapon/storage/box/autoinjectors, @@ -21,12 +16,6 @@ /obj/structure/closet/secure_closet/medical2 name = "anesthetics closet" desc = "Used to knock people out." - icon_state = "medical1" - icon_closed = "medical" - icon_locked = "medical1" - icon_opened = "medicalopen" - icon_broken = "medicalbroken" - icon_off = "medicaloff" req_access = list(access_surgery) starts_with = list( @@ -37,12 +26,7 @@ /obj/structure/closet/secure_closet/medical3 name = "medical doctor's locker" req_access = list(access_medical_equip) - icon_state = "securemed1" - icon_closed = "securemed" - icon_locked = "securemed1" - icon_opened = "securemedopen" - icon_broken = "securemedbroken" - icon_off = "securemedoff" + closet_appearance = /decl/closet_appearance/secure_closet/medical/alt starts_with = list( /obj/item/clothing/under/rank/medical, @@ -105,13 +89,8 @@ /obj/structure/closet/secure_closet/paramedic name = "paramedic locker" desc = "Supplies for a first responder." - icon_state = "medical1" - icon_closed = "medical" - icon_locked = "medical1" - icon_opened = "medicalopen" - icon_broken = "medicalbroken" - icon_off = "medicaloff" req_access = list(access_medical_equip) + closet_appearance = /decl/closet_appearance/secure_closet/medical starts_with = list( /obj/item/weapon/storage/backpack/dufflebag/emt, @@ -141,12 +120,7 @@ /obj/structure/closet/secure_closet/CMO name = "chief medical officer's locker" req_access = list(access_cmo) - icon_state = "cmosecure1" - icon_closed = "cmosecure" - icon_locked = "cmosecure1" - icon_opened = "cmosecureopen" - icon_broken = "cmosecurebroken" - icon_off = "cmosecureoff" + closet_appearance = /decl/closet_appearance/secure_closet/cmo starts_with = list( /obj/item/clothing/under/rank/chief_medical_officer, @@ -155,7 +129,7 @@ /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt, /obj/item/weapon/cartridge/cmo, /obj/item/clothing/gloves/sterile/latex, - /obj/item/clothing/shoes/brown , + /obj/item/clothing/shoes/brown, /obj/item/device/radio/headset/heads/cmo, /obj/item/device/radio/headset/heads/cmo/alt, /obj/item/device/flash, @@ -208,13 +182,8 @@ /obj/structure/closet/secure_closet/chemical name = "chemical closet" desc = "Store dangerous chemicals in here." - icon_state = "medical1" - icon_closed = "medical" - icon_locked = "medical1" - icon_opened = "medicalopen" - icon_broken = "medicalbroken" - icon_off = "medicaloff" req_access = list(access_chemistry) + closet_appearance = /decl/closet_appearance/secure_closet/medical starts_with = list( /obj/item/weapon/storage/box/pillbottles = 2, @@ -230,13 +199,8 @@ /obj/structure/closet/secure_closet/psych name = "psychiatric closet" desc = "Store psychology tools and medicines in here." - icon_state = "medical1" - icon_closed = "medical" - icon_locked = "medical1" - icon_opened = "medicalopen" - icon_broken = "medicalbroken" - icon_off = "medicaloff" req_access = list(access_psychiatrist) + closet_appearance = /decl/closet_appearance/secure_closet/medical/alt starts_with = list( /obj/item/clothing/under/rank/psych, @@ -257,30 +221,13 @@ /obj/structure/closet/secure_closet/medical_wall name = "first aid closet" desc = "It's a secure wall-mounted storage unit for first aid supplies." - icon_state = "medical_wall_locked" - icon_closed = "medical_wall_unlocked" - icon_locked = "medical_wall_locked" - icon_opened = "medical_wall_open" - icon_broken = "medical_wall_spark" - icon_off = "medical_wall_off" plane = TURF_PLANE layer = ABOVE_TURF_LAYER anchored = 1 density = 0 wall_mounted = 1 req_access = list(access_medical_equip) - -/obj/structure/closet/secure_closet/medical_wall/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened + closet_appearance = /decl/closet_appearance/wall/medical /obj/structure/closet/secure_closet/medical_wall/pills name = "pill cabinet" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d75cf18e5ad..8028f065324 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -28,30 +28,13 @@ /obj/structure/closet/secure_closet/personal/cabinet - icon_state = "cabinetdetective_locked" - icon_closed = "cabinetdetective" - icon_locked = "cabinetdetective_locked" - icon_opened = "cabinetdetective_open" - icon_broken = "cabinetdetective_broken" - icon_off = "cabinetdetective_broken" + closet_appearance = /decl/closet_appearance/cabinet/secure starts_with = list( /obj/item/weapon/storage/backpack/satchel/withwallet, /obj/item/device/radio/headset ) -/obj/structure/closet/secure_closet/personal/cabinet/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened - /obj/structure/closet/secure_closet/personal/attackby(obj/item/weapon/W as obj, mob/user as mob) if (src.opened) if (istype(W, /obj/item/weapon/grab)) @@ -69,8 +52,6 @@ if(src.allowed(user) || !src.registered_name || (istype(I) && (src.registered_name == I.registered_name))) //they can open all lockers, or nobody owns this, or they own this locker src.locked = !( src.locked ) - if(src.locked) src.icon_state = src.icon_locked - else src.icon_state = src.icon_closed if(!src.registered_name) src.registered_name = I.registered_name @@ -86,14 +67,14 @@ playsound(src, "sparks", 50, 1) else to_chat(user, "Access Denied") - return + update_icon() /obj/structure/closet/secure_closet/personal/emag_act(var/remaining_charges, var/mob/user, var/visual_feedback, var/audible_feedback) if(!broken) broken = 1 locked = 0 desc = "It appears to be broken." - icon_state = src.icon_broken + update_icon() if(visual_feedback) visible_message("[visual_feedback]", "[audible_feedback]") return 1 @@ -115,7 +96,6 @@ if(!src.close()) return src.locked = 1 - src.icon_state = src.icon_locked + update_icon() src.registered_name = null src.desc = "It's a secure locker for personnel. The first card swiped gains control." - return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 4e78a613e4b..af7f37bb6dc 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -1,12 +1,7 @@ /obj/structure/closet/secure_closet/scientist name = "scientist's locker" - icon_state = "secureres1" - icon_closed = "secureres" - icon_locked = "secureres1" - icon_opened = "secureresopen" - icon_broken = "secureresbroken" - icon_off = "secureresoff" req_access = list(access_tox_storage) + closet_appearance = /decl/closet_appearance/secure_closet/expedition/science starts_with = list( /obj/item/clothing/under/rank/scientist, @@ -28,13 +23,8 @@ /obj/structure/closet/secure_closet/RD name = "research director's locker" - icon_state = "rdsecure1" - icon_closed = "rdsecure" - icon_locked = "rdsecure1" - icon_opened = "rdsecureopen" - icon_broken = "rdsecurebroken" - icon_off = "rdsecureoff" req_access = list(access_rd) + closet_appearance = /decl/closet_appearance/secure_closet/rd starts_with = list( /obj/item/clothing/suit/bio_suit/scientist, @@ -55,3 +45,38 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/science, /obj/item/clothing/shoes/boots/winter/science, /obj/item/weapon/bluespace_harpoon) //VOREStation Add + +/obj/structure/closet/secure_closet/xenoarchaeologist + name = "Xenoarchaeologist Locker" + req_access = list(access_tox_storage) + closet_appearance = /decl/closet_appearance/secure_closet/expedition/science + + starts_with = list( + /obj/item/clothing/under/rank/scientist, + /obj/item/clothing/suit/storage/toggle/labcoat, + /obj/item/clothing/shoes/white, + /obj/item/weapon/melee/umbrella, // vorestation addition, + /obj/item/clothing/glasses/science, + /obj/item/device/radio/headset/headset_sci, + /obj/item/weapon/storage/belt/archaeology, + /obj/item/weapon/storage/excavation) + +/obj/structure/closet/excavation + name = "Excavation tools" + + starts_with = list( + /obj/item/weapon/storage/belt/archaeology, + /obj/item/weapon/storage/excavation, + /obj/item/device/flashlight/lantern, + /obj/item/device/ano_scanner, + /obj/item/device/depth_scanner, + /obj/item/device/core_sampler, + /obj/item/device/gps, + /obj/item/device/beacon_locator, + /obj/item/device/radio/beacon, + /obj/item/clothing/glasses/meson, + /obj/item/weapon/pickaxe, + /obj/item/device/measuring_tape, + /obj/item/weapon/pickaxe/hand, + /obj/item/weapon/storage/bag/fossils, + /obj/item/weapon/hand_labeler) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index c5732a337ec..e5fc47c64a5 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -8,54 +8,43 @@ var/locked = 1 var/broken = 0 var/large = 1 - icon_closed = "secure" - var/icon_locked = "secure1" - icon_opened = "secureopen" - var/icon_broken = "securebroken" - var/icon_off = "secureoff" wall_mounted = 0 //never solid (You can always pass over it) health = 200 + closet_appearance = /decl/closet_appearance/secure_closet + /obj/structure/closet/secure_closet/can_open() - if(src.locked) + if(locked) return 0 return ..() -/obj/structure/closet/secure_closet/close() - if(..()) - if(broken) - icon_state = src.icon_off - return 1 - else - return 0 - /obj/structure/closet/secure_closet/emp_act(severity) for(var/obj/O in src) O.emp_act(severity) if(!broken) if(prob(50/severity)) - src.locked = !src.locked - src.update_icon() + locked = !locked + update_icon() if(prob(20/severity) && !opened) if(!locked) open() else - src.req_access = list() - src.req_access += pick(get_all_station_access()) + req_access = list() + req_access += pick(get_all_station_access()) ..() /obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob) - if(src.opened) + if(opened) to_chat(user, "Close the locker first.") return - if(src.broken) + if(broken) to_chat(user, "The locker appears to be broken.") return if(user.loc == src) to_chat(user, "You can't reach the lock from inside.") return - if(src.allowed(user)) - src.locked = !src.locked + if(allowed(user)) + locked = !locked playsound(src, 'sound/machines/click.ogg', 15, 1, -3) for(var/mob/O in viewers(user, 3)) if((O.client && !( O.blinded ))) @@ -65,13 +54,13 @@ to_chat(user, "Access Denied") /obj/structure/closet/secure_closet/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(src.opened) + if(opened) if(istype(W, /obj/item/weapon/storage/laundry_basket)) return ..(W,user) if(istype(W, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = W - if(src.large) - src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet + if(large) + MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet else to_chat(user, "The locker is too small to stuff [G.affecting] into!") if(isrobot(user)) @@ -80,11 +69,11 @@ return user.drop_item() if(W) - W.forceMove(src.loc) + W.forceMove(loc) else if(istype(W, /obj/item/weapon/melee/energy/blade)) if(emag_act(INFINITY, user, "The locker has been sliced open by [user] with \an [W]!", "You hear metal being sliced and sparks flying.")) var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src.loc) + spark_system.set_up(5, 0, loc) spark_system.start() playsound(src, 'sound/weapons/blade1.ogg', 50, 1) playsound(src, "sparks", 50, 1) @@ -109,8 +98,6 @@ broken = 1 locked = 0 desc = "It appears to be broken." - icon_state = icon_off - flick(icon_broken, src) if(visual_feedback) visible_message(visual_feedback, audible_feedback) @@ -118,14 +105,15 @@ visible_message("\The [src] has been broken by \the [user] with \an [emag_source]!", "You hear a faint electrical spark.") else visible_message("\The [src] sparks and breaks open!", "You hear a faint electrical spark.") + update_icon() return 1 /obj/structure/closet/secure_closet/attack_hand(mob/user as mob) - src.add_fingerprint(user) - if(src.locked) - src.togglelock(user) + add_fingerprint(user) + if(locked) + togglelock(user) else - src.toggle(user) + toggle(user) /obj/structure/closet/secure_closet/AltClick() ..() @@ -140,25 +128,22 @@ return if(ishuman(usr) || isrobot(usr)) - src.add_fingerprint(usr) - src.togglelock(usr) + add_fingerprint(usr) + togglelock(usr) else to_chat(usr, "This mob type can't use this verb.") -/obj/structure/closet/secure_closet/update_icon()//Putting the sealed stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot) - overlays.Cut() - - if(!opened) - if(broken) - icon_state = icon_off - else if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - if(sealed) - overlays += "sealed" +/obj/structure/closet/secure_closet/update_icon() + if(opened) + icon_state = "open" else - icon_state = icon_opened + if(broken) + icon_state = "closed_emagged[sealed ? "_welded" : ""]" + else + if(locked) + icon_state = "closed_locked[sealed ? "_welded" : ""]" + else + icon_state = "closed_unlocked[sealed ? "_welded" : ""]" /obj/structure/closet/secure_closet/req_breakout() if(!opened && locked) return 1 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 761ffd2047c..f2d3acad273 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -1,12 +1,7 @@ /obj/structure/closet/secure_closet/captains name = "colony director's locker" - icon_state = "capsecure1" - icon_closed = "capsecure" - icon_locked = "capsecure1" - icon_opened = "capsecureopen" - icon_broken = "capsecurebroken" - icon_off = "capsecureoff" req_access = list(access_captain) + closet_appearance = /decl/closet_appearance/secure_closet/command starts_with = list( /obj/item/weapon/storage/backpack/dufflebag/captain, @@ -24,13 +19,8 @@ /obj/structure/closet/secure_closet/hop name = "head of personnel's locker" - icon_state = "hopsecure1" - icon_closed = "hopsecure" - icon_locked = "hopsecure1" - icon_opened = "hopsecureopen" - icon_broken = "hopsecurebroken" - icon_off = "hopsecureoff" req_access = list(access_hop) + closet_appearance = /decl/closet_appearance/secure_closet/command/hop starts_with = list( /obj/item/clothing/suit/storage/vest, @@ -48,13 +38,8 @@ /obj/structure/closet/secure_closet/hop2 name = "head of personnel's attire" - icon_state = "hopsecure1" - icon_closed = "hopsecure" - icon_locked = "hopsecure1" - icon_opened = "hopsecureopen" - icon_broken = "hopsecurebroken" - icon_off = "hopsecureoff" req_access = list(access_hop) + closet_appearance = /decl/closet_appearance/secure_closet/command/hop starts_with = list( /obj/item/clothing/under/rank/head_of_personnel, @@ -80,14 +65,9 @@ /obj/structure/closet/secure_closet/hos name = "head of security's locker" req_access = list(access_hos) - icon_state = "hossecure1" - icon_closed = "hossecure" - icon_locked = "hossecure1" - icon_opened = "hossecureopen" - icon_broken = "hossecurebroken" - icon_off = "hossecureoff" req_access = list(access_hos) storage_capacity = 2.5 * MOB_MEDIUM + closet_appearance = /decl/closet_appearance/secure_closet/security/hos starts_with = list( /obj/item/clothing/head/helmet/HoS, @@ -136,13 +116,8 @@ /obj/structure/closet/secure_closet/warden name = "warden's locker" - icon_state = "wardensecure1" - icon_closed = "wardensecure" - icon_locked = "wardensecure1" - icon_opened = "wardensecureopen" - icon_broken = "wardensecurebroken" - icon_off = "wardensecureoff" req_access = list(access_armory) + closet_appearance = /decl/closet_appearance/secure_closet/security/warden starts_with = list( /obj/item/clothing/suit/storage/vest/warden, @@ -185,13 +160,8 @@ /obj/structure/closet/secure_closet/security name = "security officer's locker" - icon_state = "sec1" - icon_closed = "sec" - icon_locked = "sec1" - icon_opened = "secopen" - icon_broken = "secbroken" - icon_off = "secoff" req_access = list(access_brig) + closet_appearance = /decl/closet_appearance/secure_closet/security starts_with = list( /obj/item/clothing/suit/storage/vest/officer, @@ -252,13 +222,8 @@ /obj/structure/closet/secure_closet/detective name = "detective's cabinet" - icon_state = "cabinetdetective_locked" - icon_closed = "cabinetdetective" - icon_locked = "cabinetdetective_locked" - icon_opened = "cabinetdetective_open" - icon_broken = "cabinetdetective_broken" - icon_off = "cabinetdetective_broken" req_access = list(access_forensics_lockers) + closet_appearance = /decl/closet_appearance/cabinet/secure starts_with = list( /obj/item/clothing/accessory/badge/holo/detective, @@ -278,19 +243,6 @@ /obj/item/weapon/storage/bag/detective, /obj/item/device/tape/random = 3) -/obj/structure/closet/secure_closet/detective/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened - - /obj/structure/closet/secure_closet/injection name = "lethal injections locker" req_access = list(access_captain) @@ -337,26 +289,9 @@ GLOBAL_LIST_BOILERPLATE(all_brig_closets, /obj/structure/closet/secure_closet/br /obj/structure/closet/secure_closet/wall name = "wall locker" - icon_state = "wall-locker1" - icon_closed = "wall-locker" - icon_locked = "wall-locker1" - icon_opened = "wall-lockeropen" - icon_broken = "wall-lockerbroken" - icon_off = "wall-lockeroff" req_access = list(access_security) + closet_appearance = /decl/closet_appearance/wall density = 1 //too small to put a man in large = 0 - -/obj/structure/closet/secure_closet/wall/update_icon() - if(broken) - icon_state = icon_broken - else - if(!opened) - if(locked) - icon_state = icon_locked - else - icon_state = icon_closed - else - icon_state = icon_opened diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index f608c05b26e..dee5e284a33 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -1,9 +1,7 @@ /obj/structure/closet/syndicate name = "armory closet" desc = "Why is this here?" - icon_state = "syndicate" - icon_closed = "syndicate" - icon_opened = "syndicateopen" + closet_appearance = /decl/closet_appearance/tactical/alt /obj/structure/closet/syndicate/personal desc = "It's a storage unit for operative gear." diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 903a058f9c1..82623434a94 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -15,9 +15,7 @@ /obj/structure/closet/emcloset name = "emergency closet" desc = "It's a storage unit for emergency breathmasks and O2 tanks." - icon_state = "emergency" - icon_closed = "emergency" - icon_opened = "emergencyopen" + closet_appearance = /decl/closet_appearance/oxygen /obj/structure/closet/emcloset/Initialize() switch (pickweight(list("small" = 55, "aid" = 25, "tank" = 10, "both" = 10))) @@ -64,9 +62,7 @@ /obj/structure/closet/firecloset name = "fire-safety closet" desc = "It's a storage unit for fire-fighting supplies." - icon_state = "firecloset" - icon_closed = "firecloset" - icon_opened = "fireclosetopen" + closet_appearance = /decl/closet_appearance/oxygen/fire starts_with = list( /obj/item/clothing/suit/fire/firefighter, @@ -93,21 +89,13 @@ /obj/item/weapon/extinguisher = 2, /obj/item/clothing/head/hardhat/red = 2) -/obj/structure/closet/firecloset/update_icon() - if(!opened) - icon_state = icon_closed - else - icon_state = icon_opened - /* * Tool Closet */ /obj/structure/closet/toolcloset name = "tool closet" desc = "It's a storage unit for tools." - icon_state = "toolcloset" - icon_closed = "toolcloset" - icon_opened = "toolclosetopen" + closet_appearance = /decl/closet_appearance/secure_closet/engineering/tools /obj/structure/closet/toolcloset/Initialize() starts_with = list() @@ -151,9 +139,7 @@ /obj/structure/closet/radiation name = "radiation suit closet" desc = "It's a storage unit for rad-protective suits." - icon_state = "radsuitcloset" - icon_opened = "toolclosetopen" - icon_closed = "radsuitcloset" + closet_appearance = /decl/closet_appearance/secure_closet/engineering/tools/radiation starts_with = list( /obj/item/clothing/suit/radiation = 2, @@ -166,9 +152,7 @@ /obj/structure/closet/bombcloset name = "\improper EOD closet" desc = "It's a storage unit for explosion-protective suits." - icon_state = "bombsuit" - icon_closed = "bombsuit" - icon_opened = "bombsuitopen" + closet_appearance = /decl/closet_appearance/bomb starts_with = list( /obj/item/clothing/suit/bomb_suit, @@ -186,9 +170,7 @@ /obj/structure/closet/bombclosetsecurity name = "\improper EOD closet" desc = "It's a storage unit for explosion-protective suits." - icon_state = "bombsuitsec" - icon_closed = "bombsuitsec" - icon_opened = "bombsuitsecopen" + closet_appearance = /decl/closet_appearance/bomb/security starts_with = list( /obj/item/clothing/suit/bomb_suit/security, @@ -202,9 +184,7 @@ /obj/structure/closet/hydrant //wall mounted fire closet name = "fire-safety closet" desc = "It's a storage unit for fire-fighting supplies." - icon_state = "hydrant" - icon_closed = "hydrant" - icon_opened = "hydrant_open" + closet_appearance = /decl/closet_appearance/wall/hydrant plane = TURF_PLANE layer = ABOVE_TURF_LAYER anchored = 1 @@ -225,15 +205,7 @@ /obj/structure/closet/medical_wall //wall mounted medical closet name = "first-aid closet" desc = "It's wall-mounted storage unit for first aid supplies." - icon_state = "medical_wall" - icon_closed = "medical_wall" - icon_opened = "medical_wall_open" + closet_appearance = /decl/closet_appearance/wall/medical anchored = 1 density = 0 wall_mounted = 1 - -/obj/structure/closet/medical_wall/update_icon() - if(!opened) - icon_state = icon_closed - else - icon_state = icon_opened diff --git a/code/game/objects/structures/crates_lockers/closets/walllocker.dm b/code/game/objects/structures/crates_lockers/closets/walllocker.dm index b2b874f5c8e..b28915157cf 100644 --- a/code/game/objects/structures/crates_lockers/closets/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/closets/walllocker.dm @@ -4,12 +4,9 @@ /obj/structure/closet/walllocker desc = "A wall mounted storage locker." name = "Wall Locker" - icon = 'icons/obj/walllocker.dmi' - icon_state = "wall-locker" + closet_appearance = /decl/closet_appearance/wall density = 0 anchored = 1 - icon_closed = "wall-locker" - icon_opened = "wall-lockeropen" //spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar @@ -18,9 +15,7 @@ desc = "A wall mounted locker with emergency supplies." var/list/spawnitems = list(/obj/item/weapon/tank/emergency/oxygen,/obj/item/clothing/mask/breath,/obj/item/weapon/tool/crowbar/red) var/amount = 2 // spawns each items X times. - icon_state = "emerg" - icon_closed = "emerg" - icon_opened = "emerg_open" + closet_appearance = /decl/closet_appearance/wall/emergency /obj/structure/closet/walllocker/emerglocker/toggle(mob/user as mob) src.attack_hand(user) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 916c12f6439..48a5d53c741 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -1,13 +1,11 @@ /obj/structure/closet/wardrobe name = "wardrobe" desc = "It's a storage unit for standard-issue attire." - icon_state = "blue" - icon_closed = "blue" + closet_appearance = /decl/closet_appearance/wardrobe /obj/structure/closet/wardrobe/red name = "security wardrobe" - icon_state = "red" - icon_closed = "red" + closet_appearance = /decl/closet_appearance/wardrobe/red starts_with = list( /obj/item/clothing/under/rank/security = 3, @@ -41,9 +39,7 @@ /obj/structure/closet/wardrobe/detective name = "detective wardrobe" - icon_state = "cabinet_closed" - icon_closed = "cabinet_closed" - icon_opened = "cabinet_open" + closet_appearance = /decl/closet_appearance/cabinet starts_with = list( /obj/item/clothing/head/det = 2, @@ -64,17 +60,15 @@ /obj/structure/closet/wardrobe/pink name = "pink wardrobe" - icon_state = "pink" - icon_closed = "pink" - + closet_appearance = /decl/closet_appearance/wardrobe/pink + starts_with = list( /obj/item/clothing/under/color/pink = 3, /obj/item/clothing/shoes/brown = 3) /obj/structure/closet/wardrobe/black name = "black wardrobe" - icon_state = "black" - icon_closed = "black" + closet_appearance = /decl/closet_appearance/wardrobe/black starts_with = list( /obj/item/clothing/under/color/black = 3, @@ -88,8 +82,7 @@ /obj/structure/closet/wardrobe/chaplain_black name = "chapel wardrobe" desc = "It's a storage unit for approved religious attire." - icon_state = "black" - icon_closed = "black" + closet_appearance = /decl/closet_appearance/wardrobe/black starts_with = list( /obj/item/clothing/under/rank/chaplain, @@ -110,8 +103,7 @@ /obj/structure/closet/wardrobe/green name = "green wardrobe" - icon_state = "green" - icon_closed = "green" + closet_appearance = /decl/closet_appearance/wardrobe/green starts_with = list( /obj/item/clothing/under/color/green = 3, @@ -121,8 +113,7 @@ /obj/structure/closet/wardrobe/xenos name = "xenos wardrobe" - icon_state = "green" - icon_closed = "green" + closet_appearance = /decl/closet_appearance/wardrobe/green starts_with = list( /obj/item/clothing/suit/unathi/mantle, @@ -136,8 +127,7 @@ /obj/structure/closet/wardrobe/orange name = "prison wardrobe" desc = "It's a storage unit for regulation prisoner attire." - icon_state = "orange" - icon_closed = "orange" + closet_appearance = /decl/closet_appearance/wardrobe/orange starts_with = list( /obj/item/clothing/under/color/prison = 3, @@ -146,8 +136,7 @@ /obj/structure/closet/wardrobe/yellow name = "yellow wardrobe" - icon_state = "yellow" - icon_closed = "yellow" + closet_appearance = /decl/closet_appearance/wardrobe/yellow starts_with = list( /obj/item/clothing/under/color/yellow = 3, @@ -158,8 +147,7 @@ /obj/structure/closet/wardrobe/atmospherics_yellow name = "atmospherics wardrobe" - icon_state = "yellow" - icon_closed = "yellow" + closet_appearance = /decl/closet_appearance/wardrobe/yellow starts_with = list( /obj/item/clothing/under/rank/atmospheric_technician = 3, @@ -173,8 +161,7 @@ /obj/structure/closet/wardrobe/engineering_yellow name = "engineering wardrobe" - icon_state = "yellow" - icon_closed = "yellow" + closet_appearance = /decl/closet_appearance/wardrobe/yellow starts_with = list( /obj/item/clothing/under/rank/engineer = 3, @@ -191,8 +178,7 @@ /obj/structure/closet/wardrobe/white name = "white wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/color/white = 3, @@ -202,8 +188,7 @@ /obj/structure/closet/wardrobe/pjs name = "pajama wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/pj/red = 2, @@ -214,8 +199,7 @@ /obj/structure/closet/wardrobe/science_white name = "science wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/rank/scientist = 3, @@ -244,8 +228,7 @@ /obj/structure/closet/wardrobe/robotics_black name = "robotics wardrobe" - icon_state = "black" - icon_closed = "black" + closet_appearance = /decl/closet_appearance/wardrobe/black starts_with = list( /obj/item/clothing/under/rank/roboticist = 2, @@ -266,8 +249,7 @@ /obj/structure/closet/wardrobe/chemistry_white name = "chemistry wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/rank/chemist = 2, @@ -281,8 +263,7 @@ /obj/structure/closet/wardrobe/genetics_white name = "genetics wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/rank/geneticist = 2, @@ -295,8 +276,7 @@ /obj/structure/closet/wardrobe/virology_white name = "virology wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/rank/virologist = 2, @@ -310,8 +290,7 @@ /obj/structure/closet/wardrobe/medic_white name = "medical wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/rank/medical = 2, @@ -336,8 +315,7 @@ /obj/structure/closet/wardrobe/medic_gown name = "cloning wardrobe" - icon_state = "white" - icon_closed = "white" + closet_appearance = /decl/closet_appearance/wardrobe/white starts_with = list( /obj/item/clothing/under/medigown = 4) @@ -345,8 +323,7 @@ /obj/structure/closet/wardrobe/grey name = "grey wardrobe" - icon_state = "grey" - icon_closed = "grey" + closet_appearance = /decl/closet_appearance/wardrobe/grey starts_with = list( /obj/item/clothing/under/color/grey = 3, @@ -356,8 +333,7 @@ /obj/structure/closet/wardrobe/mixed name = "mixed wardrobe" - icon_state = "mixed" - icon_closed = "mixed" + closet_appearance = /decl/closet_appearance/wardrobe/mixed starts_with = list( /obj/item/clothing/under/color/blue, @@ -393,9 +369,7 @@ /obj/structure/closet/wardrobe/tactical name = "tactical equipment" - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/clothing/under/tactical, @@ -420,9 +394,7 @@ /obj/structure/closet/wardrobe/ert name = "emergency response team equipment" - icon_state = "syndicate1" - icon_closed = "syndicate1" - icon_opened = "syndicate1open" + closet_appearance = /decl/closet_appearance/tactical starts_with = list( /obj/item/clothing/under/rank/centcom, @@ -439,8 +411,7 @@ /obj/structure/closet/wardrobe/suit name = "suit locker" - icon_state = "mixed" - icon_closed = "mixed" + closet_appearance = /decl/closet_appearance/wardrobe/mixed starts_with = list( /obj/item/clothing/under/assistantformal, @@ -468,9 +439,7 @@ /obj/structure/closet/wardrobe/captain name = "colony director's wardrobe" - icon_state = "cabinet_closed" - icon_closed = "cabinet_closed" - icon_opened = "cabinet_open" + closet_appearance = /decl/closet_appearance/cabinet starts_with = list( /obj/item/weapon/storage/backpack/captain, diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 7a9abe17e94..c3b5f7216c9 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -3,13 +3,9 @@ /obj/structure/closet/crate name = "crate" desc = "A rectangular steel crate." - icon = 'icons/obj/storage_vr.dmi' //VOREStation edit - icon_state = "crate" - icon_opened = "crateopen" - icon_closed = "crate" + closet_appearance = /decl/closet_appearance/crate climbable = 1 var/points_per_crate = 5 -// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //??? var/rigged = 0 /obj/structure/closet/crate/can_open() @@ -37,11 +33,11 @@ playsound(src, 'sound/machines/click.ogg', 15, 1, -3) for(var/obj/O in src) O.forceMove(get_turf(src)) - icon_state = icon_opened src.opened = 1 if(climbable) structure_shaken() + update_icon() return 1 /obj/structure/closet/crate/close() @@ -64,8 +60,8 @@ O.forceMove(src) itemcount++ - icon_state = icon_closed src.opened = 0 + update_icon() return 1 /obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -125,28 +121,25 @@ /obj/structure/closet/crate/secure desc = "A secure crate." name = "Secure crate" - icon_state = "securecrate" - icon_opened = "securecrateopen" - icon_closed = "securecrate" - var/redlight = "securecrater" - var/greenlight = "securecrateg" - var/sparks = "securecratesparks" - var/emag = "securecrateemag" + closet_appearance = /decl/closet_appearance/crate/secure var/broken = 0 var/locked = 1 -/obj/structure/closet/crate/secure/New() - ..() - if(locked) - overlays.Cut() - overlays += redlight - else - overlays.Cut() - overlays += greenlight - /obj/structure/closet/crate/secure/can_open() return !locked +/obj/structure/closet/crate/secure/update_icon() + if(opened) + icon_state = "open" + else + if(broken) + icon_state = "closed_emagged[sealed ? "_welded" : ""]" + else + if(locked) + icon_state = "closed_locked[sealed ? "_welded" : ""]" + else + icon_state = "closed_unlocked[sealed ? "_welded" : ""]" + /obj/structure/closet/crate/secure/proc/togglelock(mob/user as mob) if(src.opened) to_chat(user, "Close the crate first.") @@ -166,8 +159,7 @@ if(user) for(var/mob/O in viewers(user, 3)) O.show_message( "The crate has been [locked ? null : "un"]locked by [user].", 1) - overlays.Cut() - overlays += locked ? redlight : greenlight + update_icon() /obj/structure/closet/crate/secure/verb/verb_togglelock() set src in oview(1) // One square distance @@ -202,14 +194,11 @@ /obj/structure/closet/crate/secure/emag_act(var/remaining_charges, var/mob/user) if(!broken) - overlays.Cut() - overlays += emag - overlays += sparks - spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* playsound(src, "sparks", 60, 1) - src.locked = 0 - src.broken = 1 + locked = 0 + broken = 1 to_chat(user, "You unlock \the [src].") + update_icon() return 1 /obj/structure/closet/crate/secure/emp_act(severity) @@ -217,45 +206,33 @@ O.emp_act(severity) if(!broken && !opened && prob(50/severity)) if(!locked) - src.locked = 1 - overlays.Cut() - overlays += redlight + locked = 1 else - overlays.Cut() - overlays += emag - overlays += sparks - spawn(6) overlays -= sparks //Tried lots of stuff but nothing works right. so i have to use this *sadface* playsound(src, 'sound/effects/sparks4.ogg', 75, 1) - src.locked = 0 + locked = 0 if(!opened && prob(20/severity)) if(!locked) open() else - src.req_access = list() - src.req_access += pick(get_all_station_access()) + req_access = list() + req_access += pick(get_all_station_access()) + update_icon() ..() /obj/structure/closet/crate/plastic name = "plastic crate" desc = "A rectangular plastic crate." - icon_state = "plasticcrate" - icon_opened = "plasticcrateopen" - icon_closed = "plasticcrate" + closet_appearance = /decl/closet_appearance/crate/plastic points_per_crate = 1 //5 crates per ordered crate, +5 for the crate it comes in. /obj/structure/closet/crate/internals name = "internals crate" desc = "A internals crate." - icon_state = "o2crate" - icon_opened = "o2crateopen" - icon_closed = "o2crate" /obj/structure/closet/crate/trashcart name = "trash cart" desc = "A heavy, metal trashcart with wheels." - icon_state = "trashcart" - icon_opened = "trashcartopen" - icon_closed = "trashcart" + closet_appearance = /decl/closet_appearance/cart/trash /*these aren't needed anymore /obj/structure/closet/crate/hat @@ -276,16 +253,11 @@ /obj/structure/closet/crate/medical name = "medical crate" desc = "A medical crate." - icon_state = "medicalcrate" - icon_opened = "medicalcrateopen" - icon_closed = "medicalcrate" + closet_appearance = /decl/closet_appearance/crate/medical /obj/structure/closet/crate/rcd name = "\improper RCD crate" desc = "A crate with rapid construction device." - icon_state = "engi_crate" - icon_opened = "engi_crateopen" - icon_closed = "engi_crate" starts_with = list( /obj/item/weapon/rcd_ammo = 3, @@ -293,9 +265,6 @@ /obj/structure/closet/crate/solar name = "solar pack crate" - icon_state = "engi_crate" //VOREStation Edit - icon_opened = "engi_crateopen" //VOREStation Edit - icon_closed = "engi_crate" //VOREStation Edit starts_with = list( /obj/item/solar_assembly = 21, @@ -306,9 +275,7 @@ /obj/structure/closet/crate/freezer name = "freezer" desc = "A freezer." - icon_state = "freezer" - icon_opened = "freezeropen" - icon_closed = "freezer" + closet_appearance = /decl/closet_appearance/crate/freezer var/target_temp = T0C - 40 var/cooling_power = 40 @@ -352,18 +319,12 @@ /obj/structure/closet/crate/bin name = "large bin" desc = "A large bin." - icon = 'icons/obj/storage.dmi' //VOREStation edit - icon_state = "largebin" - icon_opened = "largebinopen" - icon_closed = "largebin" /obj/structure/closet/crate/radiation name = "radioactive gear crate" desc = "A crate with a radiation sign on it." - icon_state = "radiation" - icon_opened = "radiationopen" - icon_closed = "radiation" + closet_appearance = /decl/closet_appearance/crate/radiation starts_with = list( /obj/item/clothing/suit/radiation = 4, @@ -373,72 +334,46 @@ /obj/structure/closet/crate/secure/weapon name = "weapons crate" desc = "A secure weapons crate." - icon_state = "weaponcrate" - icon_opened = "weaponcrateopen" - icon_closed = "weaponcrate" + closet_appearance = /decl/closet_appearance/crate/secure/weapon /obj/structure/closet/crate/secure/phoron name = "phoron crate" desc = "A secure phoron crate." - icon_state = "phoroncrate" - icon_opened = "phoroncrateopen" - icon_closed = "phoroncrate" + closet_appearance = /decl/closet_appearance/crate/secure/hazard /obj/structure/closet/crate/secure/gear name = "gear crate" desc = "A secure gear crate." - icon_state = "secgearcrate" - icon_opened = "secgearcrateopen" - icon_closed = "secgearcrate" + closet_appearance = /decl/closet_appearance/crate/secure/weapon /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 = "hydrosecurecrate" - icon_opened = "hydrosecurecrateopen" - icon_closed = "hydrosecurecrate" + closet_appearance = /decl/closet_appearance/crate/secure/hydroponics /obj/structure/closet/crate/secure/engineering desc = "A crate with a lock on it, painted in the scheme of the station's engineers." name = "secure engineering crate" - icon_state = "engi_secure_crate" - icon_opened = "engi_secure_crateopen" - icon_closed = "engi_secure_crate" /obj/structure/closet/crate/secure/science name = "secure science crate" desc = "A crate with a lock on it, painted in the scheme of the station's scientists." - icon_state = "scisecurecrate" - icon_opened = "scisecurecrateopen" - icon_closed = "scisecurecrate" /obj/structure/closet/crate/secure/bin name = "secure bin" desc = "A secure bin." - icon = 'icons/obj/storage.dmi' //VOREStation edit - icon_state = "largebins" - icon_opened = "largebinsopen" - icon_closed = "largebins" - redlight = "largebinr" - greenlight = "largebing" - sparks = "largebinsparks" - emag = "largebinemag" /obj/structure/closet/crate/large name = "large crate" desc = "A hefty metal crate." - icon = 'icons/obj/storage_vr.dmi' //VOREStation Edit - icon_state = "largemetal" - icon_opened = "largemetalopen" - icon_closed = "largemetal" - + closet_appearance = /decl/closet_appearance/large_crate /obj/structure/closet/crate/large/close() . = ..() @@ -462,12 +397,7 @@ /obj/structure/closet/crate/secure/large name = "large crate" desc = "A hefty metal crate with an electronic locking system." - icon = 'icons/obj/storage_vr.dmi' //VOREStation Edit - icon_state = "largemetalsecure" //VOREStation Edit - icon_opened = "largemetalsecureopen" //VOREStation Edit - icon_closed = "largemetalsecure" //VOREStation Edit - redlight = "largemetalr" - greenlight = "largemetalg" + closet_appearance = /decl/closet_appearance/large_crate/secure /obj/structure/closet/crate/secure/large/close() @@ -492,33 +422,19 @@ //fluff variant /obj/structure/closet/crate/secure/large/reinforced desc = "A hefty, reinforced metal crate with an electronic locking system." - icon_state = "largermetal" - icon_opened = "largermetalopen" - icon_closed = "largermetal" /obj/structure/closet/crate/engineering name = "engineering crate" - icon_state = "engi_crate" - icon_opened = "engi_crateopen" - icon_closed = "engi_crate" /obj/structure/closet/crate/engineering/electrical - icon_state = "engi_e_crate" - icon_opened = "engi_crateopen" - icon_closed = "engi_e_crate" /obj/structure/closet/crate/science name = "science crate" - icon_state = "scicrate" - icon_opened = "scicrateopen" - icon_closed = "scicrate" /obj/structure/closet/crate/hydroponics name = "hydroponics crate" desc = "All you need to destroy those pesky weeds and pests." - icon_state = "hydrocrate" - icon_opened = "hydrocrateopen" - icon_closed = "hydrocrate" + closet_appearance = /decl/closet_appearance/crate/hydroponics /obj/structure/closet/crate/hydroponics/prespawned diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 11917f4c40f..47e52f3b61d 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -1,9 +1,7 @@ /obj/structure/closet/crate/secure/loot name = "abandoned crate" desc = "What could be inside?" - icon_state = "securecrate" - icon_opened = "securecrateopen" - icon_closed = "securecrate" + closet_appearance = /decl/closet_appearance/crate/secure var/list/code = list() var/list/lastattempt = list() var/attempts = 10 diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 3a2f7044e26..dcd169bfed1 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -138,11 +138,8 @@ /obj/structure/closet/crate/miningcar desc = "A mining car. This one doesn't work on rails, but has to be dragged." name = "Mining car (not for rails)" - icon = 'icons/obj/storage.dmi' - icon_state = "miningcar" + icon = 'icons/obj/closets/miningcar.dmi' density = 1 - icon_opened = "miningcaropen" - icon_closed = "miningcar" // Flags. diff --git a/code/modules/xenoarcheaology/misc.dm b/code/modules/xenoarcheaology/misc.dm index 2c031fa3444..f6005c3f172 100644 --- a/code/modules/xenoarcheaology/misc.dm +++ b/code/modules/xenoarcheaology/misc.dm @@ -51,49 +51,6 @@ new /obj/item/weapon/book/manual/stasis(src) update_icon() -/obj/structure/closet/secure_closet/xenoarchaeologist - name = "Xenoarchaeologist Locker" - icon_state = "secureres1" - icon_closed = "secureres" - icon_locked = "secureres1" - icon_opened = "secureresopen" - icon_broken = "secureresbroken" - icon_off = "secureresoff" - req_access = list(access_tox_storage) - - starts_with = list( - /obj/item/clothing/under/rank/scientist, - /obj/item/clothing/suit/storage/toggle/labcoat, - /obj/item/clothing/shoes/white, - /obj/item/weapon/melee/umbrella, // vorestation addition, - /obj/item/clothing/glasses/science, - /obj/item/device/radio/headset/headset_sci, - /obj/item/weapon/storage/belt/archaeology, - /obj/item/weapon/storage/excavation) - -/obj/structure/closet/excavation - name = "Excavation tools" - icon_state = "toolcloset" - icon_closed = "toolcloset" - icon_opened = "toolclosetopen" - - starts_with = list( - /obj/item/weapon/storage/belt/archaeology, - /obj/item/weapon/storage/excavation, - /obj/item/device/flashlight/lantern, - /obj/item/device/ano_scanner, - /obj/item/device/depth_scanner, - /obj/item/device/core_sampler, - /obj/item/device/gps, - /obj/item/device/beacon_locator, - /obj/item/device/radio/beacon, - /obj/item/clothing/glasses/meson, - /obj/item/weapon/pickaxe, - /obj/item/device/measuring_tape, - /obj/item/weapon/pickaxe/hand, - /obj/item/weapon/storage/bag/fossils, - /obj/item/weapon/hand_labeler) - /obj/machinery/alarm/isolation req_one_access = list(access_research, access_atmospherics, access_engine_equip) diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi deleted file mode 100644 index a1f99031280..00000000000 Binary files a/icons/obj/bodybag.dmi and /dev/null differ diff --git a/icons/obj/closets/abductor.dmi b/icons/obj/closets/abductor.dmi new file mode 100644 index 00000000000..8f3b2d27062 Binary files /dev/null and b/icons/obj/closets/abductor.dmi differ diff --git a/icons/obj/closets/bases/cabinet.dmi b/icons/obj/closets/bases/cabinet.dmi new file mode 100644 index 00000000000..236b164ca6e Binary files /dev/null and b/icons/obj/closets/bases/cabinet.dmi differ diff --git a/icons/obj/closets/bases/cart.dmi b/icons/obj/closets/bases/cart.dmi new file mode 100644 index 00000000000..852e539b4d2 Binary files /dev/null and b/icons/obj/closets/bases/cart.dmi differ diff --git a/icons/obj/closets/bases/closet.dmi b/icons/obj/closets/bases/closet.dmi new file mode 100644 index 00000000000..551435629e4 Binary files /dev/null and b/icons/obj/closets/bases/closet.dmi differ diff --git a/icons/obj/closets/bases/crate.dmi b/icons/obj/closets/bases/crate.dmi new file mode 100644 index 00000000000..e8e26686fc6 Binary files /dev/null and b/icons/obj/closets/bases/crate.dmi differ diff --git a/icons/obj/closets/bases/large_crate.dmi b/icons/obj/closets/bases/large_crate.dmi new file mode 100644 index 00000000000..1cdac277834 Binary files /dev/null and b/icons/obj/closets/bases/large_crate.dmi differ diff --git a/icons/obj/closets/bases/wall.dmi b/icons/obj/closets/bases/wall.dmi new file mode 100644 index 00000000000..6689e59cfce Binary files /dev/null and b/icons/obj/closets/bases/wall.dmi differ diff --git a/icons/obj/closets/bodybag.dmi b/icons/obj/closets/bodybag.dmi new file mode 100644 index 00000000000..d6922f8bbec Binary files /dev/null and b/icons/obj/closets/bodybag.dmi differ diff --git a/icons/obj/closets/coffin.dmi b/icons/obj/closets/coffin.dmi new file mode 100644 index 00000000000..f639469aa2f Binary files /dev/null and b/icons/obj/closets/coffin.dmi differ diff --git a/icons/obj/closets/coffin_wood.dmi b/icons/obj/closets/coffin_wood.dmi new file mode 100644 index 00000000000..dfddc743f91 Binary files /dev/null and b/icons/obj/closets/coffin_wood.dmi differ diff --git a/icons/obj/closets/cryobag.dmi b/icons/obj/closets/cryobag.dmi new file mode 100644 index 00000000000..1681a884d85 Binary files /dev/null and b/icons/obj/closets/cryobag.dmi differ diff --git a/icons/obj/closets/decals/cart.dmi b/icons/obj/closets/decals/cart.dmi new file mode 100644 index 00000000000..c4d71bcde83 Binary files /dev/null and b/icons/obj/closets/decals/cart.dmi differ diff --git a/icons/obj/closets/decals/closet.dmi b/icons/obj/closets/decals/closet.dmi new file mode 100644 index 00000000000..ea42c1f5350 Binary files /dev/null and b/icons/obj/closets/decals/closet.dmi differ diff --git a/icons/obj/closets/decals/crate.dmi b/icons/obj/closets/decals/crate.dmi new file mode 100644 index 00000000000..b0e600aefff Binary files /dev/null and b/icons/obj/closets/decals/crate.dmi differ diff --git a/icons/obj/closets/decals/large_crate.dmi b/icons/obj/closets/decals/large_crate.dmi new file mode 100644 index 00000000000..48765702659 Binary files /dev/null and b/icons/obj/closets/decals/large_crate.dmi differ diff --git a/icons/obj/closets/decals/wall.dmi b/icons/obj/closets/decals/wall.dmi new file mode 100644 index 00000000000..b9b207407e8 Binary files /dev/null and b/icons/obj/closets/decals/wall.dmi differ diff --git a/icons/obj/closets/fridge.dmi b/icons/obj/closets/fridge.dmi new file mode 100644 index 00000000000..1d6955ceea6 Binary files /dev/null and b/icons/obj/closets/fridge.dmi differ diff --git a/icons/obj/closets/grave.dmi b/icons/obj/closets/grave.dmi new file mode 100644 index 00000000000..58c5f7dcef3 Binary files /dev/null and b/icons/obj/closets/grave.dmi differ diff --git a/icons/obj/closets/miningcar.dmi b/icons/obj/closets/miningcar.dmi new file mode 100644 index 00000000000..02452b7c63f Binary files /dev/null and b/icons/obj/closets/miningcar.dmi differ diff --git a/icons/obj/closets/poireactor.dmi b/icons/obj/closets/poireactor.dmi new file mode 100644 index 00000000000..dfd48bf27b4 Binary files /dev/null and b/icons/obj/closets/poireactor.dmi differ diff --git a/icons/obj/closets/rescuebag.dmi b/icons/obj/closets/rescuebag.dmi new file mode 100644 index 00000000000..7ed654f5f72 Binary files /dev/null and b/icons/obj/closets/rescuebag.dmi differ diff --git a/icons/obj/cryobag.dmi b/icons/obj/cryobag.dmi deleted file mode 100644 index 68255b8b2c3..00000000000 Binary files a/icons/obj/cryobag.dmi and /dev/null differ diff --git a/vorestation.dme b/vorestation.dme index ff339a5fb21..641850b4df8 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1105,7 +1105,6 @@ #include "code\game\objects\items\devices\holowarrant.dm" #include "code\game\objects\items\devices\laserpointer.dm" #include "code\game\objects\items\devices\lightreplacer.dm" -#include "code\game\objects\items\devices\locker_painter.dm" #include "code\game\objects\items\devices\megaphone.dm" #include "code\game\objects\items\devices\modkit.dm" #include "code\game\objects\items\devices\multitool.dm" @@ -1395,7 +1394,8 @@ #include "code\game\objects\structures\window.dm" #include "code\game\objects\structures\window_spawner.dm" #include "code\game\objects\structures\window_vr.dm" -#include "code\game\objects\structures\crates_lockers\closets.dm" +#include "code\game\objects\structures\crates_lockers\__closets.dm" +#include "code\game\objects\structures\crates_lockers\_closets_appearance_definitions.dm" #include "code\game\objects\structures\crates_lockers\crates.dm" #include "code\game\objects\structures\crates_lockers\crates_vr.dm" #include "code\game\objects\structures\crates_lockers\largecrate.dm" @@ -1408,7 +1408,6 @@ #include "code\game\objects\structures\crates_lockers\closets\gimmick.dm" #include "code\game\objects\structures\crates_lockers\closets\job_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\l3closet.dm" -#include "code\game\objects\structures\crates_lockers\closets\l3closet_vr.dm" #include "code\game\objects\structures\crates_lockers\closets\malfunction.dm" #include "code\game\objects\structures\crates_lockers\closets\misc_vr.dm" #include "code\game\objects\structures\crates_lockers\closets\statue.dm"