I spent a lot of time on distractions recently, so I was a little surprised to find myself wanting to get back to working on that Godot game. The level under design is going okay: it took a few attempts to find the right way to start. Turns out writing down how you want the level to progress helps, like having three “acts” where the first act consists of some jumping puzzles, then introducing one of the gimmick, than a variant of said gimmick, and so on.
Anyway, I’m working on the second “act” which will feature a low-power mechanic: there’s only so many units of power to energise the various zones, and the player needs to juggle it all to get through the act. Because power is involved, I wanted to have a generator sprite to provide some decoration. This is what I came up with:

It’s… fine. I did try to get some inspiration by uploaded the tile-set to Google Gemini and asked it to produce something that resembled a generator:
Using the tile set images uploaded, please provide some suggested designs for a tile-set representing an electric generator. The suggestion must match the style and colour scheme of the supplied image.
This helped, although what I have here is a fair bit different to what was generated. I may adjust the colours a bit (the simple colours are by design as I want to maintain the palette used by the existing tile-set) and I may need to add some wire decorations and maybe a sign that says “Generator” to make it clear that’s what it is, and that it’s not a cannon, as the alt-text generation suggests. We’ll see how it goes, I guess.
One other thing I found myself wanting to add is water that can be raised and lowered when activated. I came up with something from first principals that looks a little like this (the tile layer is hidden to show the Area2D shapes):

It consists of is a top-level Node2D which will raise and lower when triggered. This is done in code, just to allow me to configure the speed and displacement on a case-by-base basis. A child of that is a TileMapLayer containing the water tiles. It’s at Z-index 6, which is just in front of the player so that it looks like it engulfs them if they fall in. Four units below the top is the kill-plane — water is a hazard — and four units below that is the “bobbing” plane. This is a Node2D that simply oscillates up and down by 2 units every second. A child of that is an Area2D solid with allows the player to move through, but will collide with a new crate sprite, which also collides with everything else.
This has the effect of a water plane in which creates would appear buoyant yet slightly submerged, giving the player somewhere to stand. Activating the water layer will allow it to “drain,” bringing the crates down to rest on any solids. Activate it again and the water level will rise, catching any crates which will begin floating:
There’s probably better ways to do this, and there are some drawbacks. It can’t be bundled into a dedicated scene, so each instance will need to be built manually. And if more than one crate is in the scene, they will bob in unison (although that could probably be alleviated with splitting the bobbing plane into areas with distinct offsets). But for something devised from first principals, I’m quite happy with it.