flying-squid/src/lib/plugins/tick.js

26 lines
605 B
JavaScript

module.exports.server=function(serv) {
serv.tickCount = 0;
serv.lastTickTime = 0;
serv.setTickInterval = ticksPerSecond => {
serv.stopTickInterval();
serv.tickInterval = setInterval(() => {
serv.tickCount++;
var time = (Date.now() - serv.lastTickTime) / 1000;
if (time > 100) time = 0;
serv.emit('tick', time, serv.tickCount);
serv.lastTickTime = Date.now();
}, 1000/ticksPerSecond);
};
serv.stopTickInterval = () => {
if (serv.tickInterval) clearInterval(serv.tickInterval);
serv.tickInterval = null;
};
serv.setTickInterval(20);
};