From c7c05762ee96e172f305bef7ed79e92c3bc89f96 Mon Sep 17 00:00:00 2001 From: Randomuser12342 <156344537+Randomuser12342@users.noreply.github.com> Date: Sat, 24 Aug 2024 15:19:49 -0500 Subject: [PATCH 1/4] Create switches.js --- static/extensions/dogstudios55/switches.js | 215 +++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 static/extensions/dogstudios55/switches.js diff --git a/static/extensions/dogstudios55/switches.js b/static/extensions/dogstudios55/switches.js new file mode 100644 index 000000000..5cdbd6e83 --- /dev/null +++ b/static/extensions/dogstudios55/switches.js @@ -0,0 +1,215 @@ +/* + This extension was made with TurboBuilder! + https://turbobuilder-steel.vercel.app/ +*/ +(async function(Scratch) { + const variables = {}; + const blocks = []; + const menus = {}; + + + if (!Scratch.extensions.unsandboxed) { + alert("This extension needs to be unsandboxed to run!") + return + } + + function doSound(ab, cd, runtime) { + const audioEngine = runtime.audioEngine; + + const fetchAsArrayBufferWithTimeout = (url) => + new Promise((resolve, reject) => { + const xhr = new XMLHttpRequest(); + let timeout = setTimeout(() => { + xhr.abort(); + reject(new Error("Timed out")); + }, 5000); + xhr.onload = () => { + clearTimeout(timeout); + if (xhr.status === 200) { + resolve(xhr.response); + } else { + reject(new Error(`HTTP error ${xhr.status} while fetching ${url}`)); + } + }; + xhr.onerror = () => { + clearTimeout(timeout); + reject(new Error(`Failed to request ${url}`)); + }; + xhr.responseType = "arraybuffer"; + xhr.open("GET", url); + xhr.send(); + }); + + const soundPlayerCache = new Map(); + + const decodeSoundPlayer = async (url) => { + const cached = soundPlayerCache.get(url); + if (cached) { + if (cached.sound) { + return cached.sound; + } + throw cached.error; + } + + try { + const arrayBuffer = await fetchAsArrayBufferWithTimeout(url); + const soundPlayer = await audioEngine.decodeSoundPlayer({ + data: { + buffer: arrayBuffer, + }, + }); + soundPlayerCache.set(url, { + sound: soundPlayer, + error: null, + }); + return soundPlayer; + } catch (e) { + soundPlayerCache.set(url, { + sound: null, + error: e, + }); + throw e; + } + }; + + const playWithAudioEngine = async (url, target) => { + const soundBank = target.sprite.soundBank; + + let soundPlayer; + try { + const originalSoundPlayer = await decodeSoundPlayer(url); + soundPlayer = originalSoundPlayer.take(); + } catch (e) { + console.warn( + "Could not fetch audio; falling back to primitive approach", + e + ); + return false; + } + + soundBank.addSoundPlayer(soundPlayer); + await soundBank.playSound(target, soundPlayer.id); + + delete soundBank.soundPlayers[soundPlayer.id]; + soundBank.playerTargets.delete(soundPlayer.id); + soundBank.soundEffects.delete(soundPlayer.id); + + return true; + }; + + const playWithAudioElement = (url, target) => + new Promise((resolve, reject) => { + const mediaElement = new Audio(url); + + mediaElement.volume = target.volume / 100; + + mediaElement.onended = () => { + resolve(); + }; + mediaElement + .play() + .then(() => { + // Wait for onended + }) + .catch((err) => { + reject(err); + }); + }); + + const playSound = async (url, target) => { + try { + if (!(await Scratch.canFetch(url))) { + throw new Error(`Permission to fetch ${url} denied`); + } + + const success = await playWithAudioEngine(url, target); + if (!success) { + return await playWithAudioElement(url, target); + } + } catch (e) { + console.warn(`All attempts to play ${url} failed`, e); + } + }; + + playSound(ab, cd) + } + class Extension { + getInfo() { + return { + "id": "switches", + "name": "Switches", + "color1": "#ff0000", + "color2": "#b80000", + "blocks": blocks, + "menus": menus + } + } + } + setInterval(async () => { + if (Boolean((localStorage.getItem('isswitchon') === true))) { + Scratch.vm.runtime.startHats(`${Extension.prototype.getInfo().id}_switch`) + }; + }, (0.01 * 1000)); + + blocks.push({ + opcode: "switch", + blockType: Scratch.BlockType.EVENT, + text: "Switch", + arguments: {}, + disableMonitor: true, + isEdgeActivated: false + }); + Extension.prototype["switch"] = async (args, util) => {}; + + blocks.push({ + opcode: "callswitch", + blockType: Scratch.BlockType.COMMAND, + text: "Turn Switch [onoroff]", + arguments: { + "onoroff": { + type: Scratch.ArgumentType.STRING, + menu: 'powersettings' + }, + }, + disableMonitor: true, + isEdgeActivated: false + }); + Extension.prototype["callswitch"] = async (args, util) => { + if (Boolean((args["onoroff"] == 'OFF'))) { + localStorage.setItem('isswitchon', false) + + } else { + localStorage.setItem('isswitchon', true) + + }; + }; + + menus["powersettings"] = { + acceptReporters: true, + items: [...[...[], 'OFF'], 'ON'] + } + + blocks.push({ + opcode: "callswitch", + blockType: Scratch.BlockType.COMMAND, + text: "Call Button", + arguments: {}, + disableMonitor: true, + isEdgeActivated: false + }); + Extension.prototype["callswitch"] = async (args, util) => { + Scratch.vm.runtime.startHats(`${Extension.prototype.getInfo().id}_switchbutton`) + }; + + blocks.push({ + opcode: "switchbutton", + blockType: Scratch.BlockType.EVENT, + text: "Button", + arguments: {}, + disableMonitor: true, + isEdgeActivated: false + }); + Extension.prototype["switchbutton"] = async (args, util) => {}; + + Scratch.extensions.register(new Extension()); +})(Scratch); From 649a014083299591d082d6ae43b1bdd68886a734 Mon Sep 17 00:00:00 2001 From: Randomuser12342 <156344537+Randomuser12342@users.noreply.github.com> Date: Sat, 24 Aug 2024 15:35:56 -0500 Subject: [PATCH 2/4] Update switches.js --- static/extensions/dogstudios55/switches.js | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/static/extensions/dogstudios55/switches.js b/static/extensions/dogstudios55/switches.js index 5cdbd6e83..0fd2f97d8 100644 --- a/static/extensions/dogstudios55/switches.js +++ b/static/extensions/dogstudios55/switches.js @@ -146,7 +146,7 @@ } } setInterval(async () => { - if (Boolean((localStorage.getItem('isswitchon') === true))) { + if (Boolean((localStorage.getItem('isswitchon') == 'true'))) { Scratch.vm.runtime.startHats(`${Extension.prototype.getInfo().id}_switch`) }; }, (0.01 * 1000)); @@ -175,41 +175,41 @@ isEdgeActivated: false }); Extension.prototype["callswitch"] = async (args, util) => { - if (Boolean((args["onoroff"] == 'OFF'))) { - localStorage.setItem('isswitchon', false) + if (Boolean((args["onoroff"] == 'ON'))) { + localStorage.setItem('isswitchon', 'true') } else { - localStorage.setItem('isswitchon', true) + localStorage.setItem('isswitchon', 'false') }; }; menus["powersettings"] = { acceptReporters: true, - items: [...[...[], 'OFF'], 'ON'] + items: [...[...[], 'ON'], 'OFF'] } blocks.push({ - opcode: "callswitch", - blockType: Scratch.BlockType.COMMAND, - text: "Call Button", + opcode: "switchbutton", + blockType: Scratch.BlockType.EVENT, + text: "Button", arguments: {}, disableMonitor: true, isEdgeActivated: false }); - Extension.prototype["callswitch"] = async (args, util) => { - Scratch.vm.runtime.startHats(`${Extension.prototype.getInfo().id}_switchbutton`) - }; + Extension.prototype["switchbutton"] = async (args, util) => {}; blocks.push({ - opcode: "switchbutton", - blockType: Scratch.BlockType.EVENT, - text: "Button", + opcode: "callswitchbutton", + blockType: Scratch.BlockType.COMMAND, + text: "Call Button", arguments: {}, disableMonitor: true, isEdgeActivated: false }); - Extension.prototype["switchbutton"] = async (args, util) => {}; + Extension.prototype["callswitchbutton"] = async (args, util) => { + Scratch.vm.runtime.startHats(`${Extension.prototype.getInfo().id}_switchbutton`) + }; Scratch.extensions.register(new Extension()); })(Scratch); From b798ce6ebd40d64d9255db91993d801521ae5ae1 Mon Sep 17 00:00:00 2001 From: Randomuser12342 <156344537+Randomuser12342@users.noreply.github.com> Date: Sat, 24 Aug 2024 15:38:44 -0500 Subject: [PATCH 3/4] Update switches.js From 3f475670a6d9af3fac813fa881299afff55d773e Mon Sep 17 00:00:00 2001 From: Randomuser12342 <156344537+Randomuser12342@users.noreply.github.com> Date: Sat, 24 Aug 2024 16:00:34 -0500 Subject: [PATCH 4/4] Add files via upload --- static/extensions/dogstudios55/switches.png | Bin 0 -> 23979 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/extensions/dogstudios55/switches.png diff --git a/static/extensions/dogstudios55/switches.png b/static/extensions/dogstudios55/switches.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3b4e5cf0408d68c9f6d28092f67a5188ee371d GIT binary patch literal 23979 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 TW8(nH8Und!WNC;uxc=yW6bAx# literal 0 HcmV?d00001