Update libhooktick.js

Adds additional capabilities and functionality
This commit is contained in:
MollTheCoder 2023-07-29 00:12:03 -04:00 committed by GitHub
parent c9b7e6ea14
commit f1b8e38c3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 39 additions and 5 deletions

View File

@ -1,15 +1,49 @@
let __registeredTickCallbacks = [];
let __registeredAfterTickCallbacks = [];
let __registeredBeforeTickCallbacks = [];
window.addEventListener("load", ()=>{
let oldTick = tick;
const oldTick = tick;
clearInterval(tickInterval);
tick = function(){
__registeredBeforeTickCallbacks.forEach(func=>{
func();
});
oldTick();
__registeredTickCallbacks.forEach(func=>{
__registeredAfterTickCallbacks.forEach(func=>{
func();
});
}
tickInterval = setInterval(tick, 1000/tps);
});
function everyTick(callback) {
__registeredTickCallbacks.push(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;
}
window.removeTickListener = removeTickListener;