* Begin replacing the cells array with a dictionary
* Get rid of some old code and fix selections
* Fix selection tools
* Create Cells in the cells dictionary when resizing
* Initial work for offset
* Make the move tool change the tilemap offset
When draw tiles mode is active
* Fix drawing on negative tile coords
* Fixes in the bucket tool
* Bucket and magic wand should work properly now with offset
* Delete get_cell_index_at_coords_in_tilemap_space()
* Format
* Fix manual mode not working with offsets
* Fix draw tile preview offset snapping
* Ignore manual mode if draw tiles mode is active
* Remove unused parameter in apply_resizing_to_image()
* Offset fixes when using selection tools
Resizing not fixed yet
* Ignore selection when using the move tool and draw tiles mode is active
* Fix resizing selections with offset
* Rename "cells_dict" to "cells"
* Add some docstrings
* Fix pxo save/load
* Fix cells not being added when moving up or to the left
* Copy tilemap offset when copying frames and layers
* Fix frame/layer cloning breaking the tileset when the cloned cels are being edited
Added some missing translation strings I found and fixed a few broken or updated ones. Also added a colon to the string of a parameter in the editor, for the sake of consistency.
Note that due to limitations with the TextEdit node, horizontal alignment cannot be previewed until the text has been placed in the canvas. This will be fixed once https://github.com/godotengine/godot-proposals/issues/7352 is implemented.
Icons made by @Erevoid.
Not the most performance-friendly solution, but it works. If users encounter performance issues in the future, we should rewrite this, as it does the same for loop two times.
* When picking color, ensure that the correct index is selected
* if drawing over same color in index mode, check and update index as well
* revert an optimization (croping indices image before display)
* typo
* Create a custom PixeloramaImage class, initial support for indexed mode
* Convert opened projects and images to indexed mode
* Use shaders for RGB to Indexed conversion and vice versa
* Add `is_indexed` variable in PixeloramaImage
* Basic undo/redo support for indexed mode when drawing
* Make image effects respect indexed mode
* Move code from image effects to ShaderImageEffect instead
* Bucket tool works with indexed mode
* Move and selection tools works with indexed mode
* Brushes respect indexed mode
* Add color_mode variable and some helper methods in Project
Replace hard-coded cases of Image.FORMAT_RGBA8 with `Project.get_image_format()` just in case we want to add more formats in the future
* Add a helper new_empty_image() method to Project
* Set new images to indexed if the project is indexed
* Change color modes from the Image menu
* Fix open image to replace cel
* Load/save indices in pxo files
* Merging layers works with indexed mode
* Layer effects respect indexed mode
* Add an `other_image` parameter to `PixeloramaImage.add_data_to_dictionary()`
* Scale image works with indexed mode
* Resizing works with indexed mode
* Fix non-shader rotation not working with indexed mode
* Minor refactor of PixeloramaImage's set_pixelv_custom()
* Make the text tool work with indexed mode
* Remove print from PixeloramaImage
* Rename "PixeloramaImage" to "ImageExtended"
* Add docstrings in ImageExtended
* Set color mode from the create new image dialog
* Update Translations.pot
* Show the color mode in the project properties dialog
* Initial port of the text tool to Godot 4
* Change font (WIP)
* Add antialiasing option and remove some old unneeded lines
* Remove outline code
* Add horizontal alignment and update the text edit font size
* Improve the text edit
* Don't activate tools while typing
* Format
* Give input priority to the text edit so the key X and shortcuts such as control-z work in the text edit
* Add style settings for bold and italic
* Fix text going blank when changing font
* Use `font.draw_multiline_string()`
* Change the move behavior of the text tool, add confirm and cancel buttons
* Compress images on undo/redo
* Fix text position
Another memory leak remains in Recorder.gd, where the first project forever remains referenced in memory, until the user changes the project from the option button. Perhaps we should remove that option button completely and always record the current project, that also sounds like the intended behavior to me.
1) The bucket tool now picks colors from the top-most layer, like the rest of the drawing tools.
2) Using the tool while moving the cursor and also holding the color picker shortcut (Alt by default), now picks colors instead of using the bucket tool.
* Add share config button
* fill parameter now saves with curve tool
* rename _fill to _fill_inside for sync consistency (fill in pencil and shape tools basically represent the same thing)
* add icon
* Move the option to the preferences
* Add string to Translations.pot
* Re-introduce `is_syncing`
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
* ColorReplace Sdading Mode
* Fixed changing colors array by mistake
* the tool now takes more things into account
* Make it work with transparent colors (more consistent with aseprite), and improve ui a bit. This should be the last commit to this pr