Emmanouil Papadeas
0145b9dede
[skip ci] Add more links to com.orama_interactive.Pixelorama.appdata.xml
2023-04-25 00:30:10 +03:00
Darshan Phaldesai
96d9327c8f
Update .desktop files and add MimeInfo ( #848 )
2023-04-24 13:50:56 +03:00
Emmanouil Papadeas
118e2e7671
Move set_nodes() logic to parent class ImageEffect
...
Also fixes a crash when trying to change the affected cels option in image effects that do not have animation options
2023-04-20 22:29:03 +03:00
Emmanouil Papadeas
0fe315d605
Remove separator from the image menu
...
Temporary, easy fix bug where assigning a shortcut to an image effect, actually assigned it to the one above.
2023-04-20 16:49:31 +03:00
Emmanouil Papadeas
91b1186d6f
Remove unneeded shader parameters
...
Also changed the parameter names in HSV to reduce some lines of code
2023-04-20 16:21:09 +03:00
Emmanouil Papadeas
483e7df52e
ValueSlider arrow buttons now respect snap_by_default
2023-04-20 16:11:16 +03:00
Emmanouil Papadeas
ec2dcae8f7
Add a Posterize image effect, with optional dithering
...
Seems to produce the same result as GIMP's Posterize color filter. Should be useful for reducing the colors of an image, and it could work together with 3D lighting. Thanks to https://godotshaders.com/shader/color-reduction-and-dither/ for the shader.
2023-04-20 16:08:06 +03:00
Emmanouil Papadeas
9607981567
Do not call CameraMovement._input() if the cursor is not on the canvas
...
Slight optimization, as only one camera can now receive input at a time.
2023-04-19 21:35:29 +03:00
Emmanouil Papadeas
1a9691052e
Only redraw the second canvas and canvas preview when necessary
...
Should optimize things ever further. Hopefully I didn't break anything.
2023-04-19 20:51:08 +03:00
Emmanouil Papadeas
0ffd34a4d6
Small optimization in CanvasPreview
...
On large canvases (like 4096x4096), simply moving the mouse around was laggy. It turns out that texture_to_draw = current_cels[i].image_texture was causing the lag, but I'm not sure why. It could be that texture_to_draw was a Texture and not an ImageTexture.
There is still some room for optimization, both the second canvas and canvas preview are being drawn on _input(), which is unnecessary.
2023-04-19 20:35:27 +03:00
Emmanouil Papadeas
72a7b277fb
Use a ValueSliderV2 in the gradient dialog, and reverse the radius logic
...
The larger the radius value, the larger the circle, as it should be
2023-04-19 03:44:28 +03:00
Emmanouil Papadeas
b1f355702e
Add camera FOV and size to the 3D layers
...
Orthogonal projection is now more usable
2023-04-18 21:04:13 +03:00
Emmanouil Papadeas
1187b0bc49
Load cleanEdge shader when the rotate image or scale image dialog is shown
...
This should save some time on initial loading, but it introduces a slight loading time when opening the scale or rotate dialog for the first time in a session
2023-04-18 20:08:00 +03:00
Emmanouil Papadeas
d04aa5ee56
Add snapping distance slider in the preferences
2023-04-18 17:20:13 +03:00
Emmanouil Papadeas
9d848c4f68
More ValueSliders in the Preferences
2023-04-18 17:03:51 +03:00
Emmanouil Papadeas
1325aaa13f
Use ValueSliderV2s for grid preferences
2023-04-18 16:38:55 +03:00
Emmanouil Papadeas
02aa91a394
Fix camera jitter when zooming in the canvas
2023-04-17 18:09:49 +03:00
Emmanouil Papadeas
1196fb5b0b
Use ValueSliders for the canvas zoom and rotation
...
Should also clean the code a little bit
2023-04-17 02:07:48 +03:00
Emmanouil Papadeas
5c8cf56f8f
Make snapping distance change based on the zoom
...
Should work similarly to GIMP now
2023-04-16 21:15:40 +03:00
Emmanouil Papadeas
9cf82e7f71
[skip ci] Update Translations.pot
2023-04-15 16:53:52 +03:00
Emmanouil Papadeas
23198a84aa
Small canvas preview UI changes and translation string additions
2023-04-15 13:46:42 +03:00
Chris Tsoychlakis
db29ec9f0f
fixed mirrored drawing ( #843 )
...
* fixed mirrored drawing
* fix mirrored drawing
2023-04-14 15:56:08 +03:00
Emmanouil Papadeas
0349dccf04
[skip ci] Some more translation strings
2023-04-13 19:07:47 +03:00
Variable
d40b9744ed
fix canvas preview only showing first layer ( #844 )
2023-04-12 13:24:19 +03:00
Emmanouil Papadeas
2bca2db27a
Add more licenses to the AboutDialog
2023-04-08 00:34:38 +03:00
Emmanouil Papadeas
6700a72e73
Sort contributors and donors in AboutDialog in alphabetical order
2023-04-07 03:01:02 +03:00
Emmanouil Papadeas
d68032fbda
Fix previous commit to only show the notification once
2023-04-07 02:16:52 +03:00
Emmanouil Papadeas
272ea63615
Only show the "File(s) exported" notification on successful export
2023-04-07 02:09:49 +03:00
Emmanouil Papadeas
7e0bd46235
[skip ci] Update CHANGELOG.md
2023-04-05 19:01:01 +03:00
Emmanouil Papadeas
60997723e2
Create a parent scene for the image effects
...
This helps with shared nodes, such as the preview, the affect selection, cels etc options, and the animation properties
2023-04-04 04:19:18 +03:00
Emmanouil Papadeas
b137762b1b
New Crowdin updates ( #829 )
...
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (German)
* New translations Translations.pot (German)
* New translations Translations.pot (Italian)
* New translations Translations.pot (French)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (French)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Danish)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Albanian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (French)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (French)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Danish)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Albanian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (French)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Danish)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Albanian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (French)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (French)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Danish)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Albanian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (German)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (French)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Belarusian)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Danish)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Albanian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (German)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (French)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Romanian)
2023-04-03 17:58:15 +03:00
Emmanouil Papadeas
8ce68700dd
3D object optimizations
2023-04-02 01:36:02 +03:00
Emmanouil Papadeas
4943ab5eab
Add pxo version to pxo files, starting from 2
...
Its value should increase every time there is a compatibility-breaking or a major change between previous pxo files, similar to extensionsAPI version.
2023-04-01 02:16:24 +03:00
Emmanouil Papadeas
91aea32864
Implement 3D layers ( #840 )
...
* Implement 3D layers
* Remove unneeded files
* Fix bug where a single hidden layer would ignore all of the layers on top when exporting
* Fix pxo loading
* Remove junk nodes from 3DShapeEdit
Seems like they were created when I copied from the old 3D Options.tscn panel to the new 3D Shape Edit tool.
* Make light gizmos half the size, and hide gizmos when rotating
* Fix crash when using the 3D shape edit tool on a group layer
* Remove unneeded code in Canvas.gd
* Add torus in the Cel3DObject.Type enumerator
Torus isn't currently supported in Godot 3.5, but it is in 3.6 and 4.0, so this is just future-proofing. May break compatibility with .pxo files that were exported with 3D layers before this change.
* Toggle 3D object visibility
* Change texts and some variable names
* Fill translation strings
* Fix crash on group blending, and make the code in Export.blend_layers() more general
* Fix errors when attempting to draw on a 3D cel
Can occur when multiple cels are selected, some of them 3D and some of them pixel
* Make scene properties and objects be per-cel instead of per-layer
Breaks compatibility with previous .pxo files that had 3D layers. Also introduces serialize() and deserialize() methods to BaseCel
* Use if not layer is get_script() in GroupLayer.blend_children()
* Flip the condition in GroupLayer.blend_children()
* Fix bug where locked/invisible layers could get drawn
Regression from c2f6bf0f3f
* Move gizmo code to 3DShapeEdit's draw_start(), move some undo/redo logic to 3DShapeEdit
* Move all of the undo/redo code to 3DShapeEdit, simplify code in Cel3D
* Store Cel3D image data to pxo, for easy usage by external software
This makes importing projects with 3D layers to other software, such as Godot using godot_pixelorama_importer easier.
* Make the linter happy
* Fix bug where the previously selected object would remain selected when it got removed with undo
2023-03-31 21:58:56 +03:00
Emmanouil Papadeas
5f290ae343
Change resize SpinBox to ValueSlider in ExportDialog
2023-03-30 18:20:55 +03:00
Emmanouil Papadeas
78fda42743
Remove unneeded lines in AnimationTimeline.gd
2023-03-29 15:24:30 +03:00
Emmanouil Papadeas
5c9f0d8c18
Fix bug where, if the bottom-most layer is invisible, selection can't transform content on other layers
2023-03-27 03:42:16 +03:00
Emmanouil Papadeas
6b587688f1
Fix bug where clicking on previous/next frame when only one frame exists makes the cel unselected
...
Apparently this bug exists at least since v0.10
2023-03-27 00:24:40 +03:00
Emmanouil Papadeas
2ce9f72c51
Use a ValueSliderV2 in the drop shadow dialog
2023-03-26 21:33:33 +03:00
Emmanouil Papadeas
4e9b4c33f7
Fix LayerButton drag and drop passing wrong parameter to BaseLayer.accepts_child()
...
It was passing the index of the layer as an integer instead of a BaseLayer class. Also made some code stylistic changes.
2023-03-25 18:42:50 +02:00
Variable
b384e706a9
Animate image effect properties ( #836 )
...
* Added auto animation system
* Animation to dialog
* Added Animated properties
* animate ranges
* formatting
* Fix missing commit
* Formatting
2023-03-25 16:59:02 +02:00
Emmanouil Papadeas
acf376865f
Fix crash when there is no pixel layer in the timeline, only a group layer
2023-03-24 17:37:40 +02:00
Emmanouil Papadeas
acb32844a1
Replace the Locked Aspect Ratio mode in the crop tool with a lock button next to the size sliders
2023-03-24 01:17:30 +02:00
Variable
2ad1391ca1
Spritesheet Animation Canvas Preview ( #835 )
...
* spritesheet preview
* formatting
2023-03-23 15:25:33 +02:00
Emmanouil Papadeas
4e7d5d34cf
Keep aspect ratio when resizing a selection with gizmos, if the button is pressed next to the ValueSliders
...
Also fixes a bug with the inconsistent behavior caused by resizing a selection with gizmos without pressing Shift, while the keep ratio button was pressed.
2023-03-21 16:36:25 +02:00
Emmanouil Papadeas
99b014ef7f
Fix segmentation fault when resizing canvas to a large size
...
For some reason, cel_texture.texture.get_data() seemed to cause a segmentation fault, and then a crash, when the image size was large. Also added some extra static typing to the drag and drop methods, but they are unrelated to the crash.
2023-03-21 02:06:57 +02:00
Emmanouil Papadeas
d4ebf9c585
Use Vector2s for min and max values in ValueSliderV2
...
This lets us have different min/max values for x and y.
2023-03-21 01:45:09 +02:00
Emmanouil Papadeas
a5496daa5b
Add a ValueSliderV2 to the Pencil's spacing options
2023-03-20 20:28:01 +02:00
Emmanouil Papadeas
05fa436b12
Disable ValueSliderV2's ratio button when set to not editable
...
And use a NinePatchRect for the ratio guides, for proper scaling.
2023-03-20 01:59:15 +02:00
Emmanouil Papadeas
e174f6e942
Add a new custom node, ValueSliderV2
...
ValueSliderV2 is a container for two ValueSliders and an optional lock ratio button, that helps with handling Vector2 values in the UI.
2023-03-20 00:56:43 +02:00