scratch extesion: var manip by rssaromeo

none

目前为 2025-01-26 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name scratch extesion: var manip by rssaromeo
  3. // @version 2
  4. // @description none
  5. // @tag lib
  6. // @run-at document-start
  7. // @author rssaromeo
  8. // @license GPLv3
  9. // @match *://*/*
  10. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAzpJREFUeF7tm9FtHDEMRH2AS3ApqSGdpIekgqSHdJIaUkpKMJBABhToZJEzQ1GrXdv3u3eS5nFIcbV7t4cFnz/fHv8uGPbh6fvzLXvctAFXibYEZ8FIAXC0+AolA8IUgF3Ce1fMgAgDiIj/+dsvDV8+hZcTrg/yjIpwJBgVtAgQ1Q0SAFb8rPAejApCgUADQOKzRVvuYGGwECgAZxFfoWRCgAA88UdFfcYNyAkugDOLV9zgQTABXEF86wyUFhaEIYCriWfdMIIgAdid86hvKNc9J1AAotH/+uv51fp+fH5k1pz+HQXCnQMyxfeqjobBQqAAWNYfRd0LpwXBGseDhhwnA1Cjr4ovYEaCvHFmALD14MUBR4gfAUAQVQCjtENOcAGMrI8WraQAGuvdAmALJgvQckHZFm+K/dGEaD9rhUVzv52DWU+Z00sDE8Cs/VEUMwAUGAhCXYcFIRUAEl2jlyWecUMIgLrvs8J3AGh3n5ELhg7YBaCARA3OyPY1AKihWgJAjb6XtwwAD9AlAKD890Qggeg65QDvlpexJ9oKowCYBgsBGLXHr2qACoBZGFP82mKFtrZ2Tqa3aL/Tu+ADQN8JXskBfQG+dAqwYiz7o93FOjc8TQqoZwXK+cIlakAEAHvGsBSA0gihLZDp7b2zxpQaUCZQWuFsAMoWWGFcqhVGLvgAMHi+gLrLN+8ARiBylnVKPH0gotQAdILDjtWLte4i2xqx7ESIXTRb4VeNJwMY7QYZd4PIBVaDY9UBVDThoWgZ2DoZ7rfDowAoEKK5X+Z4ORZXAKBqrF5nFu+NyUTfKn4UAK8pUsWOvr8SADoNvgPguWAXBKYYIoDouWDR9v/xuPKEKCP6dYyZuoJ+6z0Sq/NT7wesdkEm0DoWE/07B9Qf7nJCJgRW/LsDQL0ktbMgZrhAif7QAVdOBVV8GECFdJb3BqNviboAUCqcBcKMeAiAhbBjm0TCa6eH6gp8Xf6MELLEUw5giuKIcnZ9YESzUW/XSzkgCiEjNVjhEfGSA1pq6C80Xt4hZyiC6zzoXyHeeiQHZEFAhUm5PiM+7IAzgJgVXjWEHbATQpb4FAf0dp2pD571M0W38/wDGeDbTwDQVuQAAAAASUVORK5CYII=
  11. // @grant none
  12. // @namespace https://greasyfork.org/users/1184528
  13. // ==/UserScript==
  14. ;(async () => {
  15. await loadlib("libloader").waitforlib("scratchextesnsionmanager")
  16. const {
  17. newext,
  18. newmenu,
  19. newblock,
  20. bt,
  21. inp,
  22. gettarget,
  23. totype,
  24. scratch_math,
  25. projectid,
  26. canvas,
  27. scratchvar,
  28. scratchlist,
  29. } = loadlib("scratchextesnsionmanager")
  30. var a = loadlib("allfuncs")
  31. var vm
  32. loadlib("libloader")
  33. .waitforlib("scratch")
  34. .then(() => (vm = loadlib("scratch").vm))
  35.  
  36. newext(
  37. "var manip",
  38. "rssaromeo",
  39. class {
  40. // deletevar({ varname, sprite }) {
  41. // // if (!gettarget(sprite))
  42. // // return scratchvar("__error", "sprite does not exist")
  43. // if (gettarget(sprite).getvar(varname, "")?.id) {
  44. // gettarget(sprite).deleteVariable(
  45. // gettarget(sprite).getvar(varname, "").id
  46. // )
  47. // // return true
  48. // } else {
  49. // // return false
  50. // }
  51. // }
  52. // deletelist({ varname, sprite }) {
  53. // // if (!gettarget(sprite))
  54. // // return scratchvar("__error", "sprite does not exist")
  55. // if (gettarget(sprite).getvar(varname, "list")?.id) {
  56. // gettarget(sprite).deleteVariable(
  57. // gettarget(sprite).getvar(varname, "list").id
  58. // )
  59. // // return true
  60. // } else {
  61. // // return false
  62. // }
  63. // }
  64. // showvar({ varname, sprite }) {
  65. // // if (!gettarget(sprite))
  66. // // return scratchvar("__error", "sprite does not exist")
  67. // if (gettarget(sprite).getvar(varname, "")?.id) {
  68. // vm.runtime._primitives.data_showvariable({
  69. // VARIABLE: gettarget(sprite).getvar(varname, ""),
  70. // })
  71. // // return true
  72. // } else {
  73. // // return false
  74. // }
  75. // }
  76. // showlist({ varname, sprite }) {
  77. // // if (!gettarget(sprite))
  78. // // return scratchvar("__error", "sprite does not exist")
  79. // if (gettarget(sprite).getvar(varname, "list")?.id) {
  80. // vm.runtime._primitives.data_showlist({
  81. // LIST: gettarget(sprite).getvar(varname, "list"),
  82. // })
  83. // // return true
  84. // } else {
  85. // // return false
  86. // }
  87. // }
  88. // hidevar({ varname, sprite }) {
  89. // // if (!gettarget(sprite))
  90. // // return scratchvar("__error", "sprite does not exist")
  91. // if (gettarget(sprite).getvar(varname, "")?.id) {
  92. // vm.runtime._primitives.data_hidevariable({
  93. // VARIABLE: gettarget(sprite).getvar(varname, ""),
  94. // })
  95. // // return true
  96. // } else {
  97. // // return false
  98. // }
  99. // }
  100. // hidelist({ varname, sprite }) {
  101. // // if (!gettarget(sprite))
  102. // // return scratchvar("__error", "sprite does not exist")
  103. // if (gettarget(sprite).getvar(varname, "list")?.id) {
  104. // vm.runtime._primitives.data_hidelist({
  105. // LIST: gettarget(sprite).getvar(varname, "list"),
  106. // })
  107. // // return true
  108. // } else {
  109. // // return false
  110. // }
  111. // }
  112. deletevar({ varname }) {
  113. var [sprite, varname] = JSON.parse(varname)
  114. if (gettarget(sprite).getvar(varname, "")?.id) {
  115. gettarget(sprite).deleteVariable(
  116. gettarget(sprite).getvar(varname, "").id
  117. )
  118. }
  119. }
  120. createlist({ varname, sprite }) {
  121. log("sprite", sprite)
  122. gettarget(sprite).createVariable(
  123. varname,
  124. varname,
  125. "list",
  126. sprite
  127. )
  128. }
  129. deletelist({ varname }) {
  130. var [sprite, varname] = JSON.parse(varname)
  131. if (gettarget(sprite).getvar(varname, "list")?.id) {
  132. gettarget(sprite).deleteVariable(
  133. gettarget(sprite).getvar(varname, "list").id
  134. )
  135. }
  136. }
  137. showvar({ varname }) {
  138. var [sprite, varname] = JSON.parse(varname)
  139. if (gettarget(sprite).getvar(varname, "")?.id) {
  140. vm.runtime._primitives.data_showvariable({
  141. VARIABLE: gettarget(sprite).getvar(varname, ""),
  142. })
  143. }
  144. }
  145.  
  146. createvar({ varname, sprite }) {
  147. log("sprite", sprite)
  148. gettarget(sprite).createVariable(varname, varname, "", sprite)
  149. }
  150. showlist({ varname }) {
  151. var [sprite, varname] = JSON.parse(varname)
  152. if (gettarget(sprite).getvar(varname, "list")?.id) {
  153. vm.runtime._primitives.data_showlist({
  154. LIST: gettarget(sprite).getvar(varname, "list"),
  155. })
  156. }
  157. }
  158. hidevar({ varname }) {
  159. var [sprite, varname] = JSON.parse(varname)
  160. if (gettarget(sprite).getvar(varname, "")?.id) {
  161. vm.runtime._primitives.data_hidevariable({
  162. VARIABLE: gettarget(sprite).getvar(varname, ""),
  163. })
  164. }
  165. }
  166. hidelist({ varname }) {
  167. var [sprite, varname] = JSON.parse(varname)
  168. if (gettarget(sprite).getvar(varname, "list")?.id) {
  169. vm.runtime._primitives.data_hidelist({
  170. LIST: gettarget(sprite).getvar(varname, "list"),
  171. })
  172. }
  173. }
  174. },
  175. [
  176. // newblock(bt.cmd, "hidelist", "hide list [varname] in sprite [sprite]", [
  177. // newmenu("listnames", { defaultValue: "" }),
  178. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  179. // ]),
  180. // newblock(bt.cmd, "showlist", "show list [varname] in sprite [sprite]", [
  181. // newmenu("listnames", { defaultValue: "" }),
  182. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  183. // ]),
  184. // newblock(bt.cmd, "hidevar", "hide var [varname] in sprite [sprite]", [
  185. // newmenu("varnames", { defaultValue: "" }),
  186. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  187. // ]),
  188. // newblock(bt.cmd, "showvar", "show var [varname] in sprite [sprite]", [
  189. // newmenu("varnames", { defaultValue: "" }),
  190. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  191. // ]),
  192. newblock(bt.cmd, "hidelist", "hide list [varname]", [
  193. newmenu("listnames", { defaultValue: "" }),
  194. newmenu("spritelistwithglobal", { defaultValue: "" }),
  195. ]),
  196. newblock(bt.cmd, "showlist", "show list [varname]", [
  197. newmenu("listnames", { defaultValue: "" }),
  198. newmenu("spritelistwithglobal", { defaultValue: "" }),
  199. ]),
  200. newblock(bt.cmd, "hidevar", "hide var [varname]", [
  201. newmenu("varnames", { defaultValue: "" }),
  202. newmenu("spritelistwithglobal", { defaultValue: "" }),
  203. ]),
  204. newblock(bt.cmd, "showvar", "show var [varname]", [
  205. newmenu("varnames", { defaultValue: "" }),
  206. newmenu("spritelistwithglobal", { defaultValue: "" }),
  207. ]),
  208. // newblock(
  209. // bt.cmd,
  210. // "deletelist",
  211. // "broken: delete list [varname] in sprite [sprite]",
  212. // [
  213. // newmenu("listnames", { defaultValue: "" }),
  214. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  215. // ]
  216. // ),
  217. // newblock(
  218. // bt.cmd,
  219. // "deletevar",
  220. // "broken: delete var [varname] in sprite [sprite]",
  221. // [
  222. // newmenu("varnames", { defaultValue: "" }),
  223. // newmenu("spritelistwithglobal", { defaultValue: "" }),
  224. // ]
  225. // ),
  226. newblock(
  227. bt.cmd,
  228. "createlist",
  229. "create list [varname] in sprite [sprite]",
  230. [
  231. inp.str,
  232. newmenu("spritelistwithglobal", { defaultValue: "" }),
  233. ]
  234. ),
  235. newblock(
  236. bt.cmd,
  237. "createvar",
  238. "create var [varname] in sprite [sprite]",
  239. [
  240. inp.str,
  241. newmenu("spritelistwithglobal", { defaultValue: "" }),
  242. ]
  243. ),
  244. ],
  245. "ec7904",
  246. "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAzpJREFUeF7tm9FtHDEMRH2AS3ApqSGdpIekgqSHdJIaUkpKMJBABhToZJEzQ1GrXdv3u3eS5nFIcbV7t4cFnz/fHv8uGPbh6fvzLXvctAFXibYEZ8FIAXC0+AolA8IUgF3Ce1fMgAgDiIj/+dsvDV8+hZcTrg/yjIpwJBgVtAgQ1Q0SAFb8rPAejApCgUADQOKzRVvuYGGwECgAZxFfoWRCgAA88UdFfcYNyAkugDOLV9zgQTABXEF86wyUFhaEIYCriWfdMIIgAdid86hvKNc9J1AAotH/+uv51fp+fH5k1pz+HQXCnQMyxfeqjobBQqAAWNYfRd0LpwXBGseDhhwnA1Cjr4ovYEaCvHFmALD14MUBR4gfAUAQVQCjtENOcAGMrI8WraQAGuvdAmALJgvQckHZFm+K/dGEaD9rhUVzv52DWU+Z00sDE8Cs/VEUMwAUGAhCXYcFIRUAEl2jlyWecUMIgLrvs8J3AGh3n5ELhg7YBaCARA3OyPY1AKihWgJAjb6XtwwAD9AlAKD890Qggeg65QDvlpexJ9oKowCYBgsBGLXHr2qACoBZGFP82mKFtrZ2Tqa3aL/Tu+ADQN8JXskBfQG+dAqwYiz7o93FOjc8TQqoZwXK+cIlakAEAHvGsBSA0gihLZDp7b2zxpQaUCZQWuFsAMoWWGFcqhVGLvgAMHi+gLrLN+8ARiBylnVKPH0gotQAdILDjtWLte4i2xqx7ESIXTRb4VeNJwMY7QYZd4PIBVaDY9UBVDThoWgZ2DoZ7rfDowAoEKK5X+Z4ORZXAKBqrF5nFu+NyUTfKn4UAK8pUsWOvr8SADoNvgPguWAXBKYYIoDouWDR9v/xuPKEKCP6dYyZuoJ+6z0Sq/NT7wesdkEm0DoWE/07B9Qf7nJCJgRW/LsDQL0ktbMgZrhAif7QAVdOBVV8GECFdJb3BqNviboAUCqcBcKMeAiAhbBjm0TCa6eH6gp8Xf6MELLEUw5giuKIcnZ9YESzUW/XSzkgCiEjNVjhEfGSA1pq6C80Xt4hZyiC6zzoXyHeeiQHZEFAhUm5PiM+7IAzgJgVXjWEHbATQpb4FAf0dp2pD571M0W38/wDGeDbTwDQVuQAAAAASUVORK5CYII="
  247. )
  248. })()