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

167 commits

Author SHA1 Message Date
Emmanouil Papadeas f91b55672a Add icons for the text tool's options, and make horizontal alignment work
Note that due to limitations with the TextEdit node, horizontal alignment cannot be previewed until the text has been placed in the canvas. This will be fixed once https://github.com/godotengine/godot-proposals/issues/7352 is implemented.

Icons made by @Erevoid.
2025-01-22 03:51:07 +02:00
Emmanouil Papadeas ddf704c336 Implement the ability to save gradient presets
Needs a way to delete them as well
2025-01-18 18:49:23 +02:00
Emmanouil Papadeas 5cfc22a3ad Improve GradientEdit's UI and add reverse and evenly distribute points options 2025-01-15 19:22:41 +02:00
Emmanouil Papadeas 18e9e2ec56
Implement audio layers (#1149)
* Initial work on audio layers

* Load ogg audio files

* Fix playback position

* Support mp3 files

* Play audio at the appropriate position when the animation runs, and stop when the pause button is pressed

* Change audio cel textures for the cels where audio is playing

* Fix audio not playing at the appropriate position

* Don't play audio is layer is invisible

* Set the audio layer names to be the imported audio file names

* Import audio from videos

* Export videos with audio

Only works with mp3 for now

* Remove support for ogg audio files as they cannot be saved

At least until I find a way to save them. Wav files will be supported with Godot 4.4

* Fix adding/removing in-between frames breaking the visual indication of audio cels

* Minor code improvements

* Export audio in videos with custom delay

* Support frame delay

* Change the frame where the audio plays at

* Fix crashes when the audio layer has no track

* Remove unneeded cel properties for audio cels

* Pxo loading/saving

* Load audio files from the audio layer properties

* Change the audio driver to Dummy from the Preferences for performance reasons

* Clone audio layers, disable layer merge and FX buttons when an audio layer is selected

* Easily change the playback frame of an audio layer from the right click menu of cel buttons

* Update Translations.pot

* Some code improvements and documentation

* Stop audio from playing when looping, and the audio does not play at the first frame

* Update audio cel buttons when changing the audio of the layer

* Mute audio layer when hiding it mid-play

* Only plays the portion of the sound that corresponds to the specific frame so maybe we should do that as well

When the animation is not running. If it is running, play the sound properly.

* Some code changes to allow for potential negative frames placement for audio

This woud allow audio to be placed in negative frames, which essentially means that audio would start before the first frame. This is not yet supported, however, because I don't know how to make it work with FFMPEG.
2024-12-14 00:30:04 +02:00
Variable 6100bdc8df
QOL improvements to the tileset panel (#1148)
* Added a background to swatches

* Improved UI for tilemap editor

* Implemented requested changes
2024-12-13 21:30:03 +02:00
Emmanouil Papadeas f91bb18fb2
Implement tilemap layers (#1146) 2024-12-05 03:57:44 +02:00
Variable fe6efb0f1d
fixed recorder label not updating when project is changed (#1139) 2024-11-24 14:37:02 +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 428e5edb8f
Add a text tool (#1134)
* Initial port of the text tool to Godot 4

* Change font (WIP)

* Add antialiasing option and remove some old unneeded lines

* Remove outline code

* Add horizontal alignment and update the text edit font size

* Improve the text edit

* Don't activate tools while typing

* Format

* Give input priority to the text edit so the key X and shortcuts such as control-z work in the text edit

* Add style settings for bold and italic

* Fix text going blank when changing font

* Use `font.draw_multiline_string()`

* Change the move behavior of the text tool, add confirm and cancel buttons

* Compress images on undo/redo

* Fix text position
2024-11-19 01:20:34 +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 be7d45205e Remove Roboto-Italic
Pixelorama now takes ~100KB less space
2024-10-12 15:36:46 +03:00
Emmanouil Papadeas ae4b5046ed Implement support for floating windows 2024-10-11 12:13:13 +03:00
Emmanouil Papadeas 743a80e154 Update to Godot 4.3 2024-08-16 13:40:24 +03:00
imgbot[bot] 21a474d30d
[ImgBot] Optimize images (#1042)
*Total -- 154.83kb -> 90.50kb (41.55%)

/assets/graphics/splash_screen/artworks/nighters.png -- 4.28kb -> 2.08kb (51.54%)
/assets/graphics/splash.png -- 14.43kb -> 7.08kb (50.91%)
/assets/graphics/icons/icon.png -- 1.00kb -> 0.49kb (50.88%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0005.png -- 4.24kb -> 2.16kb (48.99%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0006.png -- 4.23kb -> 2.17kb (48.69%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0007.png -- 4.33kb -> 2.23kb (48.34%)
/assets/graphics/splash_screen/artworks/kalpar.png -- 14.26kb -> 7.38kb (48.28%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0009.png -- 4.18kb -> 2.17kb (48.09%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0008.png -- 4.28kb -> 2.22kb (48.09%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0004.png -- 4.17kb -> 2.17kb (47.95%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0003.png -- 4.19kb -> 2.18kb (47.9%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0010.png -- 4.00kb -> 2.10kb (47.52%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0013.png -- 4.17kb -> 2.20kb (47.27%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0002.png -- 4.28kb -> 2.27kb (47.04%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0001.png -- 4.29kb -> 2.28kb (46.96%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0011.png -- 3.96kb -> 2.10kb (46.87%)
/assets/graphics/splash_screen/artworks/roroto/roroto_0012.png -- 3.99kb -> 2.12kb (46.85%)
/assets/graphics/icons/android_main_icon.png -- 0.75kb -> 0.43kb (43.19%)
/assets/graphics/splash_screen/artworks/wishdream.png -- 26.76kb -> 17.06kb (36.27%)
/assets/graphics/splash_screen/artworks/uch.png -- 31.38kb -> 20.45kb (34.84%)
/assets/graphics/misc/value_arrow_right.svg -- 0.63kb -> 0.50kb (20.46%)
/assets/graphics/misc/animate.png -- 0.94kb -> 0.75kb (20.23%)
/addons/dockable_container/icon.svg -- 0.96kb -> 0.82kb (14.71%)
/assets/graphics/misc/value_arrow_up.svg -- 0.42kb -> 0.42kb (1.38%)
/assets/graphics/misc/move_up_arrow.svg -- 0.42kb -> 0.42kb (1.38%)
/assets/graphics/gizmos/omni_light.svg -- 0.30kb -> 0.30kb (0.98%)
/addons/keychain/assets/shortcut.svg -- 0.37kb -> 0.37kb (0.79%)
/assets/graphics/gizmos/spot_light.svg -- 0.38kb -> 0.38kb (0.77%)
/addons/keychain/assets/add.svg -- 0.15kb -> 0.14kb (0.67%)
/assets/graphics/misc/close.svg -- 0.18kb -> 0.18kb (0.53%)
/addons/keychain/assets/edit.svg -- 0.19kb -> 0.19kb (0.51%)
/addons/keychain/assets/folder.svg -- 0.22kb -> 0.22kb (0.44%)
/addons/keychain/assets/mouse.svg -- 0.23kb -> 0.23kb (0.43%)
/addons/keychain/assets/close.svg -- 0.28kb -> 0.28kb (0.35%)
/assets/graphics/misc/external_link.svg -- 0.28kb -> 0.28kb (0.35%)
/assets/graphics/misc/heart.svg -- 0.31kb -> 0.31kb (0.31%)
/addons/keychain/assets/keyboard_physical.svg -- 0.45kb -> 0.45kb (0.22%)
/addons/keychain/assets/keyboard.svg -- 0.94kb -> 0.94kb (0.1%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2024-07-26 17:01:04 +03:00
Emmanouil Papadeas cec0073a84 Make the draggable area for resizing popup windows a bit larger 2024-07-24 00:39:04 +03:00
Emmanouil Papadeas f8a4346c3d Add a 48x48px version of the icon to icon.ico 2024-07-22 04:35:44 +03:00
Emmanouil Papadeas b8af094529 Add the 1.0 splash screen artworks 2024-07-21 03:23:25 +03:00
Emmanouil Papadeas 7a13e4c3eb Refactor SplashDialog.gd to make a class for the artworks, update the version text in the splash screen 2024-06-29 20:41:56 +03:00
Emmanouil Papadeas dc3fd6ac17 Remove custom CheckBox icons for caramel, light, purple and rose themes 2024-06-14 19:26:00 +03:00
Emmanouil Papadeas 9611bf7263 Update the icons of the curve and 3D shape edit tools 2024-05-30 00:13:04 +03:00
Emmanouil Papadeas 653c905bcc Update clipping_mask.png 2024-05-23 02:57:11 +03:00
Variable 601c25f2dd
Curve tool implementation (#1019)
* curve tool

* formatting

* formatting

* saving my progress

* update to kirita mode

* Formatting

* fixes for mirror mode

* added way to remove point, added tool shortcut

* Add translation strings

* Use Curve2D instead of a control_points array

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-05-20 03:46:40 +03:00
Emmanouil Papadeas 7cc820fcf4 Change the accent color of the dark theme to a lighter gray 2024-05-17 02:11:17 +03:00
Kiisu_Master 2e5f2e22c1
Return relationship lines to Tree theme (#1018) 2024-05-10 15:43:14 +03:00
Emmanouil Papadeas fe54f943e9 Change the color picker panel's expand button to be bigger and have text 2024-05-08 16:32:51 +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 a3a77d5b93 Update Default.tres 2024-04-29 15:14:10 +03:00
Emmanouil Papadeas 9a30f2fe85 Use a proper boot splash image instead of a single color 2024-04-29 03:11:00 +03:00
Emmanouil Papadeas 1586d438d8 Update the icon 2024-04-29 03:00:20 +03:00
Emmanouil Papadeas c1b78e4c01 Implement basic clipping masks
A very simple implementation, not as complex as something like #768 yet, but it can be done in the future.

The main current limitation is that it doesn't work with group layers as of right now.
2024-03-14 01:08:57 +02:00
Emmanouil Papadeas dc9ba6dd9c Implement alpha lock as a global tool option 2024-03-09 02:47:13 +02:00
Variable 909f38bd0c
Further Reference UI Improvements (#974)
* references UI refactor

* changed select icon

* fixed a bug
2024-02-14 19:53:35 +02:00
Emmanouil Papadeas 8448dbd4ba Various theme improvements 2024-02-10 15:11:53 +02:00
OverloadedOrama d8d05c73de Add a new Rose theme, made changes to the other themes
Made by @Erevoid
2024-02-08 22:30:14 +02:00
OverloadedOrama ba565afe06 Some dark, gray and blue theme changes 2024-02-08 21:20:08 +02:00
OverloadedOrama 12036364b5 Timeline UI improvements, better visual indication of the cels that are selected and the cels that are linked 2024-02-08 20:46:07 +02:00
Emmanouil Papadeas ee7750dd40 Make button hover styleboxes have halved alpha 2024-02-08 18:01:37 +02:00
Emmanouil Papadeas 3d9ce4cb73 Fix button focus stylebox not being different from the other states in the themes 2024-02-03 18:11:09 +02:00
Emmanouil Papadeas 534a7fd356 Change the selected UI layout every time it changes
This way, Pixelorama remembers the changes users make to the UI, without them having to go to Window, Manage Layouts and clicking on Edit, which was an unintuitive and slow way. Needs testing because bugs may linger.

This commit also adds a new `save_on_change` variable and a `save` method on layout.gd of the dockable_container plugin. Perhaps I should also add this upstream as well.

I also need to add a way to create new layouts based off the default ones (which are permanently stored within Pixelorama's pck file and cannot be modified), so users will always have the option to resort to the default layouts.
2024-02-02 02:31:29 +02:00
Emmanouil Papadeas ed072de84e Change the layouts array in TopMenuContainer to only contain DockableLayouts instead of being an array of arrays 2024-02-01 22:10:18 +02:00
Emmanouil Papadeas 72bec41e63 Add icons to some Help menu items, add a new "Support Pixelorama's Development" item and remove "Donate" from the About dialog 2024-01-10 00:30:27 +02:00
TheLsbt c8f37943d8
Reference Image Improvements (#961)
* Reference Image Updates

* Fixed static typing

Fixed static typing in "src\UI
\ReferenceImages\ReferenceEditPanel.gd"
Changed "ri == null" to "!ri" in "src\UI\Canvas\ReferenceImages.gd"

* Tried fixing the static typing again

Removed lambda functions for the confirmation dialog.
Removed irrelevant print statement.

* Tried fixing static typing again

I think its fixed now

* Changed Spacing

* Fixed Trailing Whitespaces and tabs

* Fixed Final Trailing Whitespace

* Fixed styling and removed useless enum

* Removed double tabs left over from previous commit

* Fixed remove ConfirmDialog Showing on startusp

* Tried Fixing gdlint issues

* Fixed Linting

* Fixed Spelling issues

* Drag and drop to rearrange reference images

Added the ability to drag and drop Reference Images similar to dragging and dropping layers. These can be dragged or used with buttons (similar to the buttons that move frames). With full undo/redo support.

Added tool buttons these should help people who draw on tablets that cannot use keyboard shortcuts (icons still need to be created)

Renamed ReferenceEditPanel.gd to ReferenceEdit.gd (because it is no longer the script of a panel) and changed the base class of the Reference Panel.

Added some more translations.

Remade ReferenceImageButton.tscn to allow for drag and drop

Added drag highlight

* Added Icons

Added icons for the tools of the Reference Images

* Applied the icons to the UI

* Fix Scripting Issues

* Fixed Linting

* Rename Move.png to move.png

* Update Canvas.gd

* Updated the tooltips

Also added the correct translations

* Rename Select.png to select.png

* Rename Select.png.import to select.png.import

* Rename Move.png.import to move.png.import

* Rename Rotate.png to rotate.png

* Rename Rotate.png.import to rotate.png.import

* Fixed import files

* Rename Scale.png to scale.png

* Rename Scale.png.import to scale.png.import

* Added logic to update the reference panel when the project changes

Also fixed visual bugs related to highlighting the current reference image.

Made it so the reference image that was selected in a project get selected again when the project opens instead of going back to -1 (nothing)

* Update Project.gd
2023-12-31 14:12:37 +02:00
Emmanouil Papadeas 06b405dae8 Implements palette sorting 2023-12-23 19:00:24 +02:00
Emmanouil Papadeas e4f7995b08 Update all themes 2023-12-07 03:45:13 +02:00
Emmanouil Papadeas 0a57690099 Change the unpressed textures for checkbox & radio buttons to be like they used to in Godot 3.x 2023-12-07 00:21:39 +02:00
Emmanouil Papadeas acbfb82793 Update the dark theme to fix CheckButtons & CheckBoxes 2023-12-06 22:30:42 +02:00
Emmanouil Papadeas dc06e3aa06 Change dark theme colors and remove unneeded items 2023-12-06 20:34:50 +02:00
Emmanouil Papadeas f801b5bc07 Minor UI improvements
Replaced the "FX" text with a texture in the timeline's FX button, added left and right margins in the DockableContainer
2023-12-06 17:34:03 +02:00
Emmanouil Papadeas 9a85de74b5
Make the color picker be always visible in the UI instead of a popup (#953)
* Initial work of a color picker that is always visible

* Make the new color picker fully functional

* Minor UI fixes

* Change the UI a bit so the color picker buttons look like they used to

To save horizontal space

* Add sliders as a separate panel and rename some file names

* Move the left/right color buttons next to the hex text edit

* Add color picker sliders to the same panel as the rest of the color picker, as an expandable/collapsible area

* Change default layout

* Some minor UI improvements

* Remove guides from ColorPicker.tscn

* Reduce the lines of code that calculate the average color

* Make Pixelorama remember if the color picker is expanded and its color mode

* Update tallscreen.tres

* Update tallscreen.tres

* Pixelorama now also remembers the last used picker shape

* Add some extra comments in the code

* Fix typo

* Add some translation strings
2023-12-05 00:10:42 +02:00
Emmanouil Papadeas 08b03ae0e5
Implement layer effects (#940)
* Basic logic for layer effects

* Add an FX button and the ability to add effects, no way to remove or change properties of effects yet

* Basic and ugly UI for adding and removing effects, no property changing yet

* Swap effects

* Fix preload shader paths

* Change parameters for layer effects

* Change gradient parameter in layer effect shaders, and other fixes

* Use CollapsibleContainers for the shader properties

* Set the correct gradient interpolation mode and color space in the UI

* Make effects of group layers apply to children

* Change `apply_fx` to `apply_effects`, formatting, some extra doc comments

* Apply effects to other canvases, when merging layers and when exporting

* Display humanized names of the shader unifrms

* Some UI improvements to the LayerEffectsSettings

* Add an Enabled button in the layer effects window, and change checkboxes to checkbuttons

* Change BaseLayer.apply_effects() to take a cel as a parameter instead

* Make layer effect buttons be affected by the modulate icon color

* Add option in the View menu whether layer effects are displayed in the canvas or not

* Rename `apply_effects()` to `display_effects()`

* Add translation strings

* Add nearest filter to the gradient map

* Don't change Main.tscn

* Fix more translations

* Change the default cursor shape of the generated UI elements of the layer effects

* Add undo/redo and effect application (apply effect destructively)

There are some errors due to the usage of anonymous lambda methods in undo/redo, but it seems to be working well regardless.

* Make layer effect application work on all cels
2023-11-22 01:06:25 +02:00