Similar to 7507206726 but for layers. Layer swapping (with control) only works when one layer is selected. The move up/down buttons in the timeline only work with one layer as of this commit.
This only works for frames at the moment, not layers and cels. Layers may be harder to support because they also have children. Supports both the "move left/right" options and drag and dropping. Frame swapping (with control) only works when one frame is selected, because I am unsure how they should be handled, especially when the selected frames are not continuous.
Didn't encounter any issues on my testing, but more testing is always welcome.
Pixelize makes the image pixelated, and Palettize maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects.
Probably temporary, it might be a good idea to add a third "Data" tab in the export dialog, if we add stuff like exporting to Godot resources, such as AnimatedSprite, AnimationPlayer etc.
Allows users to change project name and add custom user data. I was not sure where to put this, so I put it under the Edit menu. It might be a good idea to add a new "Project" menu in the future, and perhaps Scale Image, Resize Canvas and Crop to Content/Selection could be placed there, as they always affect the entire project.
Speeds up the initial loading time of Pixelorama. It's now almost as fast as 0.x on my computer (a bit more than 2 seconds). Lazy loading the preferences dialog also drastically reduces memory usage and node count (when preferences have not been opened), from 150MB, 13634 objects and 3680 nodes, to 94MB, 8207 objects and 1823 nodes. This essentially cuts the initial node count to half!
The preferences code only handles the UI related stuff, while the Themes autoload is now solely responsible for theme adding, removing and changing. This makes it possible to handle themes without having the preferences dialog be in the middle.
The preferences code only handles the UI related stuff, while HandleExtensions is now solely responsible for extension enabling, loading and uninstalling. This makes it possible to handle extensions without having the preferences dialog be in the middle.
* Add Flip X, Flip Y, Rotate 90, Rotate 180, Rotate 270
* node placement
* flip_rotate for BrushButton
* flip corrected for BrushButton (x, y was reversed)
* code changed for github static checks
* github static checks
* github static checks 2
* remove " _ " before my variable name
hope this was the problem
* var brush_texture_rotation
* Hide Flip/Rotate buttons where it is unnecessary
* btns flip/rotate hide when a non-image brush is selected
* rotate ButtonGroup (radio btn)
* expand button for flip/rotate
* radio btn grp 2
* expand button (forgot to add the tscn )
* cursor shape to pointing hand
* tooltip R90 R180 R270
i dont add txt to the Translations.pot bc not sure to understand and dont want to make mistake
* shading.tscn (nodes placement debreaking)
back as before
* Revert "expand button (forgot to add the tscn )"
This reverts commit 3062afe73f.
* Revert "expand button for flip/rotate"
This reverts commit 51189ac793.
* Collapsible Container
change "expend buton" to the pixelorama custum node "CollapsibleContainer"
* remove thick white outline when CollapseContainer is pressed and focus
* styleboxflat when CollapseContainer is pressed and empty for checkbox
* Revert "styleboxflat when CollapseContainer is pressed and empty for checkbox"
This reverts commit 0af0e1f427.
* StyleboxEmpty for normal / keep hover unchanged
* Revert "StyleboxEmpty for normal / keep hover unchanged"
This reverts commit 14b3745053.
* Revert "remove thick white outline when CollapseContainer is pressed and focus"
This reverts commit b80ab1ad5c.
* "flip_rotateD" + "Flat CollapsibleContainer'"
* conflicts Resolved
signal color_changed(color: Color, button: int)
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
The previous backup code was unnecessarily complicated, hard to read/understand and prone to errors. The new system simply stores the save and backup paths in the `Project` class, and stores the backup files inside `user://backups`, instead of having their file paths be in `cache.ini`.
This makes the visible/lock/linked/expand buttons more clear that they are indeed buttons. This commit also slightly changes the look of child layers, as they only appear intended and they no longer change color.
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.
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.
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.
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.