Some code that ensures ladders and shit play nice with the modular Z-levels

This commit is contained in:
SkyMarshal
2012-08-12 00:16:14 -07:00
parent 4b1f394b2b
commit b37ea52f4d
2 changed files with 58 additions and 30 deletions

View File

@@ -23,20 +23,34 @@
New()
. = ..()
spawn(1) //Allow map to load
if(!target)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
target = locate() in locate(x,y,adjacent_to_me["down"])
if (istype(target))
icon_state = top_icon_state
else
target = locate() in locate(x,y,adjacent_to_me["up"])
if (istype(target))
icon_state = bottom_icon_state
if(z in levels_3d)
if(!target)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
if("up" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["up"])
if(istype(target))
icon_state = bottom_icon_state
else if("down" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["down"])
if(istype(target))
icon_state = top_icon_state
else
del src
else
del src
else if("down" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["down"])
if(istype(target))
icon_state = bottom_icon_state
else
del src
else
del src
if(target)
target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
target.target = src
if(target)
target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
target.target = src
else
del src
Del()
spawn(1)
@@ -66,7 +80,7 @@
var/top_icon_state_open = "hatchdown-open"
var/top_icon_state_close = "hatchdown-close"
bottom_icon_state = "hatchup"
bottom_icon_state = "ladderup"
var/image/green_overlay
var/image/red_overlay
@@ -127,23 +141,37 @@
New()
. = ..()
spawn(1)
if(!target)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
target = locate() in locate(x,y,adjacent_to_me["up"])
if(istype(target))
icon_state = bottom_icon_state
else
target = locate() in locate(x,y,adjacent_to_me["down"])
if(istype(target))
icon_state = top_icon_state
if(z in levels_3d)
if(!target)
var/list/adjacent_to_me = global_adjacent_z_levels["[z]"]
if("up" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["up"])
if(istype(target))
icon_state = bottom_icon_state
else if("down" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["down"])
if(istype(target))
icon_state = top_icon_state
else
del src
else
del src
else if("down" in adjacent_to_me)
target = locate() in locate(x,y,adjacent_to_me["down"])
if(istype(target))
icon_state = bottom_icon_state
else
del src
else
del src
if(target)
target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
target.target = src
var/obj/multiz/stairs/lead_in = locate() in get_step(src, reverse_direction(dir))
if(lead_in)
lead_in.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
if(target)
target.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
target.target = src
var/obj/multiz/stairs/lead_in = locate() in get_step(src, reverse_direction(dir))
if(lead_in)
lead_in.icon_state = ( icon_state == top_icon_state ? bottom_icon_state : top_icon_state)
else
del src
Del()

View File

@@ -7,9 +7,9 @@
#ifdef ZAS_3D
var/list/levels_3d = list(1,4,7) //To expediate calculations, just do "z in levels_3d"
var/list/levels_3d = list(1,2) //To expediate calculations, just do "z in levels_3d"
var/list/global_adjacent_z_levels = list("1" = list("up" = 2, "down" = 7), "2" = list("down" = 1), "7" = list("up" = 1)) //Example. 2 is above 1 which is above 7.
var/list/global_adjacent_z_levels = list("1" = list("up" = 2), "2" = list("down" = 1)) //Example. 2 is above 1
//Commented out ones are incomplete.
//#include "TriDimension\Pipes.dm" //Example