1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-20 20:43:14 +00:00
Commit graph

542 commits

Author SHA1 Message Date
OverloadedOrama
af078d590d Update TransparentChecker's size of all viewports 2020-06-13 15:33:59 +03:00
OverloadedOrama
8064d7b459 Fixed shadowed variables crashes/warnings occurring in Godot 3.2.2-rc1 2020-06-13 15:25:12 +03:00
OverloadedOrama
e6aea97f1b The world_2d of the preview viewports is no longer the same as the main viewport's
A "CanvasPreview" Node2D has been added to every preview viewport, where it draws the current frame. This solves #205.
2020-06-12 02:27:21 +03:00
OverloadedOrama
2371238ec0 Removed Import option from the file menu
The "Open" option will handle importing of .pxo files and image files from now on. The "ImportSprites" file dialog node and script are scheduled to be deleted too. Importing spritesheets option will return soon. Next thing I'm going to work on is a preview window that will appear when importing image files.
2020-06-12 01:11:58 +03:00
OverloadedOrama
b0338ab09a Changed structure of .pxo files
The structure of the .pxo files is now consisted of a JSON-structured metadata part, where all the data that can be stored as text are, and a binary part, that contain all the actual image data for each cel and project brush.

This makes it easier for users to understand the .pxo structure, easier to add more changes without having to check versions for backwards compatibility, easier to be opened by third-party apps and it allows us to make an "Export JSON metadata" option, that will export just the metadata in JSON format, without the binary image data.

It's backwards compatible and .pxo files from as far as v0.5 are still supported.
2020-06-10 04:17:39 +03:00
OverloadedOrama
d76b24b029 Removed unnecessary code from CreateNewImage.gd 2020-06-09 19:02:09 +03:00
OverloadedOrama
8118381b0b Fixed issue where new images had the size of the previous project 2020-06-09 18:44:08 +03:00
OverloadedOrama
d38a6efe9b Move save paths when repositioning tabs
Change path position in the arrays when repositioning tabs
2020-06-06 13:06:50 +03:00
OverloadedOrama
5fda35c2d8 Fixed issues with saving and backups 2020-06-06 02:52:17 +03:00
OverloadedOrama
709a401373 Save backups for all opened projects
current_save_paths and backup_save_paths in OpenSave.gd are arrays now, have paths for every project
2020-06-06 02:16:53 +03:00
OverloadedOrama
2c409ab025 Camera zoom and offset are now project properites
The zoom/offset of the three cameras now get saved in each project, and change when you change project.
2020-06-05 21:03:34 +03:00
OverloadedOrama
9ffce37c0b An asterisk is added to the tab name if there are changes
The window title also changes when switching tabs. And yes, "has_changed_changed" is a stupid method name, I'll find another one sometime later.
2020-06-05 20:15:40 +03:00
OverloadedOrama
6d87901056 Imported image files now open in an new tab
Keep in mind that opening an image file as a new frame might not work properly yet, if the target image has a different size.
2020-06-05 19:51:06 +03:00
OverloadedOrama
1b1c7f844f .pxo files now get opened in a new tab 2020-06-05 18:54:11 +03:00
OverloadedOrama
7a61f1ea4a Fixed issue where the wrong amount of cels were being created
The new image's frames had as many cels as the previously selected project
2020-06-05 18:19:05 +03:00
OverloadedOrama
d37b07db5d Reposition tabs is now functional
That was easier than I expected
2020-06-05 17:55:41 +03:00
OverloadedOrama
b276999b12 Closing tabs is now possible 2020-06-05 17:50:52 +03:00
OverloadedOrama
4af130bc61 Project brushes change when switching projects
A new Global.file_brushes array is used for the file brushes, and the Project class has its own brushes array for the project brushes
2020-06-05 17:21:35 +03:00
OverloadedOrama
736521246d Change guides when switching project 2020-06-05 16:21:19 +03:00
OverloadedOrama
35969b2f67 Moved the _min and _max variables to Project.gd 2020-06-05 16:06:59 +03:00
OverloadedOrama
60126e46d3 New image now creates a new tab/project 2020-06-05 04:30:50 +03:00
OverloadedOrama
ae381a8714 Change canvas and timeline when a tab is being pressed 2020-06-05 04:30:31 +03:00
OverloadedOrama
709a6d470e Added basic UI for tabs 2020-06-05 02:48:38 +03:00
Manolis Papadeas
2e69e1a8c2
Merge pull request #257 from Orama-Interactive/refactoring
Last refactoring merge
2020-06-05 02:23:59 +03:00
Manolis Papadeas
356bd0665b
Added more contributors and donors in AboutDialog 2020-06-05 00:33:45 +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
7371cd79e4 Fixed image effects
Also replaced flip_image_horizontal() and flip_image_vertical() with just flip_image()
2020-06-03 02:53:15 +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
9b4956b4f1 Even more Global left/right variables became arrays
ColorAndToolOptions has now the same code for left and right tool options, with more similar refactoring coming soon to places like Canvas and DrawingAlgos
2020-06-01 00:44:53 +03:00
OverloadedOrama
4cc0ccb97b More Global left/right variables became Arrays
Global.update_left_custom_brush() and its right counterpart have also now become Global.update_custom_brush(mouse_button : int)
2020-05-31 18:40:47 +03:00
OverloadedOrama
c538140de2 Changed Global node variables to arrays for left/right
Instead of having 2 variables for left & right nodes, use an array instead. This will help with better looking code, automation and less repetitive code, as seen in ToolButtons.gd. Move related refactoring will follow.
2020-05-31 18:03:44 +03:00
OverloadedOrama
37a8ad2447 Fixed line making with Shift and don't let color picker pick colors outside of canvas 2020-05-31 16:24:08 +03:00
OverloadedOrama
5b7d161ecf Use enums instead of strings for tools
This could be a slight increase in performance
2020-05-31 16:04:33 +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
379b574257 Split code from PreferencesDialog.gd to HandleLanguages.gd
Also moved PreferencesDialog script & scene to src/Preferences. More Preferences code splitting will follow.
2020-05-28 03:41:28 +03:00
OverloadedOrama
ef89c650b2 Fixed TextureRect images of the circle brushes in BrushesPopup
They all had the pixel brush image in their TextureRect
2020-05-24 00:32:20 +03:00
Igor Santarek
aae3ae0cf4
Refactoring Main.gd. Mostly cutting big methods into smaller ones. (#244)
* Refactoring Main.gd. Mostly cutting big methods into smaller one.

- Reduced size of _ready method in Main.gd
- Moved code from certain parts of old _ready method into seperate methods
- Fixed the translation bug related to CurrentFrame node in TopMenuContainer scene. The CurrentFrame node wasn't updating the language when I was changing language. I've also changed the translation file for this.
- Fixed Global.palette_option_button.selected related warning. Because of some unknown reasons, git didn't push completed line there.
- Moved code from file_menu_id_pressed and view_menu_id_pressed method in Main.gd to separate methods to make it more readable.

* Removed window_title changes from Main.tscn

Co-authored-by: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com>
2020-05-24 00:22:06 +03:00
OverloadedOrama
12c6118763 Created ToolButtons.gd, moved code from Main.gd there 2020-05-21 21:30:40 +03:00
OverloadedOrama
5f9c1976d2 Made BrushesPopup and PatternsPopup their own scenes 2020-05-21 20:37:20 +03:00
OverloadedOrama
d2539f44f0 Removed brush_selected signal 2020-05-21 20:33:00 +03:00
OverloadedOrama
0629449bdf Created UI.tscn
All of the main UI elements are now in UI.tscn instead of Main.tscn
2020-05-21 20:21:01 +03:00
OverloadedOrama
55527501d0 Created TopMenuContainer.tscn and ViewportContainer.gd 2020-05-21 20:13:19 +03:00
OverloadedOrama
30e7b34dc9 Made OpenSprite and SaveSprite separate scenes 2020-05-20 01:44:27 +03:00
OverloadedOrama
8e6516a4d4 Use error dialog for 2 more cases
NoProjectEditedOrCreatedAlertDialog and OpenLastProjectAlertDialog
2020-05-20 01:37:36 +03:00
OverloadedOrama
2ebdf51047 Use error dialog instead of individual erro dialogs for when removing palettes 2020-05-20 01:31:38 +03:00
OverloadedOrama
1e114d6f4f Created ColorAndToolOptions script and scene
Removed the tool option signals from Main.gd and put them to ColorAndToolOptions.gd. Instead of having 2 methods for left and right, they are now in one method, using a boolean to differentiate between left and right.
2020-05-20 00:57:07 +03:00