Huh. It's not what the manual says, and I'm pretty sure it was right in the initial implementation of generic WHEN. This must be one of the myriad small changes I haven't caught up with.
where?
Really? It seems fine to me, when I use it... (Maybe it's just me, but I actually like the BYOB-style rings better than rightclick $$\to$$ unringify.)
thats interesting. personally I really dont like how dropping a ring onto a ring deletes a ring.
Sorry! Typo. However, since I posted I have created this:
Which works, assuming you have this somewhere:

They were fine for experts. The problem was that people who had no idea rings even existed got very confused. And also, I guess there's an accessibility issue for people who have trouble making very precise mouse movements.
Yeah, this is one of our "do what I mean" design decisions. Again, not good for experts, but I stand by this one as good for learners. I think it could be improved if the combined ring had the formal parameters of both combinees.
I now have a new version of the blocks (the stop square one no longer runs when the project is unpaused and the pause one no longer runs when the stop square is pressed, assuming that the project has a "when stop square clicked" block in it).
Yeah, on occasion I have lost parameter names in instances like this one - mildly annoying, but not fatal.
1:
the hats are now like this:
for hats that have an infinite forever loop.
(can the icon also be added here in the make a block dialog?)
2:
is there a way to combine the two scripts?
3:
sorry to be extremely, extremely annoying, but can you please change the size of the icons to 1.4? thats what it is in normal snap.
4:
also fun fact, apparently $greenflag (no camelCase) exists in snap's code and works! (but honestly you dont really need to use that)
Actually, it's not. The base scale for icons is 1, but by default, icons (in custom blocks) are set to 1.2, however the size of $greenflag, $turnRight and $turnLeft in the primitives are set to 1.5, not 1.4 (the pause icon on the pause all block is set to 1.0).
I've spent a long time looking into this for snapblocks
I was trying to say that the stopsquare makes the hat the right width (same as when flag clicked
in snap)
Oh, ok.
Edit: the square is the same width and height as the green flag, so it would still be a scale 1.5 instead.
I aldo just now noticed that the snapblocks flag icon is a little to wide (even though I set the width to the correct width.
$flag-1.5-0-200-0 \ $square-1.5-200-0-0 :: control
oh nvm youre right, it was a font issue.
Yeah, there is. My latest version is here (which works perfectly, aside from needing the "when stop square clicked" block somewhere in the project for the "when pause clicked" block not to fire when the stop square is clicked):
the infinity symbols have disappeared for some reason lol
working
not working
That's cause jens changed how custom hats work. There are rules, and events. Rules will have the infinity symbol, whereas events don't (you can make a hat a rule by right clicking it in the block editor).
I'm honestly not sure what the difference is though.
i'm going to test it right now
Looks like rules run infinitely while the condition is true, whereas events only run once, even if the condition is still true.
yeah, thats why the when <> happens ::control hat
block was removed from the events library. the when <>
block is no longer a rule, but now you can just do the same thing by doing this:
can this be added to the events library?
Yeah, you're right. I wasn't testing it right. Here is it fixed:
Don't forget to have the when stop square clicked block in the project. Also, this may stop working if the new "rule" technology is removed (I removed a test to check whether it had already fired to avoid clutter).
Also, I personally dislike that this is possible (this was more of a proof-of-concept) - a project is paused is paused is paused. Is it just a bug? I won't worry about getting into the design decisions you (the snap team) made, but I just want to make sure this is intentional.
no need, you can relabel the (new) generic When
"event" hat block into the old When
"rule" block through its context menu, and then you'll see the infinity "always" symbol again. Also in your existing projects any old "When" blocks will still have the old semantics (and display the "always" symbol).
The difference is roughly this: By default all hat blocks are "event" hats, they signal a state change the very moment their predicate changes from evaluating to false to evaluating to true. Afterwards, for as long as it remains true, they won't fire again, until it switches back to false.
"Rule" hats, on the other hand, are what the generic "When" hat block used to be (and at this time still is in production): Syntactic sugar for "forever .. if ...". A "rule" hat will repeatedly (always) fire its script whenever its predicate evaluates to true.
In practice you'll almost always want events instead of rules.