When the user clicked on a layer container to change its name and then clicked away, the program crashed. This was because the name of the layer was changed (`Global.layers[i][0] = new_name`), and Global.layers_changed() was being called, which removed all of the layer container UI and re-created it.
This is unneeded to happen when only the layer name changes, so I added a boolean to skip the execution of the method.
Oddly enough, the crash was not happening on Windows (at least on my end) and it was working as expected. Godot's output terminal was not showing any error messages, either.
You can add tags by right clicking on a cel and selecting "Add Frame Tag". No tag modifying and deletion is implemented yet.
I'm using a different ScrollContainer for the tags, which gets updated everytime the main timeline ScrollContainer gets updated. I hide its sliders from its theme, wish there was a more straightforward way.
The onion skinning button replaces the old onion skinning area of the timeline, but there's no way right now to change the settings. This will be added in a future commit. More UI changes will soon follow.
An attempt to draw an isometric grid. It behaves oddly on non-square canvas sizes, and on some grid sizes. For this reason, I'm not sure if it will be implemented in v0.7.
To test it, set Global.grid_type = Global.Grid_Types.ISOMETRIC
Every button will have a texture based on its frame AND its layer. Which means, if the button is on layer 2 and frame 1, its texture will be the contents of frame 1's layer 2 contents.
Trying to merge layers into the timeline, and eventually add more features like "share layer with all frames", among others. THIS IS NOT FINISHED, IT WILL *NOT* WORK PROPERLY. Once it is finished, this branch will be merged onto master.
So far only add layer and add frame work, and even they may have some issues. Undoing also does not work properly yet.
The UI is also not finished, as it currently has problems with the scroll containers.
Instead of replacing the pixels with the new color's alpha value, the alpha values of the selected color and the current pixel color get blended together. This means that, if you have a pixel with 50% alpha and you draw a color over it with 25% alpha, the final result will have 75% alpha, instead of 25% as it used to be.
The pressure sensitivity is still experimental and may not work properly. Works only with Godot 3.2 and above.
draw_pixel() has also been renamed to draw_brush()
One bug was that rotxel was used at the end, no matter what algorithm was chosen.
The other was that rotxel was taking into account a image of width x width dimensions.