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

44 commits

Author SHA1 Message Date
Emmanouil Papadeas 1372d12a8f Fix ease type and interpolation not remembering their selected options 2023-07-04 13:58:20 +03:00
Emmanouil Papadeas eac7def5b4 Add allow greater and lesser to the image effect animatable property sliders 2023-07-03 22:51:52 +03:00
Emmanouil Papadeas 6dc07d0ca2 Rename get_animated_values to get_animated_value 2023-07-03 22:45:45 +03:00
Emmanouil Papadeas 605461e968 Add image effect animatable property translation strings 2023-07-03 22:26:31 +03:00
Variable ae56cae587
ImageEffect Animation 2.0 (#879)
* Better Animate System

* checkbutton to checkbox

* fixed value and saturation sliders being divided by 360 (when they should be divided by 100)

* minor code cleanup

* moved frame index code to ImageEffect.gd

* code cleanup

* more cleanup

* preview animation is now possible

* fixing things

* only hide when affect == FRAME

* formatting

* formatting

* formatting

* renamed Animate.png and a minor improvement

* removed unintentional changes
2023-07-01 00:01:14 +03:00
Emmanouil Papadeas 483e7df52e ValueSlider arrow buttons now respect snap_by_default 2023-04-20 16:11:16 +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 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 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 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
Emmanouil Papadeas 5ed91c6d8a Fix ValueSlider's text color from staying grayed out even if the slider is editable 2023-03-19 00:36:37 +02:00
Emmanouil Papadeas df00e43b84 Do not allow the ValueSlider's global shortcut to affect it if it's hidden 2023-03-18 14:29:11 +02:00
Variable f2f2f11661
Some improvements to the dynamics (#826)
* fix  dynamics

* removed empty line

* Added icon

* added check/uncheck icons

* make thresholds ui simpler

* Rename dynamics.png to lowercase and add MaxMinEdit class to project.godot

---------

Co-authored-by: Emmanouil Papadeas <manoschool@yahoo.gr>
2023-02-20 21:51:26 +02:00
Emmanouil Papadeas 6ae8d9afed Make the GradientEditor node expand horizontally 2023-02-03 02:02:13 +02:00
Emmanouil Papadeas a381e8a7de Fix ValueSlider's tint_progress not being reset after text has been confirmed 2023-02-01 02:12:09 +02:00
Emmanouil Papadeas 201992fa72 Add multi-color support for gradients, remove step gradients
Gradients are no longer limited to two colors, but can now instead have as many as we want, with each color having its own offset. Step gradients have now been removed; to generate the same effect, you can now generate a linear gradient with constant interpolation. Cubic interpolation in gradients is now also possible.

The dithering shaders were by far the biggest challenge and they had to be re-written in order for them to support multiple colors, with each one having a difference offset. I have noticed that some colors may disappear when Constant interpolation is used, though, so it can be buggy sometimes. Thanks to https://godotshaders.com/shader/dither-gradient-shader/ for the reference.

ValueSliders are now also used in the gradient window.
2023-01-27 04:23:48 +02:00
Emmanouil Papadeas 7001f3a28b Remove NotificationLabel.tscn, use class_name for notification labels 2023-01-15 17:08:42 +02:00
Emmanouil Papadeas 7dc0af21e7 Create ValueSlider and CollapsibleContainer child nodes through code
This lets us create ValueSlider and CollapsibleContainer nodes properly via the add node button, instead of instancing their scenes. They have also become more a bit more themeable. Eventually, ValueSlider.tscn and CollapsibleContainer.tscn will be deleted.
2023-01-13 05:19:35 +02:00
Emmanouil Papadeas cd12b1b1b3 Animate the collapsible container arrow when the button is clicked 2023-01-11 19:37:52 +02:00
Variable 449ee60d49
Folders rearrangement (#804)
* Moved Reference Images to it's Folder

* Moved the rest to their respective folders

* formatting

* Fix formatting

I removed the `PackedScene` static typing declaration to reduce the number of characters in the line to less than 100. It's not really needed anyway, as Godot should be able to figure out that it's a PackedScene, since it's a tscn file, simply by using `:=`.

* reverting some changes

* Removed some un-expected things

* Fixed TransparentChecker Code

* fix typo

* Revert it

I didn't realize it was intended

* Removed unneded changes

* removed some unexpected changes

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-01-05 17:54:22 +02:00
Emmanouil Papadeas ab35d324fd Silence editor errors coming from ValueSlider
The errors came as a result of 9828c483.
2022-12-17 00:45:54 +02:00
Emmanouil Papadeas 9828c4838e Change ValueSlider's text color
And use the previous color only when they're disabled.
2022-12-16 21:34:58 +02:00
Emmanouil Papadeas 60e58952a5 Use Control + Wheel to change shape thickness 2022-11-30 00:29:44 +02:00
Emmanouil Papadeas 4d113d37e5
Export dialog UX overhaul (#781)
* Remove animation tab from the export dialog, unify it with the first tab

* Tidy up the UI using GridContainers

* Make ExportDialog a ConfirmationDialog and clean some code

* Make project a parameter in export methods

This will be useful in the future for exporting multiple projects at once via terminal arguments

* Add a layers option in the export dialog

Currently only visible layers and selected layers, need to add specific layer selection and handle group blending properly.

* Align everything to the left

* Change "directory" into "folder"

* Make animation direction affect spritesheets and multiple png exporting

Besides just gifs and apngs

* Minor code re-organization

* Keep spritesheet options when changing tab

* Use the Unicode multiplication sign in the dimension label

* Specific layer exporting with group blending support

* Change file format cursor mode to pointing hand instead of forbidden

* Add a new custom CollapsibleContainer node and use it for advanced settings in the export dialog

* Change Popups node into Control so its children will automatically inherit the theme

* Add the TextureRect of the CollapsibleContainer in the UIButtons group

* Update ExportDialog.gd

* Disable "Create new folder for each frame tag" when gif/apng is selected, and hide it completely on the spritesheet tab

* Fix "Create new folder for each frame tag" being visible even if the CollapsibleContainer's button is not pressed

* Show layer path for each layer in the export dialog's "Layers" option

* Update translations

* Update strings
2022-11-28 21:22:29 +02:00
Emmanouil Papadeas 8732d366bf Use Control + Wheel to change brush size - implements #776
This is not editable in the shortcut settings and it is temporary way of doing this and it will change in Godot 4.x.
2022-11-10 17:36:09 +02:00
Emmanouil Papadeas ac3d2baf87 Image effect dialog UI changes
All of the elements now expand vertically, and the Cancel and OK buttons are now bigger, thus easier to click.
2022-10-25 02:16:36 +03:00
Emmanouil Papadeas ed76cc05e9 Echo support for the ValueSlider arrows
If you press and hold an arrow button, the value will keep changing until you release. Replicates SpinBox's behavior. We should be able to replace any SpinBox now without losing any functionality.
2022-10-14 17:22:05 +03:00
Emmanouil Papadeas c3d07312aa Add arrow buttons to the value slider
Their visibility is toggleable. They also currently do not support echo events, since for some reason Godot only supports them for InputEventKey(s). I suppose this feature could be replicated with a Timer. Once this is done, we can replace all SpinBox nodes.
2022-10-14 02:51:55 +03:00
Emmanouil Papadeas 8abbe0a1cb Use a ValueSlider in the window opacity dialog
More ValueSlider replacements coming next.
2022-10-03 14:43:08 +03:00
Emmanouil Papadeas f6de836fc7 Add setters for ValueSlider's prefix and suffix
This way we ensure the display is reset if the prefix or suffix changes.
2022-10-01 02:03:30 +03:00
Emmanouil Papadeas 9adf74392a Use notifications for theme and translation changes to update ValueSlider 2022-10-01 01:51:01 +03:00
Emmanouil Papadeas 52b3eae418 Allow for mouse wheel scrolling in ValueSlider 2022-10-01 00:14:54 +03:00
Emmanouil Papadeas 5664271b27 Allow disabling ValueSlider
Maybe we should make theme changes as well when it's disabled, but it's fine for now.
2022-09-30 12:08:44 +03:00
Emmanouil Papadeas 59bc9f022d Replace opacity sliders with the new ValueSlider 2022-09-30 01:03:38 +03:00
Emmanouil Papadeas 963f9d05a0 Make ValueSlider a tool so it can be previewed on editor 2022-09-30 00:54:44 +03:00
Emmanouil Papadeas 8148d03c1f Add a custom ValueSlider node made by @mrtripie
And bump version to v0.11-dev
2022-09-30 00:07:56 +03:00
Emmanouil Papadeas 56748da971 Update GradientEdit hint tooltip string 2022-09-17 00:25:43 +03:00
Emmanouil Papadeas c2f2473d77 Add a "Divide into equal parts" button in GradientEdit
This is meant for easy gradient bisecting, which is helpful for converting Linear/Cubic interpolated gradients into Constant.
2022-09-17 00:19:08 +03:00
Emmanouil Papadeas c66cac2fd8 Add an interpolation OptionButton to GradientEdit 2022-08-09 02:02:46 +03:00
Emmanouil Papadeas 7165f352b0 Make GradientEdit's color picker popup not get in the way of the preview 2022-08-04 17:14:43 +03:00
Emmanouil Papadeas c9f0301c79 Add a Gradient Map image effect, implements the second half of #595
The gradient edit code was taken and modified from Material Maker, MIT license.
2022-06-11 16:16:37 +03:00