diff --git a/code/defines/obj/door.dm b/code/defines/obj/door.dm index dcc6d431179..30757609420 100644 --- a/code/defines/obj/door.dm +++ b/code/defines/obj/door.dm @@ -34,6 +34,56 @@ icon_state = "pdoor1" var/id = 1.0 +/obj/machinery/door/poddoor/two_tile_hor + var/obj/machinery/door/poddoor/filler_object/f1 + var/obj/machinery/door/poddoor/filler_object/f2 + icon = '1x2blast_hor.dmi' + + New() + ..() + f1 = new/obj/machinery/door/poddoor/filler_object (src.loc) + f2 = new/obj/machinery/door/poddoor/filler_object (get_step(src,EAST)) + f1.density = density + f2.density = density + f1.sd_SetOpacity(opacity) + f2.sd_SetOpacity(opacity) + + Del() + del f1 + del f2 + ..() + +/obj/machinery/door/poddoor/four_tile_hor + var/obj/machinery/door/poddoor/filler_object/f1 + var/obj/machinery/door/poddoor/filler_object/f2 + var/obj/machinery/door/poddoor/filler_object/f3 + var/obj/machinery/door/poddoor/filler_object/f4 + icon = '1x4blast_hor.dmi' + + New() + ..() + f1 = new/obj/machinery/door/poddoor/filler_object (src.loc) + f2 = new/obj/machinery/door/poddoor/filler_object (get_step(f1,EAST)) + f3 = new/obj/machinery/door/poddoor/filler_object (get_step(f2,EAST)) + f4 = new/obj/machinery/door/poddoor/filler_object (get_step(f3,EAST)) + f1.density = density + f2.density = density + f3.density = density + f4.density = density + f1.sd_SetOpacity(opacity) + f2.sd_SetOpacity(opacity) + f4.sd_SetOpacity(opacity) + f3.sd_SetOpacity(opacity) + + Del() + del f1 + del f2 + ..() + +/obj/machinery/door/poddoor/filler_object + name = "" + icon_state = "" + /obj/machinery/door/window name = "interior door" icon = 'windoor.dmi' diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 8a1a50f97d1..4454460ef1f 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -52,6 +52,111 @@ src.sd_SetOpacity(1) update_nearby_tiles() + sleep(10) + src.operating = 0 + return + + +/obj/machinery/door/poddoor/two_tile_hor/open() + if (src.operating == 1) //doors can still open when emag-disabled + return + if (!ticker) + return 0 + if(!src.operating) //in case of emag + src.operating = 1 + flick("pdoorc0", src) + src.icon_state = "pdoor0" + sleep(10) + src.density = 0 + src.sd_SetOpacity(0) + + f1.density = 0 + f1.sd_SetOpacity(0) + f2.density = 0 + f2.sd_SetOpacity(0) + + update_nearby_tiles() + + if(operating == 1) //emag again + src.operating = 0 + if(autoclose) + spawn(150) + autoclose() + return 1 + +/obj/machinery/door/poddoor/two_tile_hor/close() + if (src.operating) + return + src.operating = 1 + flick("pdoorc1", src) + src.icon_state = "pdoor1" + src.density = 1 + + f1.density = 1 + f1.sd_SetOpacity(1) + f2.density = 1 + f2.sd_SetOpacity(1) + + if (src.visible) + src.sd_SetOpacity(1) + update_nearby_tiles() + + sleep(10) + src.operating = 0 + return + +/obj/machinery/door/poddoor/four_tile_hor/open() + if (src.operating == 1) //doors can still open when emag-disabled + return + if (!ticker) + return 0 + if(!src.operating) //in case of emag + src.operating = 1 + flick("pdoorc0", src) + src.icon_state = "pdoor0" + sleep(10) + src.density = 0 + src.sd_SetOpacity(0) + + f1.density = 0 + f1.sd_SetOpacity(0) + f2.density = 0 + f2.sd_SetOpacity(0) + f3.density = 0 + f3.sd_SetOpacity(0) + f4.density = 0 + f4.sd_SetOpacity(0) + + update_nearby_tiles() + + if(operating == 1) //emag again + src.operating = 0 + if(autoclose) + spawn(150) + autoclose() + return 1 + +/obj/machinery/door/poddoor/four_tile_hor/close() + if (src.operating) + return + src.operating = 1 + flick("pdoorc1", src) + src.icon_state = "pdoor1" + src.density = 1 + + f1.density = 1 + f1.sd_SetOpacity(1) + f2.density = 1 + f2.sd_SetOpacity(1) + f3.density = 1 + f3.sd_SetOpacity(1) + f4.density = 1 + f4.sd_SetOpacity(1) + + if (src.visible) + src.sd_SetOpacity(1) + update_nearby_tiles() + sleep(10) src.operating = 0 return \ No newline at end of file