Enable construction of glass airlocks

This commit is contained in:
Markolie
2017-01-28 22:13:32 +01:00
parent d7ae5c4a7e
commit f7f08ae265
5 changed files with 42 additions and 27 deletions
+40 -26
View File
@@ -1,4 +1,4 @@
obj/structure/door_assembly
/obj/structure/door_assembly
icon = 'icons/obj/doors/door_assembly.dmi'
name = "Airlock Assembly"
@@ -14,119 +14,133 @@ obj/structure/door_assembly
var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead.
var/created_name = null
New()
update_state()
/obj/structure/door_assembly/New()
update_state()
obj/structure/door_assembly/door_assembly_com
/obj/structure/door_assembly/door_assembly_com
base_icon_state = "com"
base_name = "Command Airlock"
glass_type = "/glass_command"
airlock_type = "/command"
obj/structure/door_assembly/door_assembly_sec
/obj/structure/door_assembly/door_assembly_sec
base_icon_state = "sec"
base_name = "Security Airlock"
glass_type = "/glass_security"
airlock_type = "/security"
obj/structure/door_assembly/door_assembly_eng
/obj/structure/door_assembly/door_assembly_eng
base_icon_state = "eng"
base_name = "Engineering Airlock"
glass_type = "/glass_engineering"
airlock_type = "/engineering"
obj/structure/door_assembly/door_assembly_min
/obj/structure/door_assembly/door_assembly_min
base_icon_state = "min"
base_name = "Mining Airlock"
glass_type = "/glass_mining"
airlock_type = "/mining"
obj/structure/door_assembly/door_assembly_atmo
/obj/structure/door_assembly/door_assembly_atmo
base_icon_state = "atmo"
base_name = "Atmospherics Airlock"
glass_type = "/glass_atmos"
airlock_type = "/atmos"
obj/structure/door_assembly/door_assembly_research
/obj/structure/door_assembly/door_assembly_research
base_icon_state = "res"
base_name = "Research Airlock"
glass_type = "/glass_research"
airlock_type = "/research"
obj/structure/door_assembly/door_assembly_science
/obj/structure/door_assembly/door_assembly_science
base_icon_state = "sci"
base_name = "Science Airlock"
glass_type = "/glass_science"
airlock_type = "/science"
obj/structure/door_assembly/door_assembly_med
/obj/structure/door_assembly/door_assembly_med
base_icon_state = "med"
base_name = "Medical Airlock"
glass_type = "/glass_medical"
airlock_type = "/medical"
obj/structure/door_assembly/door_assembly_mai
/obj/structure/door_assembly/door_assembly_mai
base_icon_state = "mai"
base_name = "Maintenance Airlock"
airlock_type = "/maintenance"
glass = -1
obj/structure/door_assembly/door_assembly_ext
/obj/structure/door_assembly/door_assembly_ext
base_icon_state = "ext"
base_name = "External Airlock"
airlock_type = "/external"
glass = -1
obj/structure/door_assembly/door_assembly_fre
/obj/structure/door_assembly/door_assembly_fre
base_icon_state = "fre"
base_name = "Freezer Airlock"
airlock_type = "/freezer"
glass = -1
obj/structure/door_assembly/door_assembly_hatch
/obj/structure/door_assembly/door_assembly_hatch
base_icon_state = "hatch"
base_name = "Airtight Hatch"
airlock_type = "/hatch"
glass = -1
obj/structure/door_assembly/door_assembly_mhatch
/obj/structure/door_assembly/door_assembly_mhatch
base_icon_state = "mhatch"
base_name = "Maintenance Hatch"
airlock_type = "/maintenance_hatch"
glass = -1
obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly
/obj/structure/door_assembly/door_assembly_glass
base_icon_state = "glass"
base_name = "Glass Airlock"
airlock_type = "/glass"
glass_type = "/glass"
var/list/items_allowed // The glass airlock does not have a "base" type to which glass can be inserted, so this list is used to ensure players have to insert reinforced glass first before constructing it
/obj/structure/door_assembly/door_assembly_glass/New()
..()
items_allowed = typecacheof(list(/obj/item/weapon/weldingtool, /obj/item/weapon/wrench, /obj/item/weapon/pen, /obj/item/stack/sheet/rglass))
/obj/structure/door_assembly/door_assembly_glass/attackby(obj/item/W as obj, mob/user as mob, params)
if(is_type_in_list(W, items_allowed) || glass == 1)
..()
else if(istype(W, /obj/item/stack/cable_coil)
to_chat(user, "<span class='warning'>You need to insert the airlock's glass first.</span>")
else
..()
/obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly
base_icon_state = "highsec"
base_name = "High Security Airlock"
airlock_type = "/highsecurity"
glass = -1
obj/structure/door_assembly/door_assembly_shuttle
/obj/structure/door_assembly/door_assembly_shuttle
base_icon_state = "shuttle"
base_name = "shuttle airlock"
airlock_type = "/shuttle"
glass = -1
obj/structure/door_assembly/multi_tile
/obj/structure/door_assembly/multi_tile
icon = 'icons/obj/doors/door_assembly2x1.dmi'
dir = EAST
var/width = 1
/*Temporary until we get sprites.
glass_type = "/multi_tile/glass"
airlock_type = "/multi_tile/maint"
glass = 1*/
base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1.
airlock_type = "/multi_tile/glass"
glass = -1 //To prevent bugs in deconstruction process.
/obj/structure/door_assembly/door_assembly_cult
base_name = "cult airlock assembly"
icon = 'icons/obj/doors/Doorcult.dmi'
base_icon_state ="construction"
airlock_type = "/cult"
obj/structure/door_assembly/multi_tile/New()
/obj/structure/door_assembly/multi_tile/New()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
@@ -135,7 +149,7 @@ obj/structure/door_assembly/multi_tile/New()
bound_height = width * world.icon_size
update_state()
obj/structure/door_assembly/multi_tile/Move()
/obj/structure/door_assembly/multi_tile/Move()
. = ..()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size