From 1188e292e8afc49e83bf76c6006951d36e33b450 Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:37:14 +0100 Subject: [PATCH 1/6] Add subscription message to subscribe.txt --- static/images/AeroHutch/subscribe.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 static/images/AeroHutch/subscribe.txt diff --git a/static/images/AeroHutch/subscribe.txt b/static/images/AeroHutch/subscribe.txt new file mode 100644 index 00000000..47def476 --- /dev/null +++ b/static/images/AeroHutch/subscribe.txt @@ -0,0 +1 @@ +Subscribe to AeroHutch please! From f1cf9356f49d6ec91dc26c162f33129974131aca Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:41:54 +0100 Subject: [PATCH 2/6] Add files via upload --- static/images/AeroHutch/New Project (22).png | Bin 0 -> 32603 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/images/AeroHutch/New Project (22).png diff --git a/static/images/AeroHutch/New Project (22).png b/static/images/AeroHutch/New Project (22).png new file mode 100644 index 0000000000000000000000000000000000000000..485041782281f3d5380278c2fb3920bd7460e0d9 GIT binary patch literal 32603 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

-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 literal 0 HcmV?d00001 From ef24733ccfa81c160cb5614655f77ce9cfd98436 Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:42:57 +0100 Subject: [PATCH 3/6] Rename New Project (22).png to date-to-hex.png --- .../{New Project (22).png => date-to-hex.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename static/images/AeroHutch/{New Project (22).png => date-to-hex.png} (100%) diff --git a/static/images/AeroHutch/New Project (22).png b/static/images/AeroHutch/date-to-hex.png similarity index 100% rename from static/images/AeroHutch/New Project (22).png rename to static/images/AeroHutch/date-to-hex.png From 9563f8ceb35b9c448d9738951e01ea20629ee89a Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:43:12 +0100 Subject: [PATCH 4/6] Delete static/images/AeroHutch/subscribe.txt --- static/images/AeroHutch/subscribe.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 static/images/AeroHutch/subscribe.txt diff --git a/static/images/AeroHutch/subscribe.txt b/static/images/AeroHutch/subscribe.txt deleted file mode 100644 index 47def476..00000000 --- a/static/images/AeroHutch/subscribe.txt +++ /dev/null @@ -1 +0,0 @@ -Subscribe to AeroHutch please! From 36f57acc8e8c32956d5a77f84e8b0b9d7500e395 Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:49:17 +0100 Subject: [PATCH 5/6] Add 'Date to Hex' extension details --- src/lib/extensions.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib/extensions.js b/src/lib/extensions.js index e3b79b35..9a12c42f 100644 --- a/src/lib/extensions.js +++ b/src/lib/extensions.js @@ -5,6 +5,13 @@ pleas dont remove them :) */ export default [ + { + name: "Date to Hex", + description: "Blocks to change a date to hex and vice versa.", + code: "AeroHutch/date-to-hex.js", + banner: "AeroHutch/date-to-hex.png", + creator: "AeroHutch", + }, { name: "Pen+", description: "Extended pen section! Adds blocks for drawing triangles using textures and tints, drawing images and editing their pixels, etc.", From 521941e912de8e856671c1728ad69a11ec104bb5 Mon Sep 17 00:00:00 2001 From: MarrtyFDGU Date: Fri, 2 Jan 2026 14:54:08 +0100 Subject: [PATCH 6/6] Add HexDatePlugin for date and hex conversions --- static/extensions/AeroHutch/date-to-hex.js | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 static/extensions/AeroHutch/date-to-hex.js diff --git a/static/extensions/AeroHutch/date-to-hex.js b/static/extensions/AeroHutch/date-to-hex.js new file mode 100644 index 00000000..cde330b6 --- /dev/null +++ b/static/extensions/AeroHutch/date-to-hex.js @@ -0,0 +1,73 @@ +(function(Scratch) { + 'use strict'; + + class HexDatePlugin { + getInfo() { + return { + id: 'hexDate', + name: 'Date to Hex', + blocks: [ + { + opcode: 'dateToHex', + blockType: Scratch.BlockType.REPORTER, + text: 'convert date [DATE] to hex bytes', + arguments: { + DATE: { + type: Scratch.ArgumentType.STRING, + defaultValue: "2024-01-01" + } + } + }, + { + opcode: 'hexToDate', + blockType: Scratch.BlockType.REPORTER, + text: 'convert hex [HEX] to date string', + arguments: { + HEX: { + type: Scratch.ArgumentType.STRING, + defaultValue: "0000018CD05D2000" + } + } + } + ] + }; + } + + dateToHex(args) { + const date = new Date(args.DATE); + const timestamp = date.getTime(); + + if (isNaN(timestamp)) return "Invalid Date"; + + // Create an 8-byte buffer + const buffer = new ArrayBuffer(8); + const view = new DataView(buffer); + + // Write as Big-Endian 64-bit integer + // Note: BigInt is used because JS numbers lose precision above 53 bits + view.setBigUint64(0, BigInt(timestamp), false); + + // Convert buffer to Hex string + return Array.from(new Uint8Array(buffer)) + .map(b => b.toString(16).padStart(2, '0')) + .join('') + .toUpperCase(); + } + + hexToDate(args) { + try { + const hex = args.HEX.replace(/\s/g, ''); + const bytes = new Uint8Array(hex.match(/.{1,2}/g).map(byte => parseInt(byte, 16))); + const view = new DataView(bytes.buffer); + + // Read as Big-Endian 64-bit integer + const timestamp = Number(view.getBigUint64(0, false)); + return new Date(timestamp).toString(); + } catch (e) { + return "Invalid Hex"; + } + } + } + + Scratch.extensions.register(new HexDatePlugin()); +})(Scratch);