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
+1
View File
@@ -94,6 +94,7 @@
name = "Glass Airlock"
icon = 'icons/obj/doors/Doorglass.dmi'
opacity = 0
assembly_type = /obj/structure/door_assembly/door_assembly_glass
glass = 1
doorOpen = 'sound/machines/windowdoor.ogg'
doorClose = 'sound/machines/windowdoor.ogg'
@@ -63,13 +63,13 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
new /datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1),
/* new /datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), */
new /datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("glass airlock assembly", /obj/structure/door_assembly/door_assembly_glass, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1),
), 4),
+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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 47 KiB