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

134 commits

Author SHA1 Message Date
OverloadedOrama 129885ddfc Cloning layers now adds "(copy") to the layer name
So if you clone "Layer 0", the cloned layer's name will be "Layer 0 (copy)"
2019-12-30 22:05:09 +02:00
OverloadedOrama 04fe708560 Fixed issue where the canvas was stuck on 64x64 size 2019-12-28 19:03:45 +02:00
OverloadedOrama 3cac42ba15 Fixed mirroring of the bucket tool
Also removed unnecessary double code from Canvas.gd, made it a little cleaner.
2019-12-28 15:14:54 +02:00
OverloadedOrama abfa70be31 Fixed issue with the filled circle brush
It no longer leaves any unfilled pixels
2019-12-28 00:25:44 +02:00
OverloadedOrama d6a199c53f Added a new brush type - Filled Circle
Filled Circle brush is just like the Circle brush, but filled. Issue is, when drawing while moving the mouse, some pixels remain unfilled.

Also added some more file brushes.
2019-12-27 22:02:47 +02:00
OverloadedOrama 86761c92ec Layers stay invisible when adding/removing/moving a new layer 2019-12-27 20:24:44 +02:00
OverloadedOrama 42e3aec561 Fixed issue where Shift and Ctrl weren't working with straight lines on Canvas.gd 2019-12-27 17:38:43 +02:00
Overloaded 080676ac83
Merge pull request #96 from Calinou/fix-gdscript-warnings
Fix GDScript warnings pertaining to unused arguments
2019-12-27 17:19:03 +02:00
Hugo Locurcio 02c76cfd14
Don't call update() in the canvas on non-mouse input events
This partially addresses #85.
2019-12-27 16:16:20 +01:00
Hugo Locurcio 386473845e
Fix GDScript warnings pertaining to unused arguments
Those warnings can be ignored by prefixing the argument with an
underscore.
2019-12-27 16:14:01 +01:00
OverloadedOrama fec657efc8 Fixed bug with random brushes, they were being resized forever while the user was drawing 2019-12-27 00:00:20 +02:00
OverloadedOrama 3a20b3e073 Added a new brush type - Random Brushes
They're like File brushes, but each time you draw, expect to see something different!

To make a random brush, just put the images you want in the same folder (under the main Brushes folder of course), and make sure their filename starts with "%".

I also changed _process() to _input() in Canvas.gd, so there may be some unexpected behavior.
2019-12-26 21:36:56 +02:00
OverloadedOrama d4b42534bb Added sliders for brush size & 2 new custom brushes
Also, in Canvas.gd's _draw() method, draw_set_transform() is called again after the circle brush drawings, to reset the transform to its default state.
2019-12-25 21:17:29 +02:00
OverloadedOrama 06e0d74c14 Added proper circle brush - Bresenham's Circle Algorithm
The circle's radius is the brush's size. Respects image/selection boundaries, works with mirror. A special plot_circle() method is found on Global, to calculate the rectangles used by the mouse cursor/position indicator.
2019-12-25 20:27:25 +02:00
OverloadedOrama d3ff1e984b Added diagonal outlines, changed paint all pixels of the same color to respect selection 2019-12-25 02:53:45 +02:00
OverloadedOrama ed2e757c11 Layer Opacity - Change alpha of each layer
Added a slider under the layer add/remove/etc buttons that changes the currently selected layer's transparency. It gets saved in .png and .pxo files, while respecting non-opaque pixels in the image too. Which means, their alpha values aren't being overwritten.
2019-12-24 23:51:08 +02:00
OverloadedOrama c6ded721d1 Canvas transparent background changes on dark & gold themes
It's also in Global.gd instead of Canvas.gd
2019-12-21 04:56:48 +02:00
OverloadedOrama 69392ff34b Constrained angles on straight lines while pressing Ctrl 2019-12-19 15:50:41 +02:00
OverloadedOrama a76bfcef48 Straight lines now paint the target pixel too
They also start at the middle of the pixel, rather than the last mouse position in general
2019-12-19 03:38:14 +02:00
OverloadedOrama 91b21a52f5 Angle between last drawn pixel and line is now appearing on the top when drawing a straight line
Also straight lines work with LightenDarken now, and moved the Seconds Timeline a bit to the left
2019-12-19 03:15:23 +02:00
OverloadedOrama 6220ad82bc Frame number labels change color when selected 2019-12-18 00:53:06 +02:00
Overloaded f97818d134
Merge branch 'master' into line-tool 2019-12-15 17:49:47 +02:00
Subhang Nanduri 632a0c8dd3 Fix for crashes that occur when using selection tool and line tool 2019-12-15 10:19:58 -05:00
OverloadedOrama 00ef80e932 Fixed problem with drawing and filling gaps, created "shift" in Input Map
previous_mouse_pos is now used for regular drawing, while previous_mouse_pos_for_lines is used for straight lines
2019-12-15 14:07:28 +02:00
OverloadedOrama f3ab5960ba Imported German translation in the Project Settings 2019-12-15 13:44:53 +02:00
Subhang Nanduri 40dfe544d8 Changed line tool so it activates by pressing shift after last draw 2019-12-15 02:09:14 -05:00
OverloadedOrama 87cddbce06 Fixed LightenDarken drawing bugs 2019-12-11 02:47:54 +02:00
OverloadedOrama 719d29526f Updated custom tool cursors & changed rectangle selection tool
- Also fixed a small translation bug with the menu items, for real this time
- Fixed a bug with the brush color not being updated when using the custom color picker tool
- The pixel indicators only appear for Pencil, Eraser and LightenDarken tools
- Small UI margin changes.
2019-12-11 01:00:26 +02:00
OverloadedOrama 1bd8ec4ae0 Added 2 small sprites below the cursor for the selected tools
Instead of having a tool icon as a cursor for the left tool only
2019-12-10 19:56:16 +02:00
OverloadedOrama 704dcf90c0 Retain the zoom factor when adding a new frame
Also, when importing a PNG, the window title changes.
2019-12-09 01:39:59 +02:00
OverloadedOrama 31a67fcbc2 Fixed preview camera zooming issues on large images 2019-12-09 00:17:05 +02:00
OverloadedOrama 2a086a41d8 Custom canvas images for all tools 2019-12-08 03:32:58 +02:00
OverloadedOrama bf4052ad84 Full Greek support and minor UI changes
Everything should now be translated in Greek. Will update if I have forgotten anything. Also made some changes to the layer and frame button colors and layer position.
2019-12-08 03:12:34 +02:00
OverloadedOrama d81d7ee5ef Grid size and color in preferences, update_texture optimization
- Added grid size and color in preferences
- Canvas' update_texture() updates the frame button's texture only when the user releases a mouse button. This should optimize drawing in large images.
- Cursor is no longer invisible inside the canvas
- Minor UI changes
- Added some more translations. This is going to be a common thing in commits from now on.
2019-12-07 19:34:54 +02:00
OverloadedOrama 2369243cfc Merging layer & saving sprite now uses custom blend_rect method
Also added CameraMovement.gd to the preview window camera and fixed a cursor problem where it always remained as the default arrow cursor outside the canvas
2019-12-07 01:08:23 +02:00
OverloadedOrama 5613c3d7ef Overall code re-organizing & layer renaming changes
- When renaming a layer, the line edit grabs the focus. If enter is pressed, it gets invisible. Also fixed positioning and size
- Re-organized the variables in Global, now they are less messy and randomly placed
- Layer, frame & brush textures stretch mode has been changed to Keep Aspect Centered
2019-12-06 01:48:29 +02:00
OverloadedOrama da61234b13 Added custom cursor images for bucket & color picker
- Custom cursor images for bucket & color picker, only when mapped to the left button
- Cursor is now invisible when the left chosen tool is anything but bucket, color picker and rectangle select.
- Improved and added more hint tooltips.
2019-12-06 00:27:47 +02:00
OverloadedOrama 340af88eb4 Added a mini-canvas preview window 2019-12-05 16:49:27 +02:00
OverloadedOrama 8b913553aa Fixed bug when drawing custom brushes
Added a src_rect parameter to blend_rect()
2019-12-05 01:38:10 +02:00
OverloadedOrama 5f72e970c6 Added a custom color picker tool, which allows you to select a color from the canvas 2019-12-04 17:22:21 +02:00
OverloadedOrama dd60f0fc7e Added lighten/darken option and amount for the LightenDarken tool
You don't use Ctrl anymore to switch between Lighten and Darken
2019-12-04 01:01:37 +02:00
OverloadedOrama 700f287edc Added fill area option for the bucket tool - this restores the old "paint all pixels of the same color" tool's functionality 2019-12-04 00:14:14 +02:00
OverloadedOrama 532f6c75ed Custom brush appears as cursor only in Pencil and Eraser tools 2019-12-03 21:51:13 +02:00
azagaya ea09dfddfb Added custom blend function to workarround godot's blend rect issue 2019-12-03 12:53:42 -03:00
azagaya d246df042a Another attemt to workarround flood_fill bug 2019-11-30 09:26:58 -03:00
OverloadedOrama f10bf4c96f Possible fix of #10 - thanks azagaya! 2019-11-30 03:22:56 +02:00
OverloadedOrama 3312b8064f Removed left and right brush arrows
- Removed left and right brush arrow indicators completely.
- Fixed bug when removing custom project brushes.
2019-11-30 02:45:45 +02:00
OverloadedOrama 4721a01f2e More UI changes
- Left tool options is now on top of the right tool options.
- Brushes have been removed from the right panel, and have instead become a popup that appears when you press one of the brush type buttons, to choose a brush. The indicators will be removed.
2019-11-30 00:41:34 +02:00
azagaya 70dfd856fe Don't draw blue rectangle arround selected pixel when picking color 2019-11-29 11:13:11 -03:00
OverloadedOrama d027923a0e Fixed bug when using a non-pixel brush with Lighten/Darken
If you selected a non-pixel brush with Lighten/Darken, it acted like a regular pencil. Now, no matter what brush you have selected, L/D only works as a pixel brush.
2019-11-27 01:13:02 +02:00
Hugo Locurcio 9bdc0e16b6
Improve the status bar display
- Display zoom as a percentage, to be more in line with other
  2D editing applications.
- Increase spacing between labels.
- Use the Unicode multiplication sign.
2019-11-21 18:10:03 +01:00
OverloadedOrama 224316256c Added guides
- Added horizontal & vertical guides which can be dragged from their respective rulers
- Fixed bug when opening and importing files
2019-11-21 00:11:21 +02:00
OverloadedOrama d44b31b5a8 Merge pull request #20 with previous commit 2019-11-20 14:42:52 +02:00
OverloadedOrama e895e82a95 Added a seconds ruler for the timeline & changed brushes position 2019-11-20 14:41:02 +02:00
OverloadedOrama 7318db30ab Major UI changes - including new icons!
- New UI icons for the tools, layer and frame buttons.
- Removed clone, remove and move frame buttons. You can now right click on a frame button to do these actions instead.
- Added first, previous, next and last frame buttons to the timeline.
- Added rulers for the main canvas viewport.
- Window size bumped to 1152x648.
- Default FPS is now 6 instead of 1.
- Fill tool renamed to Bucket.
- Mouse default cursor shape for the canvas is the arrow instead of cross.
- Mouse default cursor shape for the mirror and onion skinning buttons is the pointing hand.
2019-11-19 23:23:43 +02:00
OverloadedOrama d66c501b5c v0.4 - Undo/Redo, mirrored drawing, lighten/darken tool and more!
In this commit:
- Added notification labels that appear when the user does an action (for undoing, redoing and saving)
- Fixed symmetry with custom brushes.
- In Main.gd, current_save_path and current_export_path get cleared when the user creates a new drawing or opens one.

v0.4 of Pixelorama is out! Check https://functionoverload590613498.wordpress.com/2019/11/13/pixelorama-v0-4-is-out/ for the full changelog.
2019-11-13 15:45:55 +02:00
OverloadedOrama 17d117a0b1 Finalized Lighten/Darken tool
Lighten/Darken tool now works only once per pixel per mouse press, and it can get mirrored too. Spoiler alert, next commit should be the release of v0.4.
2019-11-12 02:51:47 +02:00
OverloadedOrama e6bd897d1f UndoRedo vol 11 - Remove custom brush has UndoRedo
- Removing a custom brush can now be undone and redone.
- Fixed custom brush symmetry on mirrored drawing
2019-11-11 18:41:43 +02:00
OverloadedOrama b1e8bde3ac Import brushes from folder
- A new type of custom brush has been added, brushes from files! Basically there's a "Brushes" folder where Pixelorama can get brushes from, and, unlike the previous brushes, these are for all projects and are not saved in .pxo files. These brushes get loaded on the _ready() method of Main.gd, and are ignored by Godot.
- There are now 2 containers for the two types of custom brushes. The main pixel brush is with the brushes from files.
- Fixed bug where, if you had selected a custom "project" brush and loaded a .pxo file, the brush would still be selected, causing potential problems
- Fixed bug where you could save a project brush that was completely transparent
- Fixed bug where, if you named a file, some shortcuts would be activated.
- export_presets.cfg is now ignored.
2019-11-11 04:20:09 +02:00
OverloadedOrama e825cc03e5 UndoRedo vol 10 - Add/Remove/Clone/Move Frames now have UndoRedo
- UndoRedo for Add/Remove/Clone/Move Frames
- Set functions for frame changes (both on canvases and Global.current_frame)
- Removed unneeded signal methods and put multiple signals on one method instead (for example, add and clone layer button signals both connect to add_layer())
- Fixed bug where, if you opened a .pxo file with multiple frames, the remove frame button would be disabled.
- Probably other small things that I'm forgetting to mention
2019-11-10 03:25:25 +02:00
OverloadedOrama ec7b2129ff UndoRedo vol 9 - Add/Remove/Clone/Move/Merge Layers now have UndoRedo 2019-11-07 00:12:40 +02:00
OverloadedOrama c535ec801a Rename layers, layers & frames are now toggle-able buttons 2019-11-06 18:39:23 +02:00
OverloadedOrama 40e0978b3f UndoRedo vol 8 - Draw while animating should now work with UndoRedo 2019-11-05 18:19:41 +02:00
OverloadedOrama 8bc0879814 UndoRedo vol 7 - New/Open/Import clear history, Crop has undo/redo
- New, Open and Import now clear undo/redo history
- Crop Image now has undo/redo
- Fixed bug where redo wasn't working properly in multiple frames

Found bug when drawing while animating - undo/redo isn't being registered properly.
2019-11-05 03:14:03 +02:00
OverloadedOrama 8fadacdf12 UndoRedo vol 4 - Fixed bug when user drew and the cursor was outside the canvas
Users can now undo/redo when they draw outside the canvas. Release the button outside the canvas, press the button outside the canvas and then bring it inside to draw. All work now. I hope.
2019-11-03 23:07:57 +02:00
OverloadedOrama 04c3173c4c UndoRedo vol 3 - Fixed bug when user clicked both mouse buttons
Drawing outside canvas needs fixing next in our UndoRedo adventure
2019-11-01 01:41:02 +02:00
OverloadedOrama 0d69e45cab UndoRedo - Should work with multiple layers and frames
- UndoRedo should work with multiple layers and frames
- When pressing right click while left click is being pressed, undo/redo logic is being discarded. It is still buggy, however, when the user holds the right click first and then left click, as well as, when the user holds left click, then holds right click, releases left click and then releases right click.
2019-10-31 21:34:42 +02:00
OverloadedOrama 7b8c6bbf00 UndoRedo - Unstable with bugs
Started working on UndoRedo. Currently works with basic drawing/erasing/bucket filling as well as the rectangle selection tool, custom brushes and copying/pasting.

May not work with multiple layers and frames and it does not work with the rest of the tools and buttons. Also does not work when pressing both mouse buttons at the same time, or when the cursor is outside the canvas when drawing.
2019-10-29 23:22:38 +02:00
OverloadedOrama 2b64031786 Merge mirrored drawing and flip 2019-10-24 00:36:22 +03:00
OverloadedOrama 38377e1633 Mirrored drawing
- Mirrored drawing in horizontal, vertical or both axes.
- Fixed bug where the paint all pixels of the same color tool would affect other frames.
- Removed most of the parameters for draw_pixel() - replaced them with "current_mouse_button" instead.
2019-10-24 00:34:08 +03:00
OverloadedOrama c64c3408e8 Added two new tools, Paint all pixels of same color and lighten/darken
- Paint all pixels of same color tool added. Does what it says.
- Lighten/darken tool. It lightens by default, darkens when user is pressing Ctrl.
- Removed tool variables from main - stored everything in an array instead.
2019-10-23 02:54:29 +03:00
OverloadedOrama e18389d8c4 v0.3 - Custom brushes, rectangle selection and .pxo!
v0.3 of Pixelorama is out! Check https://functionoverload590613498.wordpress.com/2019/10/22/pixelorama-v0-3-is-out/ for the full changelog.
2019-10-22 14:27:07 +03:00
OverloadedOrama 420ec63aeb Fixed issue #9 and custom brush cursor indicator position
- Fixed issue #9 where custom brushes would get drawn outside of a rectangle selection. They only get drawn inside the selection, just like the normal pixel brush.
- The custom brush cursor indicator (that follows the mouse cursor position) wasn't aligned with the image's pixels. Now it is.
- Fixed small bug when opening sprites. Had to do with has_focus's initial state.
- Removed Main Theme.tres because it was pointless.
2019-10-03 19:37:31 +03:00
OverloadedOrama eb29cd3268 Brushes now get removed when opening a project, indicators for chosen sprites
- If you had custom brushes in your project and you opened a new one (from a .pxo file), the brushes would stack. Now, the previous brushes get removed.
- Added arrow left and right indicators for the selected brushes.
2019-10-02 21:58:19 +03:00
OverloadedOrama 7ff823f3a5 When a custom brush is selected, it now appears as an indicator at the cursor
Also moved blend_image_with_color() to Global and the custom brush image (resized & blended accordingly with the selected color and interpolation factor) is now updated every time something changes (size, color etc) and not every time you draw. This is not true for the eraser, however, as it must be blended with Color(0, 0, 0, 0)
2019-09-27 20:05:24 +03:00
OverloadedOrama 4e4a526332 Custom brushes, crop image, split screen, about menu & asset re-organizing
- Added support for custom brushes. When you Ctrl-C a selection, it gets added to the list of custom brushes. Each mouse button can have a different brush, and the user can choose whether their color comes from the brush itself or the selected color in the tool options. They can also be resized based on the selected brush size.
- Custom brushes are also being saved on .pxo files.
- You can now crop images (per frame). All layers of that frame are taken into account and are affected.
- Added split screen support. The user can toggle between single screen and split screen, where a second canvas is being shown. Note that you cannot draw on the second canvas.
- Added an About Pixelorama selection on the new Help menu.
- Project assets are re-organized.
2019-09-25 22:59:48 +03:00
OverloadedOrama 62b9278537 Selection can be moved outside the canvas
- Rectangle selection can be created and moved outside the canvas
- Added new View menu for Tile Mode and Show Grid.
- When creating a new canvas, you can now choose a color to fill your new image with
- FPS accepts values with up to 2 decimal points. SpinBox's step is changed from 1 to 0.01
- Fixed errors that occured when the user drew outside the canvas, caused by get_pixel()
- Fixed error that occured when the user was pasting an empty image
- Removed point_in_rectangle_equal() and new_canvas()
2019-09-19 00:10:23 +03:00
OverloadedOrama 2b710afd3b Added rectangle selection tool, copy & paste selection and Tile Mode
- New rectangle selection tool. Hold mouse button to create selection, release to finish it. You cannot draw outside of the selection.
- The selection can be moved around, and if Shift is pressed, selected content gets moved too. Currently cannot be moved outside the canvas.
- You can copy the selection with Ctrl + C, and paste it on a new selection with Ctrl + V.
- Added tile mode. Basically draws the canvas 8 more times in all directions.
2019-09-18 17:47:28 +03:00
OverloadedOrama dd9bfc1c33 Added Onion Skinning & Custom .pxo File
- Onion skinning for animations. Choose past and future steps and toggle blue-red mode.
- Custom .pxo file. If you save your project as a .pxo file, it remembers all of your frames, their layers, brush sizes, brush colors and color palletes!
- Ping-pong loop type. When the animation finishes, it plays backwards.
- Ability to import new frames in the timeline as additions, without deleting the previous frames.
2019-09-14 22:55:33 +03:00
OverloadedOrama 0058edbc4a Changed frame starting point from 0 to 1
Frame UI now start at 1 instead of 0. Also added a "Current frame:" label.
2019-09-10 02:30:43 +03:00
OverloadedOrama 5781c42821 v0.2 - Animation Timeline & UI changes!
v0.2 of Pixelorama is out!
- Added animation timeline. You can add. remove. clone and change order of your frames!
- You can now import multiple images as frames.
- Ability to save individual frames, all frames as multiple files, or all frames as a single file in the form of a horizontal or vertical spritesheet!
- Different frames can have a unique amount of layers and they can be of different sizes.
- Image scaling is now functional.
- Added hints for UI elements.
- A lot of UI changes.
2019-09-10 01:57:46 +03:00
OverloadedOrama 1f80291a4b More UI hints and cursor changes
UI hint for the layer visibility buttons and the cursor shape changes depending on where the user is hovering.
2019-09-04 20:50:05 +03:00
OverloadedOrama 21397fefb2 Brush sizes and grid
- Changed UI layout
- The user can now change brush sizes for both left and right mouse buttons.
- A working grid - thanks to flurick!
2019-09-03 22:51:14 +03:00
OverloadedOrama f647a42752 Initial commit 2019-08-18 12:28:38 +03:00