1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-09 03:49:48 +00:00
Commit graph

53 commits

Author SHA1 Message Date
Emmanouil Papadeas 31b56500c2 Make Pixelorama work on Godot 3.5-rc4
For some reason it crashes without this fix, while it did not crash in RC3.
2022-06-26 01:39:25 +03:00
Variable 12c9d02f12
Better timeline scrolls (#682)
* add limit change with brush

* Delete Draw.gd

* Delete BaseTool.gd

* added error calculation

* revert last commit

* Updated Scrollbar behaviour

* formatting

* removed some bugs

* Update AnimationTimeline.gd

* formatting

* some more formatting +

Removed unwanted function

* formatting

* removed print()
2022-04-28 18:06:41 +03:00
Variable bec30112f6
improvements to copy\delete methods and (some) tag workflow (#648)
* improvements to copy and delete methods

To allow cloning/deleting an array of frames

* formatting

* adapt to the new copy/delete methods

* Update AnimationTimeline.gd

* removed some bugs

* changed old tag behaviour

tags ahead get further by 1 frame on add_frame()

* modified tag behaviour

* formatting

* removed tag interaction
2022-02-28 03:31:17 +02:00
Manolis Papadeas a331d697ed Move some variables in AnimationTimeline
No functional changes
2022-02-07 18:10:29 +02:00
Manolis Papadeas 605e7ab3fd Copy frame duration when cloning a frame 2021-12-31 04:05:04 +02:00
Manolis Papadeas 48326900d9 Fix a memory leak coming from the Layer class
Removed the "frame_container" property from Layer.gd, which used to hold a reference to a node, leading to orphan nodes being created and never freed. Memory management seems to be working okay now. Previously, every time the user made a change, memory kept going up and never coming down. Now, data that can never be recovered, like undo data that have been rewritten in history, are also removed from memory.
2021-12-23 19:58:07 +02:00
Manolis Papadeas 67ec887ad1 Just one method for undo/redo in Global.gd 2021-12-02 02:22:32 +02:00
Manolis Papadeas f70efe3076 Move new_empty_frame() to Project.gd from Canvas.gd
This commit also changes the behavior of the fill color. The new cels now only get filled with the Project.fill_color if they are on the bottom layer.
2021-12-01 20:50:50 +02:00
Manolis Papadeas 4c60ef144f Fixed project not having the correct size if the default image size has been changed in the Preferences
Ideally, the new_empty_frame() method should be removed from Canvas and should probably go to Frame or Project.
2021-12-01 20:02:39 +02:00
Manolis Papadeas 72aef23cce UI changes to the onion skinning settings
Also changed the ignore text to the "_io" suffix instead of "ignore_onion", because this is quicker to type.
2021-12-01 02:28:12 +02:00
Manolis Papadeas 540a61ae4d Merge onion skinning past and future into one script 2021-11-26 03:38:00 +02:00
Variable 159a821dd2
Better Onion Skinning (#600)
* better onion part (1/3)

changed code and added scripts

* better onion part (2/3)

added some onion variables

* better onion part (3/3)

Added to onion dialog

* removed whitespace that gave static error
2021-11-26 02:55:08 +02:00
Manolis Papadeas c6b9a1fb82
Format code and add static checks (#599)
* gdformat .

* Lint code - Part 1

* Format code - Part 2

* Lint code - Part 2

Trying to fix the max allowed line length errors

* Add normal_map_invert_y to the image .import files

Because of Godot 3.4

* Do not call private methods outside of the script's scope

Lint code - Part 3

* Format code - Part 3

* Fixed more line length exceeded errors - Lint code Part 3

* Export array of licenses - Lint code part 4

* Clean hint_tooltip code from Global

Removes a lot of lines of code

* Create static-checks.yml

* Fix FreeType's license
2021-11-25 14:48:30 +02:00
Manolis Papadeas 536250f517 Moved some variables away from Global 2021-11-23 02:36:22 +02:00
Manolis Papadeas f4c903771d Remove some unneeded yield() calls
And minor changes to make the code a tiny bit more clean. I tested this PR, but it still might be a bit risky.
2021-11-17 19:59:14 +02:00
Variable 3e88efc118
Improvements to Animation Tags (#560)
* Animation tag fix (a)

fixed tag behavior in "Project.gd"

* Animation tag fix (b)

fixed tag behavior in "AnimationTimeline.gd"

* Animation tag fix (c)

fix top part of line not visible

* Animation tag fix (d)

a fix i forgot about earlier

* added a randomizer...

... to auto select colors of new tags

* Fix Tag scrolling without cels when scrolled on it

* removed randomize() cause it's not needed
2021-11-17 00:21:29 +02:00
Manolis Papadeas 8f115a726e Fix #541 2021-09-22 21:54:16 +03:00
Manolis Papadeas 1d20295f7d Keep images unlocked after editing them - Should close #331
Not sure if this actually solves the issue or just makes it more rare, but I haven't been able to reproduce any PoolVector locking issues so far. The problem was that images were remained locked essentially all the time, which seemed to cause issues. Maybe other PoolVectors could not get locked?
2021-07-25 21:49:37 +03:00
Manolis Papadeas c6a056bba6 Made cloning frames create linked cels if the linked cel button is toggled on - suggestion of #402 2021-07-22 03:10:00 +03:00
Manolis Papadeas 55c5688f16 Fix changing cel opacity calling project.frames_changed()
It shouldn't happen
2021-07-09 03:38:06 +03:00
Manolis Papadeas 2760049cfd Fix content transformation not getting confirmed when changes were done to frames and layers
Also fixes issue where frame/layer copying does not copy the transformed data
2021-07-08 20:46:56 +03:00
Manolis Papadeas 98d41fca14 Remove Global.find_node_by_name()
Use the built-in find_node() method instead.
2021-06-26 14:01:07 +03:00
Manolis Papadeas de850ce8a1 Ability to select multiple cels and edit them all at once
A rather significant change, so, while I have tested it, it might still be buggy. Implements a part of #306.
2021-06-12 01:06:13 +03:00
Manolis Papadeas ecd08ce132 Add a right click popup menu on the frame buttons and move most of the frame related options there
These options used to be on the right click popup menu of the cel buttons. Now, cel options only contain Link/Unlink Cel, for now.
2021-06-05 02:37:33 +03:00
Manolis Papadeas 7f1594e1bc You can now resize cels in the timeline by holding Control and scrolling with the mouse wheel.
Addresses part of #306
2021-01-30 23:57:33 +02:00
Manolis Papadeas 27852b2694 Dragging and dropping individual cels in the timeline to change their position is now possible.
Addresses a part of #306
2021-01-29 22:00:48 +02:00
kleonc b1c0344d0b
Remove unneeded location variables (#425)
Co-authored-by: kleonc <kleonc@users.noreply.github.com>
2021-01-06 07:11:50 -08:00
kleonc 1b8520c1a9
Select new layer after adding it (#424)
Co-authored-by: kleonc <kleonc@users.noreply.github.com>
2021-01-06 06:18:41 -08:00
Manolis Papadeas 16d2c336e9 Fixed FPS not being updated when Pixelorama first runs 2020-12-17 02:52:13 +02:00
Manolis Papadeas 031efc0cdb Make FPS project-specific and store it in the pxo files 2020-12-17 02:20:47 +02:00
Manolis Papadeas 05c9ef70d4 Put frame duration as a member of the Frame class
Instead of having a frame_duration[] array in the Project class. This makes the code much more readable and understandable, using less lines of code and, by avoiding an extra array, we also avoid potential out-of-bound array crashes.

The functionality for the user has not changed, and by testing so far I didn't find any issues.
2020-12-16 22:54:08 +02:00
Manolis Papadeas de6f78b058 Fix crash when importing an image file as a new frame 2020-12-09 18:07:12 +02:00
Manolis Papadeas b3aa4a6343 Fixed crash when creating a new project
Caused by #357
2020-10-23 17:44:37 +03:00
OverloadedOrama e94bcf50e0 Made pxo saving a bit safer
It now first attempts to serialize the project data and turn them to JSON, and then opens the file. This is a lto safer because, if a crash happens in the serialization, the file is not already open, and therefore it does not get corrupt. Earlier, if a crash happened, the file would be empty. This meant that if that file existed previously, all of the data would be lost.
2020-10-20 03:27:38 +03:00
PinyaColada 852365c38f
Frame properties (#357)
* Sync for my local files to my repository

* This is frame properties update, it works but I can't be stored while
saving or loading and that makes crashes just the beggining :)

* I forgot this files :P

* Frame Properties update.

* Updating frame properties

* Update Translations.pot

* Changes to CanvasPreview and CelButton change
2020-10-19 17:57:40 +03:00
Laurenz Reinthaler 0f8a04193f
Add buttons for moving the current frame left or right (#344)
Add dark theme sprite

Add light theme sprite

Co-authored-by: Laurenz Reinthaler <reinthalerlaurenz@gmail.com>
2020-10-03 22:46:24 +03:00
OverloadedOrama 6b26bb5b10 Removed custom blend_rect() method from DrawingAlgos 2020-06-30 15:07:09 +03:00
OverloadedOrama 5fda35c2d8 Fixed issues with saving and backups 2020-06-06 02:52:17 +03:00
OverloadedOrama ae381a8714 Change canvas and timeline when a tab is being pressed 2020-06-05 04:30:31 +03:00
OverloadedOrama f9bd590d20 Moved size variable from Canvas.gd to Project.gd 2020-06-04 23:20:20 +03:00
OverloadedOrama 4e111a7ac0 Created a Projects class
A Project class contains project-specific data like name, undo_redo, frames, layers, tags and brushes. These variables have been moved from Global. This is the first step towards multiple tab support, where each tab will be a different Project.
2020-06-04 21:05:36 +03:00
OverloadedOrama 54b628f6cb Made a Frame class, no longer use multiple Canvases for multiple frames
The Canvas is now single node, instead of having multiple canvases for each frame. This should also be a performance optimization, since there are less canvas nodes, so there are less _input() calls. It should also fix a rare Undo/Redo issue with motion drawing and making lines. Could be unstable, needs more testing.

As a side effect, the guides are now the same for all frames, so this should also close #246.
2020-06-03 02:14:24 +03:00
OverloadedOrama 34bc528e97 Added AnimationTag class
Replaces nested Global.animation_tags arrays. Also replaced array.duplicate(true) with looping through the array and creating a new class for each array element, because duplicate(true) does not create new classes, unfortunately, which was causing issues with undo/redo.
2020-06-02 05:14:05 +03:00
OverloadedOrama df0032c515 Created a new Cel class, to handle cel information
Like the Layer class, it is used in place of Canvas.layers nested array mess. It hasn't been tested thoroughly yet, so there may be crashes.
2020-06-01 18:50:31 +03:00
OverloadedOrama a9ca858303 Use a new Layer class to handle layer information
This replaces the old Global.layers nested array mess, and makes the code easier to read and to understand.
2020-06-01 16:42:53 +03:00
OverloadedOrama 00a0ab882a Created DrawingAlgos.gd and moved a lot of drawing code there
Moved code from Global.gd and Canvas.gd to DrawingAlgos.gd. Will also move the fill_gaps and draw_brush methods of Canvas.gd next. Maybe even refactor the inside of them a bit to make them easier to read.
2020-05-29 03:16:44 +03:00
OverloadedOrama 7dbea9c0b0 Fixed stack overflow crash when the user set the loop mode to ping-pong and played the animation on a single frame with its own tag
The crash only occured when it was one frame in that tag, but there were also more frames in general. A very rare scenario.
2020-05-09 21:38:28 +03:00
OverloadedOrama 55e7178e1f Changing a button's texturerect child no longer requires the theme in its file path
Instead, it automatically finds its path, adds the new file name and loads the new texture.
2020-05-06 15:19:53 +03:00
OverloadedOrama c1602ad26a Big UI overhaul - added PanelContainers to group similar elements
Removed separators entirely. Also made the AnimationTimeline have a StyleBoxFlat of its own, which we use to expand its margin top to cover the little space left because of the VSplitContainer. We also use a TextureRect as a fake VSplitContainer grabber.
2020-05-06 00:55:17 +03:00
Manolis Papadeas 1ad1ecb960
Asset renaming (#225)
* Renamed the Asset folder and subfolders to lowercase

* Fixed font loading issue

Co-authored-by: OverloadedOrama <manoschool@yahoo.com>
2020-05-05 03:53:58 +03:00