Merge pull request #9208 from atlantiscze/rolling-brownouts

Fixes dev power issues
This commit is contained in:
Chinsky
2015-05-13 18:09:16 +03:00
6 changed files with 34 additions and 35 deletions
+14 -4
View File
@@ -14,10 +14,6 @@
machines = dd_sortedObjectList(machines)
/datum/controller/process/machinery/proc/internal_process()
//#ifdef PROFILE_MACHINES
//machine_profiling.len = 0
//#endif
for(var/obj/machinery/M in machines)
if(M && !M.gcDestroyed)
#ifdef PROFILE_MACHINES
@@ -43,6 +39,20 @@
scheck()
for(var/datum/powernet/powerNetwork in powernets)
if(istype(powerNetwork) && !powerNetwork.disposed)
powerNetwork.reset()
scheck()
continue
powernets.Remove(powerNetwork)
// Currently only used by powersinks. These items get priority processed before machinery
for(var/obj/item/I in processing_power_items)
if(!I.pwr_drain()) // 0 = Process Kill, remove from processing list.
processing_power_items.Remove(I)
scheck()
/datum/controller/process/machinery/getStatName()
return ..()+"([machines.len])"
-20
View File
@@ -1,20 +0,0 @@
/datum/controller/process/powernet/setup()
name = "powernet"
schedule_interval = 20 // every 2 seconds
/datum/controller/process/powernet/doWork()
for(var/datum/powernet/powerNetwork in powernets)
if(istype(powerNetwork) && !powerNetwork.disposed)
powerNetwork.reset()
scheck()
continue
powernets.Remove(powerNetwork)
// This is necessary to ensure powersinks are always the first devices that drain power from powernet.
// Otherwise APCs or other stuff go first, resulting in bad things happening.
for(var/obj/item/device/powersink/S in processing_objects)
S.drain()
/datum/controller/process/powernet/getStatName()
return ..()+"([powernets.len])"