Exsnaptions! : A custom block library. (1.21)

I'm just going to rewrite this post:

Exsnaptions is a custom block library, consisting of recordings and hidden variables. (The Control blocks don't really do much, and aren't the focus.)

The recording blocks help record things such as your position, if you are shown, or standard effects. @mr_owlssssnap2 made the original one. I hope to add variables to the mix of recordable values in the future.

The hidden variables are what the claim to be. I used dictionaries to store this data. (Being honest, I just added this because when making the recording blocks not rely on the database blocks)

The Library:

https://snap.berkeley.edu/embed?project=ExSnapTions!%201.21&user=bombmanyeeted&showTitle=true&showAuthor=true&editButton=true&pauseButton=true

This is very nice. Although your demo is about motion blocks, I think that's the least important potential use, because the built-in capability to remember a path as a vector picture kind of serves the same purpose. I'm wondering, for example, whether there's a good way to animate the construction of a database. You can imagine that what the user sees consists of changing values in some variable watchers.

I also like that this is a good example of serial collaboration, like the italic-font project I made a blog entry about.

EDIT: I only barely looked at the coding, but there are a bunch of huge expressions that look at first glance to be mostly the same, so the project would be more readable with subprocedures.

Nice project :slight_smile:

One little point - I think it's usually a good idea to use a library block rather than the primitive it calls

It makes the code look nicer and is usually more understandable

This is cool, but really laggy. I'm glad you took inspiration from my record movements block, though! Its cool how you get the option to choose which values you want to record!

honestly, when you learn what the primitives are, its really simple to understand. Plus nobody likes extra blocks being imported when you import a block

Primitive blocks were introduced to overcome the need to enable JavaScript in most projects.

By default, they are not exposed to Snappers and are deliberately hidden away to discourage their use.

The library blocks are the ones that most Snappers should be using.

Anyone can do anything they like of course, but the ugly primitives should not be exposed at the top level :slight_smile:

i personally would like them to be enabled by default, it would make them a lot easier to use tbh

I do! What I don't like is getting ugly red UNDEFINED blocks when loading a block library.

You know, you can hide the block to make it so users don't see it (right click a block definition, then uncheck "in palette")

Plus, I also like getting extra blocks when I import a block, because that means I can use the same function for another block without having to import the block. It's also a whole lot easier to understand what it does.

eh true

Anyways, I added new things to this, like hidden variables, so that I don't need to use the database blocks.

Im so confused...

uhhh about what part.

Nevermind...