mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-09 17:02:23 +00:00
Some code that ensures ladders and shit play nice with the modular Z-levels
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user