IPS display

inputs per second display for 2048verse

As of 14.03.2024. See ბოლო ვერსია.

// ==UserScript==
// @name         IPS display
// @namespace    http://tampermonkey.net/
// @version      2024-03-14
// @description  inputs per second display for 2048verse
// @author       cattodoameow
// @match        https://2048verse.com/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=2048verse.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    var date = new Date();
    var times = [];
    var i = 0;
    var IPSupdateTime = 200;
    var IPS = 0;
    setInterval(calculateIPS,IPSupdateTime);
    function initIPS(){
        var display = document.createElement("p");
        display.id = "IPS_DISPLAY";
        display.innerHTML = "IPS: " + IPS.toString();
        display.style.position = "fixed";
        display.style.right = "0%";
        display.style.top = "0%";
        document.body.insertBefore(display,document.body.childNodes[0]);
    }
    initIPS();
    function calculateIPS(){
       date = new Date();
       var time = date.getTime();
       // find the first input that's less than one second before now => all the ones after it are within the last second
       const withinLastSecond = (element) => time - element <= 1000;
       IPS = (i - 1 - times.findIndex(withinLastSecond));
       if(time - times[i - 1] > 1000){
           IPS = 0; // idfk
       }
       // remove old inputs
       if(!times.findIndex(withinLastSecond) == -1){
           for(var j = times.size(); j < times.findIndex(withinLastSecond); j++){
               times.remove(j);
           }
       }
       updateDisplay();
    }
    function updateDisplay(){
        var display = document.getElementById("IPS_DISPLAY");
        display.innerHTML = "IPS: " + IPS.toString();
    }
    document.addEventListener('keydown', (event) => {
       // add to the input arr
       date = new Date();
       times[i++] = date.getTime();
    });
})();