From 3255338db8d602dfbde35fdfa3b1e3cfc580ffae Mon Sep 17 00:00:00 2001 From: Masaabu Date: Sat, 22 Jun 2024 23:00:39 +0900 Subject: [PATCH 1/4] stage-in-spritepane --- features/features.json | 5 ++++ features/stage-in-spritepane/data.json | 11 ++++++++ features/stage-in-spritepane/script.js | 5 ++++ features/stage-in-spritepane/style.css | 39 ++++++++++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 features/stage-in-spritepane/data.json create mode 100644 features/stage-in-spritepane/script.js create mode 100644 features/stage-in-spritepane/style.css diff --git a/features/features.json b/features/features.json index aa9089c7..2b6ee48a 100644 --- a/features/features.json +++ b/features/features.json @@ -1,4 +1,9 @@ [ + { + "version": 2, + "id": "stage-in-spritepane", + "versionAdded": "v3.9.0" + }, { "version": 2, "id": "sprite-layers", diff --git a/features/stage-in-spritepane/data.json b/features/stage-in-spritepane/data.json new file mode 100644 index 00000000..ab7084d1 --- /dev/null +++ b/features/stage-in-spritepane/data.json @@ -0,0 +1,11 @@ +{ + "title": "Stage In SpritePane", + "description": "Move the stage button into the sprite pane.", + "credits": [ + { "username": "Masaabu-YT", "url": "https://scratch.mit.edu/users/Masaabu-YT/" } + ], + "type": ["Editor"], + "tags": ["New", "Featured"], + "scripts": [{ "file": "script.js", "runOn": "/projects/*" }], + "styles": [{ "file": "style.css", "runOn": "/projects/*" }] +} \ No newline at end of file diff --git a/features/stage-in-spritepane/script.js b/features/stage-in-spritepane/script.js new file mode 100644 index 00000000..e4756647 --- /dev/null +++ b/features/stage-in-spritepane/script.js @@ -0,0 +1,5 @@ +export default async function ({ feature, console }) { + const stage = await ScratchTools.waitForElement("div.target-pane_stage-selector-wrapper_qekSW"); + stage.classList.add("ste-stage_in_spritepane"); + document.getElementsByClassName("sprite-info_sprite-info_3EyZh")[0].appendChild(stage); +} \ No newline at end of file diff --git a/features/stage-in-spritepane/style.css b/features/stage-in-spritepane/style.css new file mode 100644 index 00000000..ae5c219f --- /dev/null +++ b/features/stage-in-spritepane/style.css @@ -0,0 +1,39 @@ +.sprite-info_sprite-info_3EyZh { + height: auto; +} + +.ste-stage_in_spritepane .stage-selector_stage-selector_3oWOr { + margin-top: 8px; + display: flex; + flex-direction: initial; + border: 1.333px solid #00000026; + border-radius: 0.5rem; +} + +.ste-stage_in_spritepane .stage-selector_header_2GVr1 { + border: none; + background: none; + width: auto; + margin-right: 8px; +} + +.stage-selector_stage-selector_3oWOr.stage-selector_is-selected_2x2r_ .stage-selector_header_2GVr1 { + background: none; +} + +.ste-stage_in_spritepane .stage-selector_header_2GVr1 span { + color: #575e75; +} + +.ste-stage_in_spritepane .stage-selector_costume-canvas_2L_6h { + margin: 2px; +} + +.ste-stage_in_spritepane .stage-selector_label_1MCfr { + margin: 0; +} + +.ste-stage_in_spritepane .action-menu_menu-container_3a6da { + right: 0; + bottom: 7%; +} From d6d21dad4e58d0e03fac68da9df5b39e17bdfbcb Mon Sep 17 00:00:00 2001 From: Masaabu Date: Sat, 22 Jun 2024 23:02:37 +0900 Subject: [PATCH 2/4] update description --- features/stage-in-spritepane/data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/stage-in-spritepane/data.json b/features/stage-in-spritepane/data.json index ab7084d1..6d19577c 100644 --- a/features/stage-in-spritepane/data.json +++ b/features/stage-in-spritepane/data.json @@ -1,6 +1,6 @@ { "title": "Stage In SpritePane", - "description": "Move the stage button into the sprite pane.", + "description": "Move the stage button to the sprite pane to widen the sprite field.", "credits": [ { "username": "Masaabu-YT", "url": "https://scratch.mit.edu/users/Masaabu-YT/" } ], From af5bb6a9327d4a738e8c9c04c77bdddc5db342a4 Mon Sep 17 00:00:00 2001 From: MaterArc <105017592+MaterArc@users.noreply.github.com> Date: Sat, 22 Jun 2024 10:33:37 -0400 Subject: [PATCH 3/4] Spritepane --> Sprite Pane --- features/stage-in-spritepane/data.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/stage-in-spritepane/data.json b/features/stage-in-spritepane/data.json index 6d19577c..1ee111b2 100644 --- a/features/stage-in-spritepane/data.json +++ b/features/stage-in-spritepane/data.json @@ -1,5 +1,5 @@ { - "title": "Stage In SpritePane", + "title": "Stage In Sprite Pane", "description": "Move the stage button to the sprite pane to widen the sprite field.", "credits": [ { "username": "Masaabu-YT", "url": "https://scratch.mit.edu/users/Masaabu-YT/" } @@ -8,4 +8,4 @@ "tags": ["New", "Featured"], "scripts": [{ "file": "script.js", "runOn": "/projects/*" }], "styles": [{ "file": "style.css", "runOn": "/projects/*" }] -} \ No newline at end of file +} From 5458e40b7189e622c3d9abfc220b7639dd752128 Mon Sep 17 00:00:00 2001 From: rgantzos <86856959+rgantzos@users.noreply.github.com> Date: Sun, 23 Jun 2024 13:46:25 -0700 Subject: [PATCH 4/4] Few fixes --- features/stage-in-spritepane/data.json | 3 +- features/stage-in-spritepane/script.js | 37 ++++++++++++++++++++++--- features/stage-in-spritepane/style.css | 38 ++++++++++++++++++++------ 3 files changed, 65 insertions(+), 13 deletions(-) diff --git a/features/stage-in-spritepane/data.json b/features/stage-in-spritepane/data.json index 1ee111b2..7e2de202 100644 --- a/features/stage-in-spritepane/data.json +++ b/features/stage-in-spritepane/data.json @@ -7,5 +7,6 @@ "type": ["Editor"], "tags": ["New", "Featured"], "scripts": [{ "file": "script.js", "runOn": "/projects/*" }], - "styles": [{ "file": "style.css", "runOn": "/projects/*" }] + "styles": [{ "file": "style.css", "runOn": "/projects/*" }], + "dynamic": true } diff --git a/features/stage-in-spritepane/script.js b/features/stage-in-spritepane/script.js index e4756647..cd7f6611 100644 --- a/features/stage-in-spritepane/script.js +++ b/features/stage-in-spritepane/script.js @@ -1,5 +1,34 @@ export default async function ({ feature, console }) { - const stage = await ScratchTools.waitForElement("div.target-pane_stage-selector-wrapper_qekSW"); - stage.classList.add("ste-stage_in_spritepane"); - document.getElementsByClassName("sprite-info_sprite-info_3EyZh")[0].appendChild(stage); -} \ No newline at end of file + let activeStage; + ScratchTools.waitForElements( + "div[class*='target-pane_stage-selector-wrapper_']", + function (stage) { + activeStage = stage; + + if (!feature.self.enabled) return; + + stage.classList.add("ste-stage_in_spritepane"); + document + .querySelector("div[class^='sprite-info_sprite-info_']") + .appendChild(stage); + } + ); + + feature.addEventListener("disabled", function () { + if (activeStage) { + activeStage.classList.remove("ste-stage_in_spritepane"); + document + .querySelector("div[class^='target-pane_target-pane_']") + .appendChild(activeStage); + } + }); + + feature.addEventListener("enabled", function () { + if (activeStage) { + activeStage.classList.add("ste-stage_in_spritepane"); + document + .querySelector("div[class^='sprite-info_sprite-info_']") + .appendChild(activeStage); + } + }); +} diff --git a/features/stage-in-spritepane/style.css b/features/stage-in-spritepane/style.css index ae5c219f..f552d555 100644 --- a/features/stage-in-spritepane/style.css +++ b/features/stage-in-spritepane/style.css @@ -1,8 +1,8 @@ -.sprite-info_sprite-info_3EyZh { +[class*='sprite-info_sprite-info_'] { height: auto; } -.ste-stage_in_spritepane .stage-selector_stage-selector_3oWOr { +.ste-stage_in_spritepane [class*='stage-selector_stage-selector_'] { margin-top: 8px; display: flex; flex-direction: initial; @@ -10,30 +10,52 @@ border-radius: 0.5rem; } -.ste-stage_in_spritepane .stage-selector_header_2GVr1 { +.ste-stage_in_spritepane [class*='stage-selector_header_'] { border: none; background: none; width: auto; margin-right: 8px; } -.stage-selector_stage-selector_3oWOr.stage-selector_is-selected_2x2r_ .stage-selector_header_2GVr1 { +[class*='stage-selector_stage-selector_'][class*='stage-selector_is-selected_'] [class*='stage-selector_header_'] { background: none; } -.ste-stage_in_spritepane .stage-selector_header_2GVr1 span { +.ste-stage_in_spritepane [class*='stage-selector_header_'] span { color: #575e75; } -.ste-stage_in_spritepane .stage-selector_costume-canvas_2L_6h { +.ste-stage_in_spritepane [class*='stage-selector_costume-canvas_'] { margin: 2px; } -.ste-stage_in_spritepane .stage-selector_label_1MCfr { +.ste-stage_in_spritepane [class*='stage-selector_label_'] { margin: 0; } -.ste-stage_in_spritepane .action-menu_menu-container_3a6da { +.ste-stage_in_spritepane [class*='action-menu_menu-container_'] { right: 0; bottom: 7%; } + +div[class^='stage-selector_stage-selector_'] > div[class^='action-menu_menu-container_'] { + transform: scale(.8) rotate(-90deg); + margin-right: .3rem; +} + +div[class^='stage-selector_stage-selector_'] > div[class^='action-menu_menu-container_'] img { + transform: rotate(90deg); +} + +div[class^='stage-selector_stage-selector_'] > div[class^='action-menu_menu-container_'] div[class^='__react_component_tooltip'] { + display: none; +} + +div[class^='stage-selector_header-title_'] { + display: none; +} + +body div[class^='target-pane_stage-selector-wrapper_'] { + margin-left: 0px !important; + margin-right: 0px !important; +} \ No newline at end of file