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

1605 commits

Author SHA1 Message Date
Emmanouil Papadeas 55df23e400 Fix exporting not including the last frame of a tag and "Selected layers" not including the non-selected frames 2024-03-06 01:47:00 +02:00
Emmanouil Papadeas 36d4b0fa18 Fix crash when importing a corrupt pxo 2024-03-05 16:05:13 +02:00
Emmanouil Papadeas e726dcfc09 Fix static typing 2024-03-04 18:27:58 +02:00
Emmanouil Papadeas 2e9c4eb1b9 Add a timeline_updated() signal in Project
Used by https://github.com/Orama-Interactive/TeledrawingPixelorama extension
2024-03-04 18:25:03 +02:00
Emmanouil Papadeas b0a8ad17d4 Revert using Image.rotate_90() from the previous commit
Image.rotate_90() is also changing the size of the image, which we don't want to, at least not yet
2024-03-02 18:03:06 +02:00
Emmanouil Papadeas 4a404b2883 Use Image.rotate_90() and Image.rotate_180() on CPU rotation algorithms when the angle is 90, 180 or 270 degrees 2024-03-01 20:25:37 +02:00
Emmanouil Papadeas 57856ed327 Update ExtensionsApi.gd 2024-02-29 23:54:19 +02:00
Emmanouil Papadeas 9b439327b8 Fix ExtensionsAPI's new_project() not working, and add a new new_empty_project() method 2024-02-24 15:25:54 +02:00
Emmanouil Papadeas 03ce5d40a2 Set the window's minimum size only once in Main.gd 2024-02-23 20:24:37 +02:00
Emmanouil Papadeas d3db8f5be7 Rename project_changed to project_data_changed signal, add a new method for this signal in ExtensionsAPI 2024-02-22 17:43:47 +02:00
Emmanouil Papadeas a06d6a2909 Improve static typing in the ExtensionsAPI 2024-02-22 00:46:28 +02:00
Emmanouil Papadeas 22ddc96962 Use getters to lazy-load cleanEdge and OmniScale shaders 2024-02-19 02:09:35 +02:00
Emmanouil Papadeas 66ea1fcfe9 Update the DockableContainer plugin 2024-02-18 19:47:21 +02:00
Variable 81dbc0177d
Moved live preview code to ImageEffect Dialog (#978)
* live fixes

* added accidentally disconected signals

* Update RotateImage.tscn

* improved code

* Formatting
2024-02-17 00:23:31 +02:00
Emmanouil Papadeas 9a313821dc When exporting, Pixelorama now remembers the last exported path 2024-02-15 18:41:24 +02:00
Emmanouil Papadeas b3fa8870f8 Fix null instance error causing a crash on startup, originating from #974 2024-02-14 20:58:21 +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 f56d536b36 Create a get_mirrored_positions() method in Tools
Reduces some code replication across tools
2024-02-13 02:31:48 +02:00
OverloadedOrama 47fc659170 Add yet another MarginContainer in the timeline
To fix the outline of the first frame (when selected) from being cut off, while also keeping frames & cels glued to the layers
2024-02-12 05:02:07 +02:00
Emmanouil Papadeas 9f82c85b73 Fix issue when uploading a shader on the Web version 2024-02-12 00:29:30 +02:00
Emmanouil Papadeas 0a63664391 Remove some dialog parent nodes
Also removes the GIF warning in the ExportDialog, as #697 no longer occurs in 1.0
2024-02-12 00:28:50 +02:00
Emmanouil Papadeas 5c58562d6b Fix theme color preview spacing in the Preferences 2024-02-11 19:12:09 +02:00
Emmanouil Papadeas 85b255032f Keep the aspect ratio correctly in the image effect dialog previews 2024-02-11 18:44:22 +02:00
Emmanouil Papadeas 2b4d85ac3e Fix PointCollapseContainer's TextureRect being rotated incorrectly 2024-02-11 18:21:35 +02:00
Emmanouil Papadeas 0e4c9bad20 Remove CollapsibleContainer.tscn, only keep it as a script/node type 2024-02-11 18:20:46 +02:00
Emmanouil Papadeas 8d8a147142 Lazy load the window opacity dialog 2024-02-11 16:20:04 +02:00
Emmanouil Papadeas be7427fd9c Fix memory leak when previewing layouts in the ManageLayouts dialog 2024-02-11 16:02:15 +02:00
Emmanouil Papadeas c4a4bd4602 Implement lazy loading for some dialogs to make the initial loading of Pixelorama faster
Only load dialogs when they are needed and not at the start of the program. Right now only the new image, about, manage layouts and image effects dialogs are being loaded on demand, but more dialogs can be handled this way in future commits.
2024-02-11 16:01:59 +02:00
Emmanouil Papadeas a6060d9ff6 Remove unused variable from ReferencesPanel 2024-02-11 02:20:44 +02:00
Emmanouil Papadeas 8448dbd4ba Various theme improvements 2024-02-10 15:11:53 +02:00
Emmanouil Papadeas 8b91d95258 Make alpha affect all of the blend modes besides Normal and Screen 2024-02-09 20:09:25 +02:00
Emmanouil Papadeas bec6dfc256 Fix semi-transparent pixels being blended incorrectly in the BlendLayers shader
There may still be some semi-transparency issues in blend modes, some extra testing is required
2024-02-09 19:45:26 +02:00
Emmanouil Papadeas a05dbabf98 Slightly increase the layer container minimum size to match the layer buttons 2024-02-09 14:50:18 +02:00
Emmanouil Papadeas 3935bfd2d3 Control + wheel works on the line tool's thickness now 2024-02-09 14:42:10 +02:00
Emmanouil Papadeas b75573d19c Make CelProperties its own scene and put it in Main.tscn instead of having it as a child of each CelButton
This drastically reduces the number of nodes. Before, each cel would have its own property node which, when the project had many cels, drove the node count quite high.
2024-02-09 04:01:01 +02:00
Emmanouil Papadeas 7f1aad280c Fix cel buttons not changing colors when switching themes 2024-02-09 03:33:34 +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 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
OverloadedOrama e11ecb2e8d Add get_position() and get_minimum_size() methods to AnimationTag 2024-02-07 03:17:39 +02:00
Emmanouil Papadeas a5a0ac103c Enable gestures and treat long press as right click for Android
Gestures are not yet working very smoothly, but that's something that can be improved after 1.0
2024-02-06 02:50:55 +02:00
Emmanouil Papadeas c9ddde7194 Use FFMPEG to import videos and gifs
Haven't tried large videos, but I imagine Pixelorama would run out of memory quickly. Maybe we should safeguard against that somehow. We also need to get the fps from the imported video and use it in the new project.
2024-02-05 03:32:43 +02:00
Emmanouil Papadeas 85ac0897a9 Remove unused method parameter in Palettes' copy_palette() 2024-02-05 00:17:56 +02:00
Emmanouil Papadeas fb948c33b4 Add a "Create a new palette" option on the sort palette button
Enabled by default, every time you sort a palette it creates a copy of the original palette and it sorts that, instead of sorting the original palette directly. This reduces the risk of destructive change, as the palette system does not have undo/redo support. If disabled, sorting affects the original palette directly, without creating a new one.
2024-02-05 00:16:22 +02:00
Emmanouil Papadeas afaae8ee4b Simplify guard conditions in Bucket's draw_start() 2024-02-04 14:45:16 +02:00
Emmanouil Papadeas 5dfe1cc271 Set Selection.gd process input false by default, fix cursor still being set to a cross when entering the canvas if it's disabled in the preferences 2024-02-04 00:12:19 +02:00
Emmanouil Papadeas 6a7e060f73 Set the cursor to cross when entering the canvas and to resize when hovering selection gizmos 2024-02-04 00:05:20 +02:00
Emmanouil Papadeas 647ec29ab0 The crop tool can now be applied by pressing enter 2024-02-03 15:16:21 +02:00
Emmanouil Papadeas 978ddf3b45 Fix 3DShapeEdit import object not using native dialog 2024-02-03 13:57:05 +02:00
Emmanouil Papadeas 4c39e29b67 Fix UI not staying dimmed after opening a native file dialog 2024-02-03 13:55:17 +02:00
Emmanouil Papadeas 9a842ad33e Sort layouts alphabetically when adding a new one so that Pixelorama will remember the correct last used layout when opening again 2024-02-02 03:50:28 +02:00
Emmanouil Papadeas 5824d2a0eb Choose which layout to copy from when adding a new layout 2024-02-02 02:59:07 +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 da0066259e [WIP] Copy default layouts to the layout directory so they can be modified
Moved some logic away from TopMenuContainer to Main.gd and the layout array to Global.gd.
2024-02-02 01:42:29 +02:00
Emmanouil Papadeas ffd729486f Expose window transparency as an option in the preferences, keep it disabled by default
I had to disable it, because for some reason having it be enabled by default does not seem to be working. This may be a good idea anyway, as many people will not need this feature, and having this enabled affects performance.

This commit also allows for changing project setting related options in the preferences to also work when running Pixelorama inside Godot.
2024-02-02 00:19:53 +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 606ce965f6 Remove unneeded layout code from TopMenuContainer 2024-02-01 21:41:32 +02:00
Emmanouil Papadeas 276a872f73 Rename "ui" variable to "main_ui" in Main.gd and TopMenuContainer.gd 2024-02-01 20:53:52 +02:00
Emmanouil Papadeas 2e8cf6a30a Minor code improvements in WindowOpacityDialog.gd 2024-02-01 20:51:26 +02:00
Emmanouil Papadeas e648d0d612 Some code improvements in DrawingAlgos
Should also result in minor optimizations
2024-01-31 02:26:49 +02:00
Emmanouil Papadeas 399fc8dfbd Make similar_colors() in DrawingAlgos faster
We finally found some use for Godot 4's new Vector4, let Godot's built-in functions handle the math, since they run in native C++.
2024-01-31 01:41:58 +02:00
Emmanouil Papadeas 63691cacaf Load pxo files from the Web version - Fixes #820 2024-01-30 21:17:31 +02:00
Emmanouil Papadeas 1dce3ebe22 Change get_tree().get_root() to get_window() in TransparentChecker.gd 2024-01-29 16:37:56 +02:00
Emmanouil Papadeas 6345c52b5f Fix override.cfg being created in the wrong location if Pixelorama is launched through a launcher or a shortcut 2024-01-29 16:35:23 +02:00
OverloadedOrama a7cf93d1e5 Fix not being able to draw when closing the splash screen
Regression from b08420d0
2024-01-26 04:05:37 +02:00
Emmanouil Papadeas 508f8f0d15 Minor simplifications of some parts in Selection.gd 2024-01-26 02:31:38 +02:00
Emmanouil Papadeas b126e95b64 Almost made selection rotation with gizmos functional
Not exposed yet
2024-01-25 02:33:41 +02:00
Emmanouil Papadeas 3d04a8d276 Selection rotation with gizmos works on selections without content now
Still not ready and thus not exposed
2024-01-25 01:35:42 +02:00
Emmanouil Papadeas 964e9fbd26 Don't set the selection_map of the project to the original_bitmap, if the latter is empty
Shouldn't happen, but best to check in case it does. Setting empty data to the selection_map breaks selections.
2024-01-25 01:06:30 +02:00
Emmanouil Papadeas de5db85345 When resizing a selection with gizmos or from the tool options, only set the original_bitmap when we're not already transforming content 2024-01-25 00:59:53 +02:00
Emmanouil Papadeas f8b32762a1 Fix canceling selection content resizing breaking the selection 2024-01-25 00:45:49 +02:00
Emmanouil Papadeas 56fe1840e0 Make selections scale properly even if they don't transform any image content
Fixes #774.
2024-01-25 00:40:53 +02:00
Emmanouil Papadeas 3a0977ce21 Some code cleanup in Selection.gd 2024-01-25 00:11:19 +02:00
Emmanouil Papadeas ce7a5e77ba Add a single window mode setting in the preferences
True by default, when set to false the UI uses multiple windows
2024-01-24 18:31:22 +02:00
Emmanouil Papadeas f0a5637d8a Some recorder UI improvements
Removed the fps option completely as it doesn't have any effects to exported static images. Should be re-introduced once we add video exporting with ffmpeg though.
2024-01-24 14:41:15 +02:00
Emmanouil Papadeas 5297fe6a80 Forgot to format the previous commit :( 2024-01-24 04:22:45 +02:00
Emmanouil Papadeas d640b6a979 Add a setting to allow usage of native file dialogs in the preferences
Closes #274 and implements #568, at long last! Some issues remain:
- The native save pxo dialog doesn't have an "Include blended images" option. This will be fixed once https://github.com/godotengine/godot/pull/83480 is merged.
- When a native file dialog closes, the interface still remains dimmed.
- In the export dialog, the "Browse" file dialog will also close the export dialog itself when it closes, when it's native.
2024-01-24 04:20:46 +02:00
Emmanouil Papadeas 4bc0fba941 Add a variable in Global for setting file dialogs as native, and add a "FileDialogs" node group
This settings is not exposed in the preferences in this commit
2024-01-24 03:57:40 +02:00
Emmanouil Papadeas b08420d09d Don't change the value of can_draw in Global.dialog_open()
In Godot 4 dialogs seem to be blocking the input to the rest of the UI, so this may not be needed
2024-01-24 03:19:57 +02:00
Emmanouil Papadeas 4e9b657077 Remove Global.has_focus completely
Might be a risky change, but I haven't noticed any bugs so far
2024-01-24 03:14:11 +02:00
Emmanouil Papadeas 42de5ccb29 Remove unneeded has_focus checks 2024-01-24 03:06:09 +02:00
Emmanouil Papadeas d9c0cd7546 Remove Global.can_draw conditions from TopMenuContainer
These were needed with Godot 3 to ensure that you couldn't open any other dialog when a dialog is already open, by using keyboard shortcuts. This no longer seems to be required in Godot 4.
2024-01-24 02:37:28 +02:00
Emmanouil Papadeas 3a852e44ff Add a popup_error() method in Global
Just to reduce code duplication and make error appearing easier
2024-01-24 02:27:57 +02:00
Emmanouil Papadeas 43d241a5c2
Video exporting by calling FFMPEG externally (#980)
* Basic mp4 exporting, needs ffmpeg

* Add avi, ogv and mkv file exporting

* Add webm exporting

* Set ffmpeg path in the preferences

* Show an error message if the video fails to export

* Make sure to delete the temp files even if video exporting fails
2024-01-24 02:00:17 +02:00
Emmanouil Papadeas 204eff8184 Fix selection being incorrect when the image is being scaled (mostly when being made smaller). 2024-01-23 19:38:21 +02:00
Emmanouil Papadeas e7a469fa4d Refactor scale methods of DrawingAlgos 2024-01-23 19:25:32 +02:00
Emmanouil Papadeas 6448b7ee7c Remove unnecessary Array casting in DrawingAlgos 2024-01-23 19:07:35 +02:00
Emmanouil Papadeas 519fa77791 Add a recent colors section to the color picker
Sort-of implements #859
2024-01-23 03:57:31 +02:00
Variable f43f80cee0
Integrate Extension Explorer (#910)
* Integration of ExtensionExplorer

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
Co-authored-by: Emmanouil Papadeas <manoschool@yahoo.gr>
2024-01-23 03:25:37 +02:00
Variable ddce0393dd
Fixed some issues with perspective lines and removed unneeded code from the rotate image dialog (#979)
* fix drag gizmo of perspectice lines

* fix more stuff
2024-01-22 00:09:57 +02:00
Emmanouil Papadeas bec7ceb974 Fix Global.can_draw being set to true all the time
Note for the future, perhaps using _unhandled_input() might remove the need of this variable.
2024-01-21 19:46:01 +02:00
Variable 561a374cc0
Fixed rotation gixmo (#976) 2024-01-20 02:06:44 +02:00
Emmanouil Papadeas bc8fadb67c Fix cel button image texture breaking when the image gets resized 2024-01-19 18:25:50 +02:00
Emmanouil Papadeas 73e40ed127 Add a ShaderInclude file for common shader rotation code 2024-01-18 00:19:30 +02:00
Emmanouil Papadeas aa77dcb61f Selection rotation with gizmo improvements, still not usable and not exposed 2024-01-17 20:04:19 +02:00
Emmanouil Papadeas 9631527da6 Always show panel tabs if there are more than one
Bringing this feature back from 0.x. Not very happy that we're once again not synced with upstream dockable_container, so hopefully https://github.com/gilzoide/godot-dockable-container/pull/27 is merged soon.
2024-01-12 20:56:35 +02:00
Emmanouil Papadeas 80bcfe200d Don't use Global.main_viewport on guides, plus some static typing improvements 2024-01-11 16:23:00 +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
Emmanouil Papadeas 3dd288f32f Hide PasteTagPopup 2024-01-09 20:47:00 +02:00
Emmanouil Papadeas 404aa190cf Fix AddExtensionFileDialog 2024-01-09 20:46:39 +02:00
Emmanouil Papadeas 4d113dbc75 Change some method names in the SignalsAPI, improve docs of some signals in Global 2024-01-09 16:32:17 +02:00
TheLsbt f373dae714
Better signal representation (#971)
* Update 3DShapeEdit.tscn

Change the menu button to flat to indicate that it is a button that you can press and not a label

* Changed Signal names to make sense

Note: I did not change functions in the ExtensionsAPI

Changed signals in Global.gd (and everywhere else they are referenced) from *_changed to *_switched

* Bonus Signal

Added a signal in Global.gd that gets emitted just before the project is changed.

Added project_changed to Global.gd which also emits what project was changed by an action (not switched).

* Formatting
2024-01-09 00:22:56 +02:00
Emmanouil Papadeas ae9449500a [AboutDialog] Remove "Developers", rename "Contributors" into "Authors" and put Erevoid's and mine names there
There's no need for our two names to be on their own, they should be together with the rest of the people who contributed to the project.
2024-01-08 22:13:54 +02:00
TheLsbt 782cc62c6e
Update 3DShapeEdit.tscn (#970)
Change the menu button to flat to indicate that it is a button that you can press and not a label
2024-01-08 18:49:49 +02:00
Emmanouil Papadeas 4f54ffc987 Rename "Crop Image" to "Crop to Selection" and "Trim Image" to "Crop to Content"
Same names as the GNU Image Manipulation Program, much more clear as to what each option does.
2024-01-04 16:28:39 +02:00
Emmanouil Papadeas 97a588bfdd Fix formatting 2024-01-04 15:58:57 +02:00
Emmanouil Papadeas e377813a73 Export palettes as images on the Web version 2024-01-04 15:46:28 +02:00
Emmanouil Papadeas 33ffa88a5b Remove unneeded signal connect from the rulers 2024-01-01 02:00:56 +02:00
Emmanouil Papadeas 08db10faad Clean Canvas.gd's _input() method a bit 2024-01-01 01:52:21 +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
Variable 87b5a818bb
Improved the Paste tag system (#946)
* cloned frames only keep original selected cels as selected

* Fixed PasteTagPopup dialog, fixed tag created immediately after starting pixelorama not placed correctly

* formatting

* typo

* Pase tag popup 2.0

* improved code

* formatting

* Update PasteTagPopup.gd

* fixed code messed up while resolving conflict

* group sync achieved

* linting

* quality of life additions

* fixed projects not updating

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-12-30 14:53:45 +02:00
Emmanouil Papadeas bcdefe66ce [skip ci] Add the sort palette button to the UIButtons node group 2023-12-27 02:43:28 +02:00
Clara Hobbs 3d2d9e47a8
Add support for InputEventMouseMotion.pen_inverted (#966)
* Add support for InputEventMouseMotion.pen_inverted

This commit adds support for stylus erasers, both for drawing and
choosing tools.  This may be supported on some styli by inverting them
as the property name suggests, or by holding a button while drawing with
the nib.

* Formatting fixes
2023-12-25 02:50:10 +02:00
Emmanouil Papadeas dffaf1d504 Fix bug where the wrong cel would be drawn on the canvas when undoing 2023-12-24 14:47:35 +02:00
Emmanouil Papadeas d36f89365c Change "Crop Image" to "Trim Image" and add a new "Crop Image" that actually crops the image based on the active selection 2023-12-24 01:11:12 +02:00
Emmanouil Papadeas 866de8b6ae Add transparent backgrounds to the color buttons 2023-12-23 22:05:51 +02:00
Emmanouil Papadeas 893b2a8c7f Make palette swatches use TransparentChecker.tscn 2023-12-23 22:03:44 +02:00
Emmanouil Papadeas 1b9e0c1ea0 Hide transparent background in cel buttons if they are empty
Since changing the self_modulate no longer seems to have any effect. Changing the alpha in the shader itself would be a bad idea, since it would require every button background to have its own material, instead of sharing the same one.
2023-12-23 21:57:18 +02:00
Emmanouil Papadeas 165217acc3 Fix palette swatch highlight not being shown 2023-12-23 21:44:38 +02:00
Emmanouil Papadeas 06b405dae8 Implements palette sorting 2023-12-23 19:00:24 +02:00
Emmanouil Papadeas 9bf8eb13c4 Align tool buttons to the center 2023-12-23 13:30:01 +02:00
Emmanouil Papadeas 65ab504e22 Add a MarginContainer in the onion skinning settings dialog 2023-12-23 13:26:38 +02:00
Emmanouil Papadeas 0cb98f6e2e
Revert palette file format back to JSON (#967)
* Some static typing and use notification to check if the theme has changed in swatches

* Use Vector2i for scrolling, hide scrollbars in the node properties

* More static typing improvements

* More static typing & docstring improvements, remove some methods from Palettes.gd

* [WIP] Go back to json for palettes instead of tres

* Revert back to using dictionaries for palette colors instead of array

Reverts part of the previous commit

* Read width & height from files, don't store the name

* Fix palette renaming

* Copy non-json palettes into json files

* Fix palette duplication

* Add a new _fill_imported_palette_with_colors() to avoid duplicate code in import file methods

* Fix palette file importing when not initialising

* Export palettes as images

* Replace "tres" with "json" filter in the open sprite dialog

* When exporting a palette as an image, automatically set the file name to the palette name

* Replace default palette files with json

* Remove the Global.palette_panel variable, use signals instead.

* Static typing in signals

* Fix warning in Palettes.gd

* Fix formatting

* Add missing comments to the palette files

* Update Palettes.gd

* A few more static typing improvements
2023-12-23 00:28:35 +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
Emmanouil Papadeas 65c2a770d7 Set is_quitting_on_save = false after saving while quitting
Just in case a project gets saved while quitting, and for the next project, the user cancels.
2023-12-18 21:30:30 +02:00
Emmanouil Papadeas 42e8c8cb50 When saving, don't include ".pxo" in the project name 2023-12-18 20:56:38 +02:00
Emmanouil Papadeas 10ca31b916 Add "include blended images" in SaveSpriteHTML5.tscn, and use save_project() for both desktop and web platforms 2023-12-18 20:55:40 +02:00
Emmanouil Papadeas 89b17177a1 Show multiple save confirmation dialogs on quit for each project that has changes 2023-12-18 20:23:55 +02:00
Emmanouil Papadeas be2245ca76 Put add/remove swatch color on the same horizontal container as the palette select and add/edit palette buttons
This allows for horizontal placement of the palette panel without any wasted space
2023-12-16 23:13:11 +02:00
Emmanouil Papadeas 9034b32d44 Use a MenuBar node in the top menu container
I didn't know this was a new node in Godot 4, very cool
2023-12-16 22:25:06 +02:00
Emmanouil Papadeas 0996d0405e Fix create and edit palette dialogs being very long 2023-12-16 22:07:11 +02:00
Emmanouil Papadeas b42c2d4cae Fix crash reported in #960 2023-12-15 18:54:10 +02:00
Variable 8d09713774
ExtensionApi Improvements (#959)
* Improved signal api

* added two more signals

* Improved debug messaging system

* fix typo
2023-12-14 03:44:50 +02:00
Variable 17ee10a131
[ExtensionsAPI] Implement an Import API (#957)
* Added ImportAPI

* Delete src/UI/Dialogs/PreviewDialog.gd

* Delete src/UI/Dialogs/PreviewDialog.tscn
2023-12-12 16:04:49 +02:00
Emmanouil Papadeas 6b5ba2bf0f Fix brush and palette importing not working 2023-12-10 14:23:14 +02:00
Emmanouil Papadeas a5e73e1fcd Fix layers not being rendered on certain devices
Looks like some kind of textureSize() bug with sampler2DArrays when accessing the z member. I have only confirmed this bug on an AMD GPU. Nevertheless, it should be fixed now with this workaround.
2023-12-10 02:59:30 +02:00
Emmanouil Papadeas 495c3b8ebe Don't call project_changed() whenever a reference image gets imported 2023-12-07 16:09:00 +02:00
Emmanouil Papadeas 91bf44c4fb Make the RGB buttons pressed by default in Invert Colors & Desaturate dialogs 2023-12-07 00:21:58 +02:00
Emmanouil Papadeas df0cbe0bc2 Add margins to the palette container 2023-12-06 22:32:24 +02:00
Emmanouil Papadeas 30827461fd Add margins to the tool options 2023-12-06 21:55:13 +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 aacd41f2e5 More z-index layer ordering fixes 2023-12-06 15:11:04 +02:00
Emmanouil Papadeas b40fef2c97 Fix the layer order being wrong 2023-12-06 04:29:35 +02:00
Emmanouil Papadeas 8ca0e12b90 Attempt to fix the "add layer" button not working when pressed 2023-12-06 04:16:53 +02:00
Emmanouil Papadeas c8bead14b2 Fix crash when the palette directory doesn't exist 2023-12-06 03:57:26 +02:00
Emmanouil Papadeas 359f509d57 Make the opacity slider affect layer opacity instead of cel opacity
And move cel opacity inside the cel properties.
2023-12-06 03:44:55 +02:00
Emmanouil Papadeas c0a8202145 Add cel properties and z-index to individual cels 2023-12-06 03:22:33 +02:00
Emmanouil Papadeas f893e68d59 Move even more code away from Global and Project to AnimationTimeline
This time related to layer buttons
2023-12-05 02:04:34 +02:00
Emmanouil Papadeas 80e351a2a1 Move some code away from Global and Project to AnimationTimeline 2023-12-05 01:46:42 +02:00
Emmanouil Papadeas d60c686368 Fix typo 2023-12-05 01:13:46 +02:00