Files
2016-03-06 20:52:14 +01:00

76 lines
1.9 KiB
Plaintext

var/const/BLOCK_LAYER = 10 // TODO layer what the fuck is this shit
proc/get_dir2(var/atom/toObj, var/atom/fromObj)
if(fromObj.x > toObj.x && fromObj.y > toObj.y)
return NORTHEAST
else if(fromObj.x > toObj.x && fromObj.y == toObj.y)
return EAST
else if(fromObj.x > toObj.x && fromObj.y < toObj.y)
return SOUTHEAST
else if(fromObj.x == toObj.x && fromObj.y > toObj.y)
return NORTH
else if(fromObj.x == toObj.x && fromObj.y < toObj.y)
return SOUTH
else if(fromObj.x < toObj.x && fromObj.y > toObj.y)
return NORTHWEST
else if(fromObj.x < toObj.x && fromObj.y < toObj.y)
return SOUTHWEST
else if(fromObj.x < toObj.x && fromObj.y == toObj.y)
return WEST
/*
obj/onewaymirror
icon = 'icons/obj/window.dmi'
icon_state = "onewaymirror"
density = 1
opacity = 0
anchored = 1
name = "One-way Mirror"
desc = "Nifty!"
layer = 11
mob/Move()
. = ..()
if(client && .) client.UpdateViewFilter()
turf
var/image/viewblock
New()
..()
viewblock = image('icons/misc/old_or_unused.dmi',src,"black",BLOCK_LAYER)
client
var/list
ViewFilter = list()
SeenTurfs = list()
New()
..()
SeenTurfs = list()
proc/UpdateViewFilter()
var
Image
list
newimages = list()
v = view(world.view,mob)
onewaylist = list()
for(var/obj/onewaymirror/M in v)
if(M.dir & get_dir2(M,mob))
M.opacity = 1
onewaylist += M
if(onewaylist.len)
var/list/List = v - view(world.view,mob)
for(var/turf/T in List)
src << T.viewblock
newimages += T.viewblock
for(var/obj/onewaymirror/M in onewaylist)
M.opacity = 0
for(Image in ViewFilter-newimages)
images -= Image
ViewFilter = newimages
*/