Merge pull request #117 from mollthecoder/main

This commit is contained in:
slweeb 2023-07-30 18:40:53 -04:00 committed by GitHub
commit 56d0e1a00d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 6 deletions

View File

@ -4,7 +4,7 @@ let realTps = 0;
let lastTps = 0;
window.addEventListener("load", ()=>{
requireMods(["mods/libhooktick.js"], () => {
everyTick(()=>{
beforeEveryTick(()=>{
lastTps++;
});
setInterval(()=>{

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);
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;
}
window.removeTickListener = removeTickListener;