2023-07-29 00:12:03 -04:00
|
|
|
let __registeredAfterTickCallbacks = [];
|
|
|
|
|
let __registeredBeforeTickCallbacks = [];
|
2023-07-02 11:12:47 -04:00
|
|
|
window.addEventListener("load", ()=>{
|
2023-07-29 00:12:03 -04:00
|
|
|
const oldTick = tick;
|
2023-07-02 11:12:47 -04:00
|
|
|
clearInterval(tickInterval);
|
2023-07-02 11:22:00 -04:00
|
|
|
tick = function(){
|
2023-07-29 00:12:03 -04:00
|
|
|
__registeredBeforeTickCallbacks.forEach(func=>{
|
|
|
|
|
func();
|
|
|
|
|
});
|
2023-07-02 11:22:00 -04:00
|
|
|
oldTick();
|
2023-07-29 00:12:03 -04:00
|
|
|
__registeredAfterTickCallbacks.forEach(func=>{
|
2023-07-02 11:22:00 -04:00
|
|
|
func();
|
|
|
|
|
});
|
|
|
|
|
}
|
2023-07-07 15:45:36 -04:00
|
|
|
tickInterval = setInterval(tick, 1000/tps);
|
2023-07-02 11:12:47 -04:00
|
|
|
});
|
2023-07-29 00:12:03 -04:00
|
|
|
function everyTick(callback) {
|
|
|
|
|
afterEveryTick(callback);
|
|
|
|
|
}
|
|
|
|
|
window.everyTick = everyTick;
|
|
|
|
|
function beforeEveryTick(callback) {
|
|
|
|
|
__registeredBeforeTickCallbacks.push(callback);
|
|
|
|
|
}
|
|
|
|
|
window.beforeEveryTick = beforeEveryTick;
|
|
|
|
|
function afterEveryTick(callback) {
|
|
|
|
|
__registeredAfterTickCallbacks.push(callback);
|
|
|
|
|
}
|
|
|
|
|
window.afterEveryTick = afterEveryTick;
|
|
|
|
|
function removeTickListener(callback, mode) {
|
|
|
|
|
let removed = false;
|
|
|
|
|
if(mode!=="before") {
|
|
|
|
|
let index = __registeredAfterTickCallbacks.indexOf(callback);
|
|
|
|
|
if (index === -1 && mode === "after") throw new Error(`Could not find callback.`);
|
|
|
|
|
if(index !== -1) {
|
|
|
|
|
__registeredAfterTickCallbacks.splice(index, 1);
|
|
|
|
|
removed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(mode!=="after") {
|
|
|
|
|
let index = __registeredBeforeTickCallbacks.indexOf(callback);
|
|
|
|
|
if (index === -1 && mode === "before") throw new Error(`Could not find callback.`);
|
|
|
|
|
if(index !== -1) {
|
|
|
|
|
__registeredBeforeTickCallbacks.splice(index, 1);
|
|
|
|
|
removed = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return removed;
|
2023-01-16 17:02:21 -05:00
|
|
|
}
|
2023-07-29 00:12:03 -04:00
|
|
|
window.removeTickListener = removeTickListener;
|