- Added a layer selector
- Added a line tool
- Changed the fill tool to stop at blocking terrain, when filling with
something other than terrain
- Updated the rotate tool to respect the layer selector
- Updated the adjust tool to respect the layer selector
- Added support to the adjust tool for railroad tracks, ice, swivels,
force floors
- Restored the adjust tool's support for buttons, added a pressed-button
preview, and added support for blue buttons
- Added an ice tool, for drawing ice corners interactively
- Added a text tool, for writing longer text via letter tiles
- Added a thin walls tool
- Changed the wire tool to draw wires for more types of mouse movements,
so that any kind of scribble should produce a continuous wire;
individual clicks will also place a wire immediately
- Fixed a gigantic bug where, due to a typo, a new circuit was created
for every single wire segment. Oops!
- The wiring phase now has somewhat fewer intermediate parts.
- Power-generating tiles have an explicit update phase, rather than
updating in a method whose name starts with "get".
Anyway it's slightly faster than when I started and that's nice.
Only drawback is that circuit recalculation doesn't quite undo
correctly, but I think the effect is only visual.
If I can get rid of all of these, I can combine multiple undo entries,
and allow undoing backwards in time further (but more coarsely) with the
same memory usage.
This also introduces some actor pooling, which... reduces memory usage
very slightly on clone-heavy levels, but may not be worth it overall.
- Changes to tiles are now stored in a plain object rather than a Map,
which it turns out takes up a decent bit more space.
- Changes to a tile's type or cell no longer need additional closures to
perform the cell movement.
- Less impactful, but changes to level properties are now stored as a
diff, not as a full set every tic.
This fixes CCLP5 level 25 (and I think one or two others) by introducing
a new item, the dormant bomb, which turns into a regular bomb when
something moves off of it.
Other accumulated tileset touchups that snuck in:
- Recolored the canopy to hopefully look more like a tent
- Lightened slime by one shade
- Made the custom green floor colors clash less, and lightened the
yellow floor grout
- Removed the shadow from the pause stopwatch, and lightened the other
two, to better distinguish their different behavior
- Added little rivets to steel walls
- Made the symbols on the sokoban blocks easier to see
- Lightened the blue and red keys to match the shade of the other two,
and also hopefully make them easier to see atop water and thieves
- Shrank the railroad crossing sign slightly
- Added laces to the hiking boots
- Added shading to the bowling ball
- Removed the shadows from the actor versions of the bowling ball and
dynamite
- Darkened the dynamite item to better distinguish it from active
dynamite
- Lightened the blue teleporter exit so it doesn't look too much like an
inactive red teleporter
- Improved the gradient on the beetle
- Made the hint tile look recessed like CC2, to better convey that it
blocks some actors
- Added art for some possible tiles: rainbow teleporter, toll gate, nega
heart, phantom ring, feather
Tileset options now identify the tilesets by their appearance, rather
than the fairly useless "custom 1" or whatever.
At last you can draw a tile without creating a renderer. Truly this is
the future.
Tileset conversion is still incredibly jank, but it does a fairly decent
job (at least at LL -> CC2) without too much custom fiddling yet.