That'll do pig, that'll do. (#10144)

* Fixes TEG processing not being synchronized.

Fixes #10034

* ugh
This commit is contained in:
PJB3005
2016-05-22 05:33:31 +02:00
committed by clusterfack
parent fb3cc4cb6b
commit abd2df9960
3 changed files with 13 additions and 5 deletions

View File

@@ -45,4 +45,4 @@
continue
args["event"] = src
if(call(objRef,procName)(args, holder)) //An intercept value so whatever code section knows we mean business
. = 1
. = 1

View File

@@ -1,14 +1,16 @@
var/global/list/datum/pipe_network/pipe_networks = list()
var/global/list/obj/machinery/atmospherics/atmos_machines = list()
var/event/on_pipenet_tick = new()
/datum/controller/process/pipenet
schedule_interval = 29 // every 2 seconds
/datum/controller/process/pipenet/setup()
name = "pipenet"
global.on_pipenet_tick.holder = src
/datum/controller/process/pipenet/doWork()
INVOKE_EVENT(global.on_pipenet_tick, list())
for(var/obj/machinery/atmospherics/atmosmachinery in atmos_machines)
if(istype(atmosmachinery))
if(!atmosmachinery.disposed && !atmosmachinery.timestopped)

View File

@@ -20,6 +20,7 @@
machine_flags = WRENCHMOVE | FIXED2WORK
var/tmp/datum/html_interface/nanotrasen/interface
var/tmp/on_pipenet_tick_key
/obj/machinery/power/generator/New()
..()
@@ -48,6 +49,7 @@
interface = new(src, name, 450, 410, head)
html_machines += src
on_pipenet_tick_key = global.on_pipenet_tick.Add(src, "pipenet_process")
init_ui()
@@ -65,6 +67,7 @@
interface = null
html_machines -= src
global.on_pipenet_tick.Remove(on_pipenet_tick_key)
/obj/machinery/power/generator/proc/init_ui()
interface.updateLayout({"
@@ -260,7 +263,8 @@
if(lastgenlev != 0)
overlays += "teg-op[lastgenlev]"
/obj/machinery/power/generator/process()
// We actually tick power gen on the pipenet process to make sure we're synced with pipenet updates.
/obj/machinery/power/generator/proc/pipenet_process(var/list/event_args, var/datum/controller/process/pipenet/owner)
if(!operable())
return
@@ -295,8 +299,6 @@
if(circ2.network2)
circ2.network2.update = TRUE
add_avail(last_gen)
//Update icon overlays and power usage only if displayed level has changed.
var/genlev = Clamp(round(11 * last_gen / max_power), 0, 11)
@@ -309,6 +311,10 @@
updateUsrDialog()
/obj/machinery/power/generator/process()
if (operable())
add_avail(last_gen)
/obj/machinery/power/generator/attack_ai(mob/user)
return attack_hand(user)