1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-13 09:13:07 +00:00
Commit graph

321 commits

Author SHA1 Message Date
Emmanouil Papadeas ca5c6d811e Resize indices on project resize 2024-11-29 19:12:44 +02:00
Emmanouil Papadeas 33b76d334f Save and load to/from pxo files 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 491b706475 Prevent from setting tile indices out of bounds of the canvas 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas eb9599976a Place tiles mode works with eraser and color picker tools 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 1755879047 Undo/redo now removes tiles and re-indexes tilemap tiles 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 349abccf2a Implement placing tiles for pencil tool
Still needs undo support
2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 46122c4793 Tileset panel UI improvements 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 9a1f802a26 Properly update the tileset when using any tool 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas f881186b31 Improve tileset panel UI updating logic 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas a170a0fc95 Prevent from drawing on empty image portions on manual mode. 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas d182c08cf8 Make the manual mode work, kind of 2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 516d339f41 Properly implement the auto tile editing mode
Should work well now.
2024-11-29 19:12:43 +02:00
Emmanouil Papadeas 67d4eb67c1 Don't delete tiles that have been added using the stack mode 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 8f46338d50 Change tile editing mode from the UI 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 4340f69821 Make manual mode work when the tileset is empty 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas c45fdbd3ef Improve tileset editing logic 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 63e1e88f66 Support ImageExtended 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas f61103cac3 Add a tileset panel
Code is a bit meh, needs to be written better.
2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 7ffc6c05a6 Add tilemap layers 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 68eea6e141 Implement all draw modes (untested) 2024-11-29 19:11:22 +02:00
Emmanouil Papadeas 3db12ddf03 Initial work for tilemap layers 2024-11-29 19:11:22 +02:00
Variable 31981a1def
Added a way to see index of color (plus bugfixes) (#1143)
* add a way to see indices

* fix some things

* Fixed more than one swatch selected if there is the same color available in an earlier swatch

* fixed wrong index drawn when moved to an smpty swatch

* make active_button public

* fixed wrong color getting stored in   array (similar fix to #1108.)

* If the color selected in the palette is the same then it should take prioity.

* formatting

* hide 0 index
2024-11-29 19:10:02 +02:00
Emmanouil Papadeas 01b55aca07 Fix crash when using indexed mode without a palette 2024-11-23 14:17:41 +02:00
Emmanouil Papadeas b87a8e2ab8 Fix cel copying not working with indexed mode 2024-11-22 21:00:38 +02:00
Emmanouil Papadeas e6c4a72158 Fix crash when using indexed mode and the palette has empty swatches between colors 2024-11-22 20:47:38 +02:00
Emmanouil Papadeas bd7d3b19cc Add a crop_image boolean parameter to Palette.convert_to_image()
Fixes some issues with the Palettize effect where the output would be different if the palette size changed and empty swatches were added, even if the colors themselves stayed the same.
2024-11-22 17:56:39 +02:00
Emmanouil Papadeas d0ecf3b03d Center diagonal symmetry guides when initializing a new project
The guides appear centered, but the symmetry itself is not working properly yet
2024-11-21 16:33:19 +02:00
Emmanouil Papadeas 3d65e48c92 Add backend for diagonal mirror buttons
The buttons are not yet visible
2024-11-21 12:48:52 +02:00
Emmanouil Papadeas aa1731b701 Initial work on diagonal symmetry guides
Still no buttons yet, and they cannot be moved yet.
2024-11-21 04:00:40 +02:00
Emmanouil Papadeas 558140b309 Add partial logic for diagonal mirroring
Still WIP, no buttons and guides exposed yet.
2024-11-21 03:25:41 +02:00
Emmanouil Papadeas 2d28136449
Implement indexed mode (#1136)
* 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
2024-11-20 14:41:37 +02:00
Emmanouil Papadeas 0d6b140dea Add border selection, fix some missing translation strings 2024-11-15 01:41:44 +02:00
Emmanouil Papadeas dec698024c Implement selection expanding and shrinking via the Select menu 2024-11-14 17:59:53 +02:00
Emmanouil Papadeas b0b1361722 Fix layer effect slider values being rounded to the nearest integer 2024-11-12 00:47:53 +02:00
Emmanouil Papadeas ec17e970e0 The Recorder panel now automatically records for the current project
Making its behavior more intuitive and consistent with the other panels. This also allows for multiple projects to be recorder at the same time, something that was not previous before. Changing projects now also changes the UI accordingly, depending on whether the current project is being recorded or not.

This change also fixes a memory leak, where either the first ever project or the last recorded one, stayed forever referenced in memory by the `project` variable.

Also fixed an issue where the recorder's settings size label was not showing the correct project size.
2024-11-03 18:54:08 +02:00
Emmanouil Papadeas dd8d217dc3 Changes in formatting due to gdtoolkit's new update
https://github.com/Scony/godot-gdscript-toolkit/releases/tag/4.3.2
2024-10-22 15:54:59 +03:00
Emmanouil Papadeas e2b54f70f7 Bump pxo file version to 4 to fix blend mode compatibility with older pxo files
The addition of the erase blend mode from #1117 resulted in loading pxo files from v1.0-v1.0.3 to have incorrect blend modes in their layers, if they are set to anything below normal, because the values of the `BaseLayer.BlendModes` enumerator changed.
2024-10-22 15:39:30 +03:00
Variable c21e089e58
Add alpha erase blend mode (#1117)
* Add alpha erase blend mode

* implemented suggestions
2024-10-13 01:57:10 +03:00
Emmanouil Papadeas 1ed52903b3 Implement the ability to change the font of a 3D text
This code will also be useful for the text tool
2024-10-12 16:30:16 +03:00
Emmanouil Papadeas 9fcb06aa72 Add a 3D text line spacing option 2024-10-12 14:31:15 +03:00
Emmanouil Papadeas bbf0ae8040 Add a 3D text depth option 2024-10-12 01:14:37 +03:00
Emmanouil Papadeas dcd93b4366 Remove Global.open_sprites_dialog and Global.save_sprites_dialog. 2024-10-11 17:12:55 +03:00
Emmanouil Papadeas 9824aef893 Attempt to fix the preview of the move tool not being aligned to the pixel grid 2024-09-19 00:38:46 +03:00
Emmanouil Papadeas a5efb97d58 Set the group layer's default blend mode to Pass through
Mostly for performance reasons, but also to make it consistent with Photoshop and Photopea
2024-09-10 02:03:07 +03:00
Emmanouil Papadeas b3021ceb67 Add a gaussian blur layer effect 2024-09-08 02:40:28 +03:00
Variable 4a7f7cbde5
Added a way to modify shader textures (#1096)
* experimental support for texture changes

* fix some typos

* formatting + some improvements

* Some final touches, i think it's ready now

* moved a function to the shaderloader

* formatting

* add a void
2024-09-03 03:38:56 +03:00
Variable a7f1486ec3
Index Map (#1093)
* Index Map

* Formatting

* improve description a bit.
2024-08-31 02:53:27 +03:00
Emmanouil Papadeas d531e9ace8 Create a new ShaderLoader class to move some code away from Global 2024-08-16 18:43:25 +03:00
Emmanouil Papadeas b0aabe4e8a Add a preference to change max undo steps 2024-08-16 14:28:54 +03:00
Emmanouil Papadeas 077c57c53a
Implement support for group layer blending (#1077)
* Blend group layers on `DrawingAlgos.blend_layers()`

* Support group layer blending on the canvas

* Allow editing of group layer properties

* Fix issues with group layer blending in canvas, and unite common code

* Group layers can now be used as clipping masks

* Make move tool preview work on child layers

* Change OffsetImage's `blend_layers()` to support group layer blending

* Support group layer blending in the canvas preview

* Fix layer blending mode, clipping mask opacity and cel opacity not being updated automatically if the layer/cel changed is not selected

* Add a pass through blending mode to layer groups

Fingers crossed that no bugs were introduced

* Fix issue with layers that belong to pass through groups not updating their textures on the canvas automatically on undo
2024-08-15 15:52:55 +03:00