-
-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add Particle Engine extension :0 #1724
base: master
Are you sure you want to change the base?
Conversation
Peak!! |
Two questions I have:
|
yes |
WOW! a new particle engine with no clones! that's great for performance and now overflow your projects with clones! (even if i use clones, a lot) |
Additionally, blocks in the editor are all SVGs, which means you can't color them with any html property. You have do what I do and make SVG gradients or patterns. |
well, i just function add2Body() {
var svg = document.createElement("div");
svg.innerHTML = \`<svg><defs>
<linearGradient x1="100" y1="0" x2="100" y2="200" id="SPpartEngine-GRAD1" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0090ff"></stop><stop offset="50%" stop-color="#0000ff"></stop></linearGradient>
</defs></svg>`;
document.body.appendChild(svg);
}
if (Scratch.gui) Scratch.gui.getBlockly().then((SB) => {
add2Body();
if (!SB?.SPgradients?.patched) { // Gradient Patch by 0znzw & SharkPool
SB.SPgradients = {gradientUrls: {}, patched: false};
const BSP = SB.BlockSvg.prototype, BSPR = BSP.render;
BSP.render = function(...args) {
const res = BSPR.apply(this, args);
let category;
if (this?.svgPath_ && this?.category_ && (category = this.type.slice(0, this.type.indexOf("_"))) && SB.SPgradients.gradientUrls[category]) {
const urls = SB.SPgradients.gradientUrls[category];
if (urls) this.svgPath_.setAttribute("fill", urls[0]);
}
return res;
}
SB.SPgradients.patched = true;
}
SB.SPgradients.gradientUrls["SPpartEngine"] = ["url(#SPpartEngine-GRAD1)"];
}); |
I've already looked at the code, but I don't intend to use it for my extensions. Thank you anyway though. |
Interesting. I was just curious as to if we could change the scratch-gui repo to add some sort of functionality for gradients and CSS colors in the block color APIs, but I guess not - It didn't occur to me that the SVGs can't use CSS gradients. Maybe we could use this patch though, and manually inject the colors into the patch? IDK, it's just an idea. Probably won't be done though. What might be more possible is expanding the customizable block colors addon to allow for gradients. |
Theres now an interpolation option! :) |
Create Powerful Particle Engines with NO Clones
Screen.Recording.2024-10-15.at.12.31.42.AM.mov