Fixes NOPOWER not updating when machines are moved

This commit is contained in:
mwerezak
2014-07-28 18:52:13 -04:00
parent 5a09910b99
commit bf0a17dcb0
2 changed files with 13 additions and 1 deletions
+5 -1
View File
@@ -298,7 +298,11 @@ datum/controller/game_controller/proc/process_machines_power()
var/area/SubArea = A.related[j]
for(var/obj/machinery/M in SubArea)
if(M)
if(M.use_power)
//check if the area has power for M's channel
//this will keep stat updated in case the machine is moved from one area to another.
M.update_powered_status(A) //we've already made sure A is a master area, above.
if(!(M.stat & NOPOWER) && M.use_power)
M.auto_use_power()
if(A.apc.len && A.master == A)
+8
View File
@@ -77,6 +77,14 @@
stat |= NOPOWER
return
//This is used by the master controller to update the NOPOWER flag
//This will allow machines to update NOPOWER if they are moved from one area to another.
//Does the same thing as power_change() but is optimized for the master controller.
/obj/machinery/proc/update_powered_status(var/area/master_area)
if(master_area.powered(power_channel))
stat &= ~NOPOWER
else
stat |= NOPOWER
// the powernet datum
// each contiguous network of cables & nodes