Ventcrawling fixes

d3athrow/vgstation13#4251
tgstation/-tg-station#9296

 - Fixes moving between pipeline datums not updating pipe vision
 - Fixes login() not updating pipe vision
 - Removes hardcoded limit of entering through unary machinery-- does
   nothing *now*
 - Can see pipes in darkness as fullbright
 - More sanity checks
This commit is contained in:
Tigercat2000
2015-05-03 09:19:27 -07:00
parent f42f8e9b39
commit b14f7a429f
5 changed files with 32 additions and 18 deletions
+8 -1
View File
@@ -25,12 +25,16 @@ Pipelines + Other Objects -> Pipe network
var/initialize_directions = 0
var/pipe_color
var/image/pipe_image
var/global/datum/pipe_icon_manager/icon_manager
/obj/machinery/atmospherics/Destroy()
for(var/mob/living/M in src) //ventcrawling is serious business
M.remove_ventcrawl()
M.loc = src.loc
M.forceMove(src.loc)
if(pipe_image)
del(pipe_image) //we have to del it, or it might keep a ref somewhere else
..()
// Find a connecting /obj/machinery/atmospherics in specified direction.
@@ -163,6 +167,9 @@ obj/machinery/atmospherics/proc/check_connect_types_construction(obj/machinery/a
user.forceMove(target_move.loc) //handles entering and so on
user.visible_message("You hear something squeezing through the ducts.", "You climb out the ventilation system.")
else if(target_move.can_crawl_through())
if(target_move.return_network(target_move) != return_network(src))
user.remove_ventcrawl()
user.add_ventcrawl(target_move)
user.loc = target_move
user.client.eye = target_move //if we don't do this, Byond only updates the eye every tick - required for smooth movement
if(world.time - user.last_played_vent > VENT_SOUND_DELAY)
@@ -66,7 +66,7 @@
return_network(obj/machinery/atmospherics/reference)
build_network()
if(reference==node)
if(reference == node || reference == src)
return network
return null
@@ -89,7 +89,7 @@
if(reference==node)
del(network)
node = null
update_icon()
update_underlays()