Convert furnace ABM to node timer
authorAuke Kok <sofar@foo-projects.org>
Wed, 10 Feb 2016 06:03:40 +0000 (22:03 -0800)
committerparamat <mat.gregory@virginmedia.com>
Sat, 13 Feb 2016 03:47:38 +0000 (03:47 +0000)
commit8f095c62a8af0f4660266c20d426e23a35792416
tree1f8d1f7e90a035b49576681e052c7d197377aa15
parentf600a9f645af40d22c8eb7c17aff89507b71816e
Convert furnace ABM to node timer

Node timers are higher precision and a better guarantee
of happening at regular intervals, whereas ABM's may be
postponed, cancelled or missed if a player is too far.

The largest benefit is that once the furnace is done
cooking, no more ABM's are fired - the timer is stopped
instead and no more events are created until items
are put in the furnace.

This patch is larger due to the migration of the timer
function and indentation change as a result of the somewhat
reduced complexity. I've tested with several furnaces and
this works correctly and behavior is not affected, although
people may find that their furnaces now work more
regularly.

If you place several furnaces next to eachother, you will
still find all furnace timers firing exactly at the same
time. This is a bug in core that should not coalesce node
timers at second intervals.
mods/default/furnace.lua