This is my tallest wall so far, and I'm using Autojoining normally in his ActionRPG-Framework.
turf
wall_05
icon = '96.dmi'
density = 1
pdepth = 64
icon_state = "05"
New()
..()
if(!density)
var/n = autojoin47("density")
if(n > 0)
overlays += image('shadow-47.dmi', "[n]", pixel_z = 48)
else
var/n = autojoin16("density")
if(n < 32)
overlays += image('96.dmi', "outline-[n]", pixel_z = 48)
The results:
Below is my next approach with my two tallest walls as demonstrated in his pixel_movement.top-down demo:
turf
proc
generate_top()
if(pdepth > 32) return
var/obj/o = new()
o.icon_state = icon_state
o.pixel_z = pdepth + pz
overlays += o
wall_04
icon = '64.dmi'
density = 1
pdepth = 48
icon_state = "wall"
New()
..()
var/n = 0
var/turf/t = locate(x,y+1,z)
if(t && istype(t,type)) n += 1
t = locate(x+1,y,z)
if(t && istype(t,type)) n += 2
t = locate(x,y-1,z)
if(t && istype(t,type)) n += 4
t = locate(x-1,y,z)
if(t && istype(t,type)) n += 8
icon_state = "wall-[n]"
generate_top()
wall_05
icon = '96.dmi'
density = 1
pdepth = 64
icon_state = "wall"
New()
..()
var/n = 0
var/turf/t = locate(x,y+1,z)
if(t && istype(t,type)) n += 1
t = locate(x+1,y,z)
if(t && istype(t,type)) n += 2
t = locate(x,y-1,z)
if(t && istype(t,type)) n += 4
t = locate(x-1,y,z)
if(t && istype(t,type)) n += 8
icon_state = "wall-[n]"
generate_top()
Results:
So, you see my dilemma perhaps. It would be cool to use one .dmi so those extra lines don't pop up, but at the same time, I'm not entirely sure how to go about this.