scratch extesion: thread vars by rssaromeo

none

// ==UserScript==
// @name         scratch extesion: thread vars by rssaromeo
// @version      2
// @description  none
// @run-at       document-start
// @tag          lib
// @author       rssaromeo
// @license      GPLv3
// @match        *://*/*
// @icon         data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABtQTFRFAAAAGO3KDodz//////7///3////9/v///f///qLt5wAAAAl0Uk5TAP//////////NwKb1AAAAblJREFUeJyVlUFOBTEIQMuPcWOMUzWuvYI38P4bvYEnMDRxZ76OBQqFTmu0mWma4RUKUwCSDdhsuZf+1VY5+YEHwO0POmAu74QC2TCVYACy19IQdACLaIKNpELIDKagKZHPaBMk2+sBnnmCpqDZV0CE2AASxjA1IVEQFIwEMiAKsou/GamvAPWJAGxI2wUQCwLoIQmgFVYgHNEDogKahQHQYxIQfAgA24AYhACwCggW/gvU9Q4xjAcgEVCf2x0nAIdagEwObfXMM6D5gfQOAIVaAPH09L4G2n1eA2wkpYvrCaApwU5FDfQ3/wLwVwVEsH2cS92JApxu9sKR8EHdHcCbG3D3tQY4bs+v6fQ9Aqm7OY4O+MQfAQv1EeiRhPtz/VkHGwbUZy/5qMMDKNQMqPYvr0iUD0C/UYvRgEnum4U0XPsDMObFHFgegjNrUYD0CLgCqJ7wYwXk6a2MQKsPoQTZePgsWoLmQPOh9DI496H8UkjFggJG2KXQtqC1Wo0Y0CqxVftkdxdN3tuB5XcFHl/UgGso/eZ3ByY9qxNoSqzrdSd057xvuqEpYK05z+Wr3t1/TO/+XodLsR+eZBUmoy42QAAAAABJRU5ErkJggg==
// @grant        none
// @namespace https://gf.qytechs.cn/users/1184528
// ==/UserScript==

;(async () => {
  await loadlib("libloader").waitforlib("scratchextesnsionmanager")
  const {
    newext,
    newmenu,
    newblock,
    bt,
    inp,
    gettarget,
    totype,
    scratch_math,
    projectid,
    canvas,
    scratchvar,
    scratchlist,
  } = loadlib("scratchextesnsionmanager")
  var vm
  loadlib("libloader")
    .waitforlib("scratch")
    .then(() => (vm = loadlib("scratch").vm))

  newext(
    "thread vars",
    "rssaromeo",
    class {
      settempvar({ varname, value }, { thread }) {
        thread.tempvars ??= {}
        thread.tempvars[varname] = value
      }
      gettempvar({ varname, _default = 1 }, { thread }) {
        thread.tempvars ??= {}
        if (varname in thread.tempvars)
          return thread.tempvars[varname]
        return _default
      }
    },
    [
      newblock(
        bt.cmd,
        "settempvar",
        "set temp var [varname] to [value]",
        [
          [inp.str, "temp var name"],
          [inp.str, "any data here"],
        ]
      ),
      newblock(
        bt.ret,
        "gettempvar",
        "get temp var [varname], default value: [_default]",
        [
          [inp.str, "temp var name"],
          [
            inp.str,
            "there was no var with that name created in this thread",
          ],
        ]
      ),
    ],
    "#17E6C3",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABtQTFRFAAAAGO3KDodz//////7///3////9/v///f///qLt5wAAAAl0Uk5TAP//////////NwKb1AAAAblJREFUeJyVlUFOBTEIQMuPcWOMUzWuvYI38P4bvYEnMDRxZ76OBQqFTmu0mWma4RUKUwCSDdhsuZf+1VY5+YEHwO0POmAu74QC2TCVYACy19IQdACLaIKNpELIDKagKZHPaBMk2+sBnnmCpqDZV0CE2AASxjA1IVEQFIwEMiAKsou/GamvAPWJAGxI2wUQCwLoIQmgFVYgHNEDogKahQHQYxIQfAgA24AYhACwCggW/gvU9Q4xjAcgEVCf2x0nAIdagEwObfXMM6D5gfQOAIVaAPH09L4G2n1eA2wkpYvrCaApwU5FDfQ3/wLwVwVEsH2cS92JApxu9sKR8EHdHcCbG3D3tQY4bs+v6fQ9Aqm7OY4O+MQfAQv1EeiRhPtz/VkHGwbUZy/5qMMDKNQMqPYvr0iUD0C/UYvRgEnum4U0XPsDMObFHFgegjNrUYD0CLgCqJ7wYwXk6a2MQKsPoQTZePgsWoLmQPOh9DI496H8UkjFggJG2KXQtqC1Wo0Y0CqxVftkdxdN3tuB5XcFHl/UgGso/eZ3ByY9qxNoSqzrdSd057xvuqEpYK05z+Wr3t1/TO/+XodLsR+eZBUmoy42QAAAAABJRU5ErkJggg=="
  )
})()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址