From b6d5f1db024134f743646e640d1393a0451fab71 Mon Sep 17 00:00:00 2001 From: "baloh.matevz" Date: Wed, 1 Jun 2011 14:54:07 +0000 Subject: [PATCH] Multi-tile horizontal pod doors have been added. (2 tile and 4 tile width) Note for veyveyr: The vertical dmi-s are not made properly, they're 64x32 when they should be 32x64 and 32x128. Since you have the originals somewhere on your computer, I'd request that you make the dmi have vertical sprites as it's probably much easier to do for you than it is for me without the originals... cutting everything out by hand, ugh... git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1647 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/door.dm | 50 +++++++++++++ code/game/machinery/doors/poddoor.dm | 105 +++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) 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