Greasy Fork is available in English.

Bonk resolution setter

Adds a resolution setter box to the settings

  1. // ==UserScript==
  2. // @name Bonk resolution setter
  3. // @version 0.3
  4. // @author Salama
  5. // @description Adds a resolution setter box to the settings
  6. // @match https://bonk.io/gameframe-release.html
  7. // @run-at document-end
  8. // @grant none
  9. // @supportURL https://discord.gg/Dj6usq7ww3
  10. // @namespace https://greatest.deepsurf.us/users/824888
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. let newResolution = null;
  16. let maxResolution = window.parent.devicePixelRatio;
  17. let resolutionScale = 1/maxResolution;
  18. window.devicePixelRatio = localStorage.getItem("salamaResolution") || window.devicePixelRatio;
  19. let setting = document.createElement("div");
  20. document.getElementById("settingsContainer").appendChild(setting);
  21. setting.outerHTML = `
  22. <div id="salama_resolution" style="
  23. top: 345px;
  24. left: 255px;
  25. position: absolute;
  26. display: flex;
  27. font-family: futurept_b1;
  28. ">
  29. <div style="
  30. margin-right: 10px;
  31. ">Quality [20-100]</div>
  32. <input id="salama_resolution_input" class="mapeditor_field fieldShadow" value="${window.devicePixelRatio * 100}" autocomplete="off">
  33. </div>`;
  34. document.getElementById("salama_resolution_input").addEventListener("change", e => {
  35. let v = e.target.value;
  36. if(v < 20) v = 20;
  37. if(v > maxResolution * 100 * resolutionScale) v = maxResolution * 100 * resolutionScale;
  38. newResolution = v / (100 * resolutionScale);
  39. e.target.value = v;
  40. });
  41. document.getElementById("settings_saveButton").addEventListener("click", e => {
  42. if(newResolution) {
  43. window.devicePixelRatio = newResolution;
  44. localStorage.setItem("salamaResolution", window.devicePixelRatio);
  45. newResolution = null;
  46. // This needs to change to reload graphics
  47. let old = document.getElementById("settings_graphicsquality").selectedIndex;
  48. document.getElementById("settings_graphicsquality").selectedIndex = (old === 2 ? 0 : 2);
  49. document.getElementById("settings_graphicsquality").onchange();
  50. e.target.click();
  51. document.getElementById("settings_graphicsquality").selectedIndex = old;
  52. document.getElementById("settings_graphicsquality").onchange();
  53. }
  54. });
  55. })();