Assetpack Builder for Wonderdraft
What does it do?
I use Wonderdraft to create maps for tabletop roleplaying games. At some point I wanted to create my own asset packs, but preparing the images was more work than I expected.

You have to crop the images, remove backgrounds, create the right folder structure, name everything correctly, and add the metadata Wonderdraft expects. Doing this by hand is possible, but it gets tedious very quickly.
That is why I made Assetpack Builder for Wonderdraft. (Not because it was easy, because I thought it whould be easy)
The tool can import normal images and sprite sheets. I can draw several crop areas on one image and extract them as individual sprites. I can then edit the sprites with erase, restore, pick-color, and transparency tools. There is also undo and redo, zooming, and controls for the pivot point and collision radius.
For each sprite I can set the name, filename, category, asset type, draw mode, radius, and offsets. The program then creates the Wonderdraft folder structure and can either export the asset pack or install it directly into Wonderdraft.
It also supports project files, drag-and-drop importing, dark and light themes, editable keyboard shortcuts, and tooltips. So it is not a general image editor. It is a tool for the annoying steps between having an image and having a usable Wonderdraft asset pack.
How did this happen?
The first version was much smaller. I wanted to load an image, select a part of it, and export that part.
Then I started using it and found more things that would be useful. I wanted to extract several sprites from one sheet. I wanted to edit transparency without opening another program. I wanted the crop regions and the extracted sprites to stay connected. I wanted to drag files onto the correct part of the window.
This is where the project became more complicated than expected.
There were problems with zooming, especially when zooming below 1.0. A slider and the canvas were changing the same value and sometimes fought each other. The mouse wheel would zoom out and then the slider would immediately put the old value back.
There were also problems with crop handles, mouse cursors, drag-and-drop areas, and image files that had the wrong file extension. One file claimed to be a PNG but contained invalid PNG data, so the loader had to be changed to look at the file contents when the extension could not be trusted.
A lot of the work consisted of testing something, finding that it only worked in some situations, and then trying to explain the exact situation in which it failed.
The honest version
I did not write this program.
I did not touch a single line of code.
ChatGPT created the source code, changed the files, fixed bugs, added features, wrote the documentation, and prepared the builds. I provided the idea, described what I wanted, tested the program, reported the problems, and kept asking for changes.
That sounds easier than it was. There were quite a few struggles. I had to provide screenshots and console output, describe small differences in mouse behaviour, and check whether a fix really solved the original problem or only moved it somewhere else.
It is a story about using ChatGPT sol. and it is very far. I could not learn rust in a day. but after a day worth of prompting I have this tool
The result is useful to me, and that is why I decided to publish it. But I also think it is important to say openly how it was made: I prompted the tool together, and ChatGPT wrote the code.


