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

81 lines
1.9 KiB
Plaintext

// handles machines
datum/controller/process/machines
var/tmp/list/machines
var/tmp/list/pipe_networks
var/tmp/list/powernets
var/tmp/list/atmos_machines
setup()
name = "Machine"
schedule_interval = 33
Station_VNet = new /datum/v_space/v_space_network()
doWork()
src.atmos_machines = global.atmos_machines
var/c = 0
for(var/obj/machinery/atmospherics/machine in atmos_machines)
#ifdef MACHINE_PROCESSING_DEBUG
var/t = world.time
#endif
machine.process()
#ifdef MACHINE_PROCESSING_DEBUG
register_machine_time(machine, world.time - t)
#endif
if (!(c++ % 100))
scheck()
src.pipe_networks = global.pipe_networks
for(var/datum/pipe_network/network in src.pipe_networks)
#ifdef MACHINE_PROCESSING_DEBUG
var/t = world.time
#endif
network.process()
#ifdef MACHINE_PROCESSING_DEBUG
register_machine_time(network, world.time - t)
#endif
if (!(c++ % 100))
scheck()
src.powernets = global.powernets
for(var/datum/powernet/PN in src.powernets)
#ifdef MACHINE_PROCESSING_DEBUG
var/t = world.time
#endif
PN.reset()
#ifdef MACHINE_PROCESSING_DEBUG
register_machine_time(PN, world.time - t)
#endif
if (!(c++ % 100))
scheck()
src.machines = global.machines
for(var/obj/machinery/machine in src.machines)
#ifdef MACHINE_PROCESSING_DEBUG
var/t = world.time
#endif
machine.process()
#ifdef MACHINE_PROCESSING_DEBUG
register_machine_time(machine, world.time - t)
#endif
if (!(c++ % 100))
scheck()
#ifdef MACHINE_PROCESSING_DEBUG
proc/register_machine_time(var/datum/machine, var/time)
if(!machine) return
var/list/mtl = detailed_machine_timings[machine.type]
if(!mtl)
mtl = list()
mtl.len = 2
mtl[1] = 0 //The amount of time spent processing this machine in total
mtl[2] = 0 //The amount of times this machine has been processed
detailed_machine_timings[machine.type] = mtl
mtl[1] += time
mtl[2]++
#endif