Decker 1.71


Decker v1.71 is a maintenance release with several important bugfixes and small scripting enhancements.

Fixes (Web):

  • Removing prototypes from a deck now properly "deactivates" nested widgets.
  • Gracefully disable audio recording when Web-Decker is served over HTTP and thus not in a "secure context".

Fixes (Web and Native):

  • Corrected (unintended) pasting contraptions into prototypes; you'll now get a meaningful error message if you attempt to do so.
  • Fixed a number of subtle situations where it was possible for event dispatch into "deactivated" widgets (e.g. the parts of a contraption whose prototype has been removed from a deck) to cause crashes.
  • Cutting inline images from a rich text field now behaves consistently with copying them.
  • Corrected subtle differences in behavior between how Web- and Native-Decker handle attempting to decode malformed base64 "datablocks".

New Features:

  • Added a new module, qr, for generating QR codes. Large, high-capacity QR codes are a bit time-consuming to generate, but versions 1-3 can be generated in less than a frame-quota. This new module might be handy for things like decks that export printable zines or flyers:


  • The "loop[]" event is now called with a second optional boolean parameter which can be used to precisely distinguish between this event being triggered by a sound clip completing naturally and this event being triggered prematurely by, for example, navigating between cards.
  • As a convenience, Array interfaces now expose a ".value" attribute with the entire content of the Array as a primitive list of numbers (or a string, for a "char" cast).
  • The Bits interface now offers "bits.decode[]" and "bits.encode[]" for efficiently converting between numbers and their binary representation.
  • The "image.merge[]" and "canvas.merge[]" functions can now perform XOR compositing via the "^" operator.
  • Made some internal improvements which will avoid slowdown if a deck contains hundreds or thousands of modules. I don't expect this to be very common, but "data-modules" as seen in Hershey illustrate how this sort of thing might happen occasionally in the future.
  • Assigning to a KeyStore (either directly or via .value[]) now returns the assigned value instead of the keystore itself. This behavior is more consistent with assignment to attributes of other mutable interfaces and makes simple module mutators come out much more cleanly:


  • Minor reorganization and new examples for the Decker reference manual.
  • More secret fun.

Note: to simplify my release process and Decker's external dependencies, I will no longer be providing precompiled multiplatform "APE" binaries of Lilt, the command-line companion to Decker. If you're on BSD, Linux, or MacOS you can probably install Decker and Lilt via your package manager, and you can also easily build them from source. I've been told that Decker also compiles fine on Windows via WSL. Sorry for any inconvenience!

Elsewhere in the Deckerverse:

Swanchime's Decker VN Jam is running until the end of October, so there's still plenty of time to participate!

Did you know October 19th will be Decker's 4th birthday? Feels like it was only... oh, maybe 2 or 3 years ago?

Thank you to everyone in the Decker community; creative people like you are the reason this tool is worth building.

Files

Decker-1.71-mac-arm64.zip 6.1 MB
22 hours ago
Decker-1.71-mac-i386.zip 2.9 MB
22 hours ago
Decker-1.71-win.zip 2.7 MB
22 hours ago

Get Decker

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

(+2)

Happy almost-Birthday Decker!