1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 07:29:49 +00:00
Commit graph

22 commits

Author SHA1 Message Date
Emmanouil Papadeas 02d1900dc2 Make brush size in draw tools not affect the draw tiles mode
We could change it again if we implement it in a non-confusing way
2024-12-14 16:05:51 +02:00
Emmanouil Papadeas d41037d2df Fix tilemap manual editing mode not working with shape & text tools, and fixed issues with the pencil tool
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.
2024-12-06 18:06:23 +02:00
Emmanouil Papadeas b7c34f4233 Fix pencil/eraser/shading previews turning white for a brief moment when changing image brushes 2024-12-06 04:11:05 +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
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 36329efaf6 Add density to the square & circle brushes
00% density means that the brush gets completely drawn, anything less leaves gaps inside the brush, acting like a spray tool.
2024-11-14 01:02:51 +02:00
Emmanouil Papadeas ad77d98f42 Slightly optimize circle brushes by only calling the DrawingAlgos methods once while drawing
They keep getting called when size dynamics are enabled, however.
2024-11-13 02:55:15 +02:00
Emmanouil Papadeas 8beb79a33b Fix memory leak where the project remained referenced in BaseDraw even when its tab was closed
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.
2024-11-03 03:36:37 +02:00
Emmanouil Papadeas 4dc55e538e Fix issues when picking color with the bucket tool
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.
2024-10-17 02:34:27 +03:00
Variable 3863cbaee7
Add a preference to share options between tools (#1120)
* 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>
2024-10-16 16:00:20 +03:00
Variable 4561c1fee4
improved rotate/flip brush UI (#1105)
* Update BaseDraw.tscn

* Update BaseDraw.gd

* Implemented proposed changed, Also added a VFlowContainer for Rotate options
2024-10-14 16:08:10 +03:00
Emmanouil Papadeas b9bf8290b0 Remove Global.animation_timer 2024-10-11 16:38:35 +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 c6d24d458e Replace some Vector2s with Vector2is 2024-07-23 13:51:02 +03:00
Emmanouil Papadeas 64ced35bac Move the dynamics-related code into a new script
This also fixes the dynamics previews not working, as `_input()` is now handled locally in the dynamics popup panel.
2024-07-19 19:39:13 +03:00
Emmanouil Papadeas 79b18fc242 Fix brushes being able to get drawn outside of the selection, if the selection is outside the canvas 2024-04-13 14:31:48 +03:00
Emmanouil Papadeas 963819a71a Fix color picker selecting fully transparent pixels that are not black 2024-03-26 02:11:21 +02:00
RorotoSic 8bfd474613
Add flip X and Flip Y, and Rotation (90, 180, 270) buttons to BaseTool (#988)
* Add Flip X, Flip Y, Rotate 90, Rotate 180, Rotate 270

* node placement

* flip_rotate for BrushButton

* flip corrected for BrushButton (x, y was reversed)

* code changed for github static checks

* github static checks

* github static checks 2

* remove " _ " before my variable name

hope this was the problem

* var brush_texture_rotation

* Hide Flip/Rotate buttons where it is unnecessary

* btns flip/rotate  hide when a non-image brush is selected

* rotate ButtonGroup (radio btn)

* expand button for flip/rotate

* radio btn grp 2

* expand button (forgot to add the tscn )

* cursor shape to pointing hand

* tooltip R90 R180 R270

i dont add txt to the Translations.pot bc not sure to understand and dont want to make mistake

* shading.tscn  (nodes placement debreaking)

back as before

* Revert "expand button (forgot to add the tscn )"

This reverts commit 3062afe73f.

* Revert "expand button for flip/rotate"

This reverts commit 51189ac793.

* Collapsible Container

change "expend buton" to the pixelorama custum node "CollapsibleContainer"

* remove thick white outline when CollapseContainer is pressed and focus

* styleboxflat when CollapseContainer is pressed and empty for checkbox

* Revert "styleboxflat when CollapseContainer is pressed and empty for checkbox"

This reverts commit 0af0e1f427.

* StyleboxEmpty for normal /  keep hover unchanged

* Revert "StyleboxEmpty for normal /  keep hover unchanged"

This reverts commit 14b3745053.

* Revert "remove thick white outline when CollapseContainer is pressed and focus"

This reverts commit b80ab1ad5c.

* "flip_rotateD" + "Flat CollapsibleContainer'"

* conflicts Resolved

signal color_changed(color: Color, button: int)

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-03-23 16:39:44 +02:00
Emmanouil Papadeas 64983b0404 Some static typing improvements 2024-03-22 03:07:21 +02:00
Emmanouil Papadeas f56d536b36 Create a get_mirrored_positions() method in Tools
Reduces some code replication across tools
2024-02-13 02:31:48 +02:00
Variable 54604fa0af
Allow Internal extensions (#963)
* Moved tools to Extension

* removed accidental change

* code re-arrangement

* some improvements

* Restored tools and some improvements

* typo

* re-arranged tools

* formatting
2023-12-20 16:23:20 +02:00
Renamed from src/Tools/Draw.gd (Browse further)