Greasy Fork is available in English.

scratch extesion: misc by rssaromeo

none

  1. // ==UserScript==
  2. // @name scratch extesion: misc by rssaromeo
  3. // @version 2
  4. // @description none
  5. // @run-at document-start
  6. // @author rssaromeo
  7. // @tag lib
  8. // @license GPLv3
  9. // @match *://*/*
  10. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABhQTFRFAAAA7e3th4V6h4V+h4eFh4eH////7e3sbLmULQAAAAh0Uk5TAP/////////VylQyAAABsUlEQVR4nI2VS07FMAxFYwkJiVGzBFgJgy67A3ZkFoBU4r/dJoUOnvrq03tTx7Gh+QWb357f8dTvessX3oD0ftGAeTwIA8QAPt7bz1cxgRR/+ZQ/imAC2MDiRogJuMCeV3C4BJhAvO8aLAEqUONKoAIksLfLdagEzAWUQAamAmIyJASYCLCEAHMHkcABLBxMApYODqwc1APWDiIB5kDbEVVCm4cF4P32IuHqQfI4QZagBYkpPnBaBAE7C+D4cWCsfht6RwIo7ZsB5NUdGA7yyABRImB4/Bvg2jCAv6YA9nV+ngrgeewtAeJ63AEJTIFOmeyarpELbAWg9FF6JOPGXQD0Lem6MQngZLNwZyFZSQFshV034gp4LhnAFoAkagrkTPaolj+A3h4B+doKyCoVkAQYEBWVgVRbCqRz4wkwhwb15N2A8wbkmjEgHb0K8Mmqh7cAcnifAe0P4VEA7Q9FIgPWgp4A73LTFuJdbtGExMGAO6F91Hv1zUQ7sXf7K2G9POZFNfFpkCZO1oiBk2dWEBzXfdepZ2Nzt/BibqbLMuqjuc/jAby+5XgUXkz/rJH2/BcDpA4mLRW1igAAAABJRU5ErkJggg==
  11. // @grant none
  12. // @namespace https://greasyfork.org/users/1184528
  13. // ==/UserScript==
  14.  
  15. ;(async () => {
  16. await loadlib("libloader").waitforlib("scratchextesnsionmanager")
  17. const {
  18. newext,
  19. newmenu,
  20. newblock,
  21. bt,
  22. inp,
  23. gettarget,
  24. totype,
  25. scratch_math,
  26. projectid,
  27. canvas,
  28. scratchvar,
  29. scratchlist,
  30. } = loadlib("scratchextesnsionmanager")
  31. var vm
  32. loadlib("libloader")
  33. .waitforlib("scratch")
  34. .then(() => (vm = loadlib("scratch").vm))
  35.  
  36. newext(
  37. "misc",
  38. "rssaromeo",
  39. class {
  40. setturbomode({ on }) {
  41. on = totype(on, "bool")
  42. vm.emit("TURBO_MODE_" + (on ? "ON" : "OFF"))
  43. }
  44.  
  45. cursor({ a }) {
  46. a = totype(a, "string")
  47. canvas().style.cursor = a
  48. }
  49. setfullscreen({ on }) {
  50. on = totype(on, "bool")
  51. if (on) canvas().requestFullscreen()
  52. else document.exitFullscreen()
  53. }
  54. getfullscreen() {
  55. return !!document.fullscreenElement
  56. }
  57. },
  58. [
  59. newblock(bt.cmd, "setturbomode", "set turbomode [on]", [
  60. newmenu("setturbomode", {
  61. items: ["true", "false"],
  62. defaultValue: "true",
  63. }),
  64. ]),
  65. newblock(bt.cmd, "cursor", "set the cursor image to [a]", [
  66. newmenu("cursor", {
  67. items: ["none", "default"],
  68. defaultValue: "default",
  69. }),
  70. ]),
  71. newblock(bt.cmd, "setfullscreen", "set fullscreen to [on]", [
  72. newmenu("setfullscreen", {
  73. items: ["true", "false"],
  74. defaultValue: "true",
  75. }),
  76. ]),
  77. newblock(bt.bool, "getfullscreen", "fullscreen"),
  78. ],
  79. undefined,
  80. "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABhQTFRFAAAA7e3th4V6h4V+h4eFh4eH////7e3sbLmULQAAAAh0Uk5TAP/////////VylQyAAABsUlEQVR4nI2VS07FMAxFYwkJiVGzBFgJgy67A3ZkFoBU4r/dJoUOnvrq03tTx7Gh+QWb357f8dTvessX3oD0ftGAeTwIA8QAPt7bz1cxgRR/+ZQ/imAC2MDiRogJuMCeV3C4BJhAvO8aLAEqUONKoAIksLfLdagEzAWUQAamAmIyJASYCLCEAHMHkcABLBxMApYODqwc1APWDiIB5kDbEVVCm4cF4P32IuHqQfI4QZagBYkpPnBaBAE7C+D4cWCsfht6RwIo7ZsB5NUdGA7yyABRImB4/Bvg2jCAv6YA9nV+ngrgeewtAeJ63AEJTIFOmeyarpELbAWg9FF6JOPGXQD0Lem6MQngZLNwZyFZSQFshV034gp4LhnAFoAkagrkTPaolj+A3h4B+doKyCoVkAQYEBWVgVRbCqRz4wkwhwb15N2A8wbkmjEgHb0K8Mmqh7cAcnifAe0P4VEA7Q9FIgPWgp4A73LTFuJdbtGExMGAO6F91Hv1zUQ7sXf7K2G9POZFNfFpkCZO1oiBk2dWEBzXfdepZ2Nzt/BibqbLMuqjuc/jAby+5XgUXkz/rJH2/BcDpA4mLRW1igAAAABJRU5ErkJggg=="
  81. )
  82. })()