diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 11a65dc47dd..08ce5b2a9c6 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -12,6 +12,8 @@ list/conf_access = null last_configurator = null locked = 1 + style_name = "General" + style = /obj/structure/door_assembly/door_assembly_0 attack_self(mob/user as mob) if (!ishuman(user)) @@ -32,6 +34,8 @@ else t1 += "Block
" + t1 += "Style: [style_name]

" + t1 += conf_access == null ? "All
" : "All
" @@ -80,6 +84,28 @@ if (href_list["access"]) toggle_access(href_list["access"]) + if (href_list["style"]) + style_name = input("Select the door's paint scheme.", "Door Style", style_name) in \ + list("General", "Command", "Security", "Engineering", "Medical", "Maintenance", "Airlock", "Freezer") + + switch(style_name) + if("General") + style = /obj/structure/door_assembly/door_assembly_0 + if("Command") + style = /obj/structure/door_assembly/door_assembly_com + if("Security") + style = /obj/structure/door_assembly/door_assembly_sec + if("Engineering") + style = /obj/structure/door_assembly/door_assembly_eng + if("Medical") + style = /obj/structure/door_assembly/door_assembly_med + if("Maintenance") + style = /obj/structure/door_assembly/door_assembly_mai + if("Airlock") + style = /obj/structure/door_assembly/door_assembly_ext + if("Freezer") + style = /obj/structure/door_assembly/door_assembly_fre + attack_self(usr) proc diff --git a/code/game/objects/door_assembly.dm b/code/game/objects/door_assembly.dm index 8d8d9979187..f9e605d55a2 100644 --- a/code/game/objects/door_assembly.dm +++ b/code/game/objects/door_assembly.dm @@ -87,6 +87,7 @@ obj/structure/door_assembly door_assembly_mai name = "Maintenance Airlock Assembly" icon_state = "door_as_mai1" + glass_type = null airlock_type = /obj/machinery/door/airlock/maintenance anchored = 1 density = 1 @@ -96,6 +97,7 @@ obj/structure/door_assembly door_assembly_ext name = "External Airlock Assembly" icon_state = "door_as_ext1" + glass_type = null airlock_type = /obj/machinery/door/airlock/external anchored = 1 density = 1 @@ -105,6 +107,7 @@ obj/structure/door_assembly door_assembly_fre name = "Freezer Airlock Assembly" icon_state = "door_as_fre1" + glass_type = null airlock_type = /obj/machinery/door/airlock/freezer anchored = 1 density = 1 @@ -114,6 +117,7 @@ obj/structure/door_assembly door_assembly_mhatch name = "Airtight Maintenance Hatch Assembly" icon_state = "door_as_mhatch1" + glass_type = null airlock_type = /obj/machinery/door/airlock/maintenance_hatch anchored = 1 density = 1 @@ -192,13 +196,26 @@ obj/structure/door_assembly sleep(40) if(get_turf(user) == T) user << "\blue You installed the airlock electronics!" - src.state = 2 - src.name = "Near finished Airlock Assembly" - src.electronics = W + + var/obj/item/weapon/airlock_electronics/E = W + var/obj/structure/door_assembly/D = new E.style(loc) + D.state = 2 + D.glass = glass + if(glass) + // just in case user is setting a glass door to a type that doesn't have a glass version + if(ispath(D.glass_type)) + D.icon_state = "[D.glass_base_icon_state]2" + else + D.icon_state = "[D.base_icon_state]2" + // type doesn't support glass, drop it + D.glass = 0 + new/obj/item/stack/sheet/rglass(get_turf(src)) + D.name = "Near finished Airlock Assembly" + E.loc = D + D.electronics = W + del(src) else W.loc = src.loc - - //del(W) else if(istype(W, /obj/item/weapon/crowbar) && state == 2 ) playsound(src.loc, 'Crowbar.ogg', 100, 1) var/turf/T = get_turf(user) @@ -215,7 +232,7 @@ obj/structure/door_assembly ae = electronics electronics = null ae.loc = src.loc - else if(istype(W, /obj/item/stack/sheet/rglass) && glass == 0) + else if(istype(W, /obj/item/stack/sheet/rglass) && glass == 0 && ispath(glass_type)) playsound(src.loc, 'Crowbar.ogg', 100, 1) user.visible_message("[user] adds reinforced glass windows to the airlock assembly.", "You start to install reinforced glass windows into the airlock assembly.") var/obj/item/stack/sheet/rglass/G = W @@ -224,8 +241,7 @@ obj/structure/door_assembly G.use(1) src.glass = 1 src.name = "Near finished Window Airlock Assembly" - src.airlock_type = /obj/machinery/door/airlock/glass - src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end. + src.airlock_type = glass_type else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 ) playsound(src.loc, 'Screwdriver.ogg', 100, 1) var/turf/T = get_turf(user)