1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-12 08:43:08 +00:00
Commit graph

246 commits

Author SHA1 Message Date
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
Emmanouil Papadeas fede2d8e6f Fix undo/redo not working if the cursor is over the timeline 2024-11-22 02:56:57 +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 ce738f02c2 Don't change brush size when resizing the timeline cels and the palette swatches 2024-11-12 00:59:01 +02: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 dcd93b4366 Remove Global.open_sprites_dialog and Global.save_sprites_dialog. 2024-10-11 17:12:55 +03:00
Emmanouil Papadeas ed5449bb66 Use an enum for the loop types in the timeline
I should have done that years ago. Literally. I don't know what took so long.
2024-10-11 16:42:11 +03:00
Emmanouil Papadeas b9bf8290b0 Remove Global.animation_timer 2024-10-11 16:38:35 +03:00
Emmanouil Papadeas ffc98a4b7f Remove confusing text from the tooltips of the play animation buttons
Addresses #1114
2024-10-10 16:33:50 +03:00
Emmanouil Papadeas 2f24508dea Add a new Reset category in the Preferences 2024-10-09 21:20:17 +03:00
Emmanouil Papadeas b3021ceb67 Add a gaussian blur layer effect 2024-09-08 02:40:28 +03:00
Emmanouil Papadeas f162f12fbf Save the onion skinning opacity in the config file 2024-09-07 03:59:19 +03:00
Variable 167b0d863c
fix wrong stretch mode in cel preview (#1097) 2024-09-02 02:03:39 +03:00
alikin12 1460ba2e89
Set timeline layer and frame header to be fixed on top (#1095) 2024-09-01 02:30:36 +03:00
Variable a7f1486ec3
Index Map (#1093)
* Index Map

* Formatting

* improve description a bit.
2024-08-31 02:53:27 +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
alikin12 987366fa8f
Add global layer buttons (#1085) 2024-08-28 02:53:05 +03:00
Emmanouil Papadeas bdef545727 Fix issue when merging two layers, where if the bottom layer had layer/cel transparency, the transparency would be applied in the content destructively 2024-08-17 02:38: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 cfbe851da5 Add a convolution matrix layer effect
Still WIP, could use some extra parameters such as RGBA channel, and I should also implement it as an image effect.
2024-08-16 04:24:43 +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
Emmanouil Papadeas 1d5de2ed86 Implement the ability to move all selected cels on between different frames, but on the same layer
You currently cannot move multiple cels on different layers, they still act as swapping. Eventually I'd also like to implement moving cels between different layers, but they would also have to be on the same frame. I don't think moving cels between different layers and frames at the same time is possible.
2024-08-13 23:25:29 +03:00
Emmanouil Papadeas 1a99d524d1 Fix some buttons not being affected by the custom icon color on startup 2024-08-13 04:23:56 +03:00
Emmanouil Papadeas 8163015c02 Change blend modes of multiple selected layers from the timeline
And also add undo/redo when changing the blend mode from the layer properties dialog. Not sure why I had made their behaviors so inconsistent.
2024-08-13 00:53:37 +03:00
Emmanouil Papadeas 68be6ac106 Allow editing of non-pixel cel properties 2024-08-11 15:03:33 +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 c0c391674d [skip ci] Change instances of "yield" to "await" in comments 2024-08-02 00:42:14 +03:00
Emmanouil Papadeas 0ea0406233 Add an adjust brightness/contrast image effect
Thanks to https://godotshaders.com/shader/color-manipulator/

The shader has more options than just brightness and contrast though, but I didn't know how else to name the effect. "Adjust Brightness/Contrast" makes it immediately obvious as to what the effect is about.
2024-08-01 21:21:45 +03:00
Emmanouil Papadeas 95b5102394 Enable exclusive and disable popup_window flags of all the dialogs
Closes #1061, fixes issue where when Pixelorama's window loses focus, the dialogs disappeared, but the dialogs can no longer close when pressing outside of them.
2024-07-31 22:49:30 +03:00
Emmanouil Papadeas c2fc70e436 Fix bug when selecting multiple layers and their opacity changes immediately by the opacity slider 2024-07-30 21:25:15 +03:00
Variable 9ba556282a
Import Animation dialogue improvements (#1041)
* splash ambient

* change fill to radial

* make import tag work with frame button

* hide Import tag dialog when clicking outside

* Icon shows the first frame of a tag

* formatting
2024-07-30 20:22:22 +03:00
Emmanouil Papadeas 5eaf81aeae [skip ci] Add a Steam achievement for creating a 3D layer 2024-07-27 13:00:16 +03:00
nicejammer 9196995697
Fix certain strings not updating when language changes (#1043)
A few buttons and labels in Pixelorama weren't getting updated when changing languages, they'd just remain at the language the program started up with or only update when changing projects.

This fixes that and ensures they get updated as soon as the user changes languages.
2024-07-26 16:10:56 +03:00
Emmanouil Papadeas 96a1d2770d Call Global.dialog_open() on the tag properties popup 2024-07-23 22:27:29 +03:00
Emmanouil Papadeas 899fa521eb Fix crash when adding a new layer to a collapsed group layer 2024-07-23 17:58:19 +03:00
Emmanouil Papadeas aa2a2bdce8 Immediately disable the delete layer button when locking a layer 2024-06-03 20:41:48 +03:00
Emmanouil Papadeas 429d3469fd Fix issue with layers on the timeline having the wrong size on Greek 2024-06-01 18:29:38 +03:00
Emmanouil Papadeas e3ee931059 Move and resize tags by dragging their edges 2024-05-08 03:44:26 +03:00
Emmanouil Papadeas 5a64dde3e5 Remove frame tag button & make onion skinning settings into general timeline settings
The "Animation plays only on frames of the same tag" button has been moved to the general timeline settings, along with a new slider that resizes the cel buttons in the timeline.
2024-05-08 01:09:20 +03:00
Emmanouil Papadeas ecb1890024 Change AnimationTagUI to be a Control instead of a VBoxContainer 2024-05-07 23:20:15 +03:00
Emmanouil Papadeas 592260ef93 Minor tag code improvements 2024-05-07 17:38:45 +03:00
Emmanouil Papadeas 7b7da476b6 Various small translation-related fixes 2024-05-07 01:09:26 +03:00
Emmanouil Papadeas 002d5cae86 Add a "New Tag" option in the frame menu to easily create new tags 2024-05-06 20:50:12 +03:00
Emmanouil Papadeas c6e9b1621d Implement the ability to edit a tag by clicking on it from the timeline
Editing tags now is faster! Just click on it from the timeline to bring out the edit dialog.
2024-05-06 20:29:37 +03:00
Emmanouil Papadeas 02f85ade06 Make TagOptions its own scene 2024-05-06 20:13:09 +03:00
Emmanouil Papadeas d8704fdf5d Change tag color, text and size in AnimationTagUI.gd 2024-05-06 16:30:10 +03:00
Emmanouil Papadeas 6c002756c7 Move all selected layers with drag & drop
Similar to 7507206726 but for layers. Layer swapping (with control) only works when one layer is selected. The move up/down buttons in the timeline only work with one layer as of this commit.
2024-04-15 02:10:52 +03:00
Emmanouil Papadeas 4ddcf37d0b Fix crash when dropping frames to re-arrange them
Also don't allow dropping on a selected frame
2024-04-14 16:03:22 +03:00
Emmanouil Papadeas 0d375631b8 Better static typing in the timeline related methods in Project 2024-04-14 00:57:53 +03:00