1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-03-15 15:55:18 +00:00
Commit graph

282 commits

Author SHA1 Message Date
Emmanouil Papadeas
42aa60a817 Control + T to quickly select the used area of a cel 2025-02-22 00:13:37 +02:00
Emmanouil Papadeas
892b993b9e Fix tilesets being re-ordered when being moved, resized or deleted by selections 2025-02-19 00:10:22 +02:00
Emmanouil Papadeas
69b3f30854 Hide the rotation gizmo again
Unfortunately I couldn't make it work well, and v1.1 is about to be in beta. I will continue working on it for a future version.
2025-02-11 17:54:33 +02:00
Emmanouil Papadeas
ead7593e7e Fix bug where the mouse cursor does not reset to default when hovering over a selection gizmo, and the selection gets cleared 2025-02-01 19:24:47 +02:00
Emmanouil Papadeas
87b9df8049 Fix group layers blending twice in Canvas.update_texture() when their blend mode is set to passthrough
This solves a part of #1166
2025-01-29 16:45:33 +02:00
Emmanouil Papadeas
f5cb425f86 Add a "Paste from Clipboard" edit menu option
Eventually, if Godot adds copying images into clipboard, we can replace Pixelorama's custom clipboard logic and just copy and paste to/from the operating system's clipboard.
2025-01-28 19:14:56 +02:00
Emmanouil Papadeas
a8c41312f8 [Experimental] Expose selection rotation gizmo
It's not working perfectly yet so it's possible it may get unexposed in the stable version if many issues are found, especially if it causes regressions to selection moving & resizing. Needs testing.
2025-01-21 03:40:43 +02:00
Emmanouil Papadeas
9b94b71dbc [skip ci] Minor improvement to selection rotation
Not exposed to users yet
2025-01-20 17:35:58 +02:00
Emmanouil Papadeas
e40d507a6a Add a transform method to DrawingAlgos
Can be used as a general method to apply rotation and skewing. It does not handle scaling though, and I am not sure if it should.
2025-01-20 01:08:31 +02:00
Emmanouil Papadeas
3022963b84 Fix pasting not being snapped to grid when draw tiles mode is enabled 2024-12-09 00:17:43 +02:00
Emmanouil Papadeas
1ea80a342a Fix some unintentional behaviors with tilemap layer tile editing modes 2024-12-06 04:03:57 +02:00
Emmanouil Papadeas
f91bb18fb2
Implement tilemap layers (#1146) 2024-12-05 03:57:44 +02:00
Variable
ff5713ae91
When picking color, ensure that the correct index is selected in palette (#1144)
* 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
2024-12-02 19:44:52 +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
Variable
6224d06428
Allow multiple Grids (#1122)
* Allow upto 10 grids

* Fixed more stuff

* fixed a bug

* formatting

* removed some left over stuff

* linting

* formatting and a bugfix
2024-11-25 15:57:13 +02:00
Emmanouil Papadeas
0484b1012f Fix Delete button and fill selection mode of the bucket tool not working with indexed mode 2024-11-23 00:58:34 +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
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
e10b0d1b08 Fix crash when opening the tile mode offsets dialog 2024-11-15 17:59:25 +02:00
Emmanouil Papadeas
4c7d7da5e7 Fix regression where pressing Enter or Control would not confirm/cancel selection when a selection tool wasn't active 2024-11-14 01:39:41 +02:00
Emmanouil Papadeas
e2971a8fe9 Add UI buttons for confirming and cancelling a transformation
Needed especially for users without a keyboard.
2024-10-31 23:49:58 +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
dddcfed3c4 Add a new "CanvasRulers" node group for the canvas rulers 2024-10-11 16:31:18 +03:00
Emmanouil Papadeas
b79ce0ae15 Add a new "CanvasCameras" node group for the canvas cameras 2024-10-11 14:44:21 +03:00
Emmanouil Papadeas
fc695a038e Remove Global.canvas from the canvas' children 2024-10-11 14:08:43 +03:00
Emmanouil Papadeas
55325a38a4 Use a Vector2i in Selection.gd when pasting 2024-10-10 15:29:36 +03:00
Emmanouil Papadeas
8802e3ab41 Slightly improve camera zoom and pan touch gestures
Not quite there yet
2024-10-10 15:29:12 +03:00
Emmanouil Papadeas
abcf6f5ec6 Remove unneeded Global.current_project in SymmetryGuide 2024-10-10 15:28:46 +03:00
OverloadedOrama
dbe48a4681 Fix issue where sometimes the camera zoom was not being preserved when switching between projects 2024-09-24 11:59:18 +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
Donte
4fa8981590
Add onion skinning opacity adjustment (#1091)
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-08-30 22:58:28 +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
kleonc
92d7bbf539
Fix isometric grid calculations using ints instead of floats (#1069) 2024-08-09 15:33:45 +03:00
Emmanouil Papadeas
fbe2952346 Make shape previews look like they did in v1.0
The AutoInvertColors shader has been updated to make shapes hollow, similar to how the marching ants outline works.
2024-08-04 22:12:57 +03:00
Emmanouil Papadeas
a3d7725a44 Fix popups appearing in wrong places when single window mode is disabled 2024-08-03 22:36:05 +03:00
Emmanouil Papadeas
1ad4c2357f In the Canvas scene, make Previews and PreviewsSprite nodes share the same material 2024-08-02 00:03:45 +03:00
Emmanouil Papadeas
9c7effdba3 Optimize previews of the ellipse selection and the shape tools
Before this commit, when these tools were being used on large areas, the software would start being very slow due to the polyline drawing. Now it simply draws an image.
TODO:
- Optimize the lasso, pixel and polygon select tools
- Mirror the previews of ellipse selection and shape tools, for consistency with the lasso, pixel and polygon select tools
- Perhaps somehow remove Previews.gd since its work is even more limited now.
2024-07-31 18:05:22 +03:00
Emmanouil Papadeas
c6d24d458e Replace some Vector2s with Vector2is 2024-07-23 13:51:02 +03:00
Emmanouil Papadeas
3ea0ef0b5a Make the size of the text of rulers and guides be affected by the font size 2024-07-15 00:31:52 +03:00
Emmanouil Papadeas
bcbd0ea7da Fix crash when the theme has no default font, by using Godot's fallback font instead 2024-07-14 16:08:18 +03:00
Emmanouil Papadeas
5d06af39b2 Fix rulers being incorrect at the start 2024-07-14 16:02:16 +03:00
Emmanouil Papadeas
b4384f4085 When using the canvas, release focus of other GUI elements of the application 2024-07-13 20:38:29 +03:00
Emmanouil Papadeas
d685177918 Restore diagonal movement of selections with arrow keys 2024-07-13 20:38:04 +03:00
Emmanouil Papadeas
f79ae7e333 Fix canvas not updating when switching between projects that have the same size and amount of cels
Also fixes issue with tile mode not being updated properly when switching project
2024-06-07 14:49:08 +03:00
Emmanouil Papadeas
72a2c59986 Fix codespell errors 2024-05-25 00:41:57 +03:00
Emmanouil Papadeas
8414f3deaf Fix integer camera zoom going smaller than 100% 2024-05-05 18:14:17 +03:00
Emmanouil Papadeas
9a1464f73b Move selection offset code inside SelectionMap.is_pixel_selected() 2024-04-13 17:57:51 +03:00
Emmanouil Papadeas
1e83173697 Fix regression where interecting selections was not working 2024-04-13 15:34:36 +03:00