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

1815 commits

Author SHA1 Message Date
Manolis Papadeas 68414f5bd9 Made pixel perfect into a global tool option
More global tool options will most likely be added soon, most notably tablet pen pressure sensitivity options.
2022-02-28 19:24:14 +02:00
Manolis Papadeas b316cadfb8 Separate global tool options from the color pickers 2022-02-28 18:59:30 +02: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 e05ee53839 Fix mirror button textures having the opposite file name 2022-02-26 19:50:43 +02:00
Variable de2d7b7748
A simple id for extensions (#653)
* A simple id for extensions

A simple id system for extensions using the benefit of groups

* formatting
2022-02-26 16:14:13 +02:00
Variable 906123bab1
Sync import options (#624)
* sync import options (1/2)

* sync import options (2/2)

* resolve format check

* a minor improvement +

some code formatting

* some more formatting

* Some  more formatting

...the checks becoming a pain...

* again you guessed it!

CODE FORMATTING

* used checkbutton instead of simple button

* formatting
2022-02-25 16:08:11 +02:00
Manolis Papadeas 8e126c3bab Load shaders by dragging and dropping and support hint_range values
This is for the experimental shader feature, which isn't exposed to the user yet.
2022-02-24 03:38:13 +02:00
Manolis Papadeas d4373a680b Use preload on the tool scenes again
This makes the initial app load time fast again, as it used to be before the tool logic changes. The code is uglier to read now but it's worth it.

Also optimize update_tool_cursors()
2022-02-23 00:10:16 +02:00
Manolis Papadeas 63a9f2485c Support tools that don't have shortcuts
Might be useful for Extensions that add tools and for the future where we allow users more freedom with shortcut binding, including unbinding shortcuts.
2022-02-22 23:38:47 +02:00
Manolis Papadeas 77f598d969 Added remove_tool() method in Tools
May be useful for extensions that add new tools
2022-02-22 02:58:52 +02:00
Manolis Papadeas 4d3cb86800 Change the look of the mirror buttons 2022-02-21 20:04:39 +02:00
Manolis Papadeas 200d1c73a1 Add a clear_color property to the themes 2022-02-21 18:44:46 +02:00
Manolis Papadeas add9ba926e Remove pre-set tool button nodes, tool setup now being done only in the Tools singleton
Now when making a new tool we only have to set it up in Tools.gd, along with its button and cursor textures and its tool options scene. Previously, we also had to put it in ToolButtons.gd and manually create a button in Tools.tscn
2022-02-21 18:02:02 +02:00
Manolis Papadeas 5bf9da243f Add the Extensions parent node to Main.tscn 2022-02-21 15:46:08 +02:00
Manolis Papadeas 8d0418fe21 Don't do anything if the user adds an already existing extension
The .pck file gets replaced but changes will only be visible on app restart, as there's no way (I think) to unload and then reload the .pck file.
2022-02-21 03:33:05 +02:00
Manolis Papadeas 375f3d4cb6 Implement a basic extension system
Importing .pck or .zip Godot resource pack files into Pixelorama is now possible. This needs to be documented properly, but here's the basic idea, for now at least. This is super early work and I haven't tested it with a proper extension yet, so all of this could be a subject of change. I tested it with a custom theme extension though and it seems to be working perfectly.

Importing resource pack files, either by dragging and dropping them into the app window or by going to Edit>Preferences>Extensions>Add Extension, copies the files into user://extensions/. Extensions can be enabled/disabled and uninstalled. Uninstalling them deletes the resource pack files from user://extensions/.

The extension project source files need to be in a folder inside src/Extensions/ with the same name as the .pck or .zip file. **This is required for now, otherwise it will not work.** Inside that folder there also needs to be an extension.json file, with a structure similar to this:

{
	"name": "ExtensionName",
	"display_name": "Extension Name",
	"description": "A Pixelorama extension",
	"author": "Orama Interactive",
	"version": "0.1",
	"license": "MIT",
	"nodes": [
		"ExtensionExample.tscn"
	]
}

The `nodes` array leads to the packed scene files with the nodes that are to be instantiated. **The root nodes of these scenes need to have the same name as the .tscn files they belong to.** The scripts of these nodes should have _enter_tree() and _exit_tree() methods to handle the extension enabling/disabling (or even uninstalling) logic. Note that .json files need to be included in the export options while exporting the extension from Godot.

Enabling an extension means that the scenes found in the extension.json's "nodes" array get instantiated, and disabling gets rid of these nodes from Pixelorama's SceneTree.
2022-02-19 03:21:08 +02:00
Manolis Papadeas bafcb2620a Tidy up preferences code
Use a Preference class instead of a nested array. Lines of code reduced from 461 to 330. Also fixed a minor bug in the Web version where, when the user changed language, "Interface" was being selected instead.
2022-02-18 01:47:05 +02:00
Manolis Papadeas d37d3c5d3d Even more theme code tidying 2022-02-17 20:57:54 +02:00
Manolis Papadeas 71dcb9807d Theme code cleaning and tidying 2022-02-17 20:36:10 +02:00
Manolis Papadeas 290e8cdb18 Remove mirror nodes from the tool scenes 2022-02-17 16:12:07 +02:00
Manolis Papadeas 93622d5761 Mirroring buttons now affect both left & right tools 2022-02-17 16:07:03 +02:00
Manolis Papadeas 9e7748d2ec Fix rare issue where the splash screen never appears and the program is unresponsive 2022-02-17 15:22:34 +02:00
Manolis Papadeas 8b53773d2d Split View menu into View and Window menus 2022-02-17 00:54:09 +02:00
Manolis Papadeas a7110e4be4 Change documentation shortcut to F1
F1 is commonly used for help in most software.
2022-02-17 00:28:23 +02:00
Manolis Papadeas e0d2393eb2 Fix crash when importing .tres files that are not palettes 2022-02-16 18:23:32 +02:00
Variable 008683a33a
Novhack fill shader (#649)
* Get same color pixels shader (#2)

* Replace same color pixels bucket code with a shader

* Add pattern fill

Co-authored-by: novhack <42614907+novhack@users.noreply.github.com>

* formatting

* some minor changes and fixed a bug

* added similarity feature

* formatting

* Update Bucket.gd

* added similarity feature in shader

Co-authored-by: novhack <42614907+novhack@users.noreply.github.com>
2022-02-16 00:15:53 +02:00
Manolis Papadeas 196c5c2d5d Make the second canvas a separate panel and have it hidden by default 2022-02-15 01:48:49 +02:00
Manolis Papadeas a29aadd519 Use deferred mode for gradient color pickers - Closes #645 2022-02-14 15:37:18 +02:00
Manolis Papadeas 88578fe260 Set the min size of the tools to be a bit smaller 2022-02-13 00:12:47 +02:00
Manolis Papadeas d26d1e294b Fix cursor always being a cross on the canvas even if it's toggled off 2022-02-12 04:25:08 +02:00
Variable f7e866e9cb
Shader vision - Grayscale view (#646)
* ShaderVision Funcionality

* reference to ShaderVision

* Greyscale shader

* A minor code improvement

* decided on a checkbox

* decided on a checkbox

i foresaw the earlier implementation isn't required so i decided on a checkbox

* removed unneeded code

* reverted a mistake commit

* Update TopMenuContainer.gd

* Precieved Brightness
2022-02-12 00:47:26 +02:00
Variable 25fd6026be
Move Guides without moving mouse outside canvas (#647)
* guide movement enhancement

* Gave more access to pan tool

* Update Guide.gd

* Update Guide.gd

* Update Tools.gd
2022-02-11 03:16:33 +02:00
Manolis Papadeas 74df57ed70 Add extra cursor options to the Preferences
Changes "Indicators" to "Cursors" and adds options that let the user use the native mouse cursors of the OS and toggle the cross cursor on or off for the canvas
2022-02-10 22:32:55 +02:00
Manolis Papadeas 1285fa89c5 Added a Scrollcontainer in the timeline
This fixes the issue with the timeline UI nodes affecting the rest of the panels if the timeline becomes too small. Kind of an ugly fix because there can now be two scrollbars visible if there are many frames, eventually we may need to redesign the timeline.
2022-02-10 19:15:57 +02:00
Manolis Papadeas a3e933cf4f Fix a bug where the selection got stuck to the canvas boundaries when they were 1px away from them 2022-02-09 16:14:16 +02:00
Manolis Papadeas a331d697ed Move some variables in AnimationTimeline
No functional changes
2022-02-07 18:10:29 +02:00
Manolis Papadeas 4fe65fabf7 Rename "Dockers" to "Panels" and update Translations.pot 2022-02-07 01:18:19 +02:00
Manolis Papadeas 8394f252f7 Implemented a system that lets the user make and delete their own UI layouts
Layouts are being saved as .tres files in user://layouts
2022-02-06 01:49:54 +02:00
Manolis Papadeas 26d5b8de40 Added MysteryStudio to the splash screen 2022-02-05 23:50:02 +02:00
Manolis Papadeas 1dd7d23682 Minor timeline UI fix 2022-02-04 17:03:57 +02:00
Manolis Papadeas ad9d8cfdbc Properly fix the palette panel initialization issue
And remove the hacky way. The issue is that the swatches were being created and then queue_freed at the end of the frame and not immediately.
2022-02-03 19:57:53 +02:00
Manolis Papadeas f96879012d Fix orphan node 2022-02-03 02:41:14 +02:00
Manolis Papadeas 0893a5b481 Added frame duration appear in the frame button tooltips
Code provided by @Variable-ind
2022-02-02 18:14:16 +02:00
Manolis Papadeas 13229031ed Turn zen mode off when switching between layouts 2022-02-02 02:51:43 +02:00
Variable 4369869e1f
Some Popup changes and added Self Awareness ;) (#644)
* Some Popup changes and added self awareness

start/end is automatically determined by selected cels boundary

* Update FrameTagDialog.gd

* some more code formatting
2022-02-02 00:40:37 +02:00
Manolis Papadeas 12b64316da Added layout selection
Users can currently select between Default and Tallscreen
2022-02-01 02:31:13 +02:00
Manolis Papadeas cbae8bdc77 Put a ScrollContainer in the tool bar 2022-02-01 00:54:33 +02:00
Manolis Papadeas c7649bc061 Save toolbar as a separate scene 2022-01-31 19:01:55 +02:00
Manolis Papadeas 7e9d9a6a73 Make layer button container change color based on theme
Also removed unneeded node from AnimationTimeline
2022-01-31 18:25:52 +02:00
Manolis Papadeas f6af11dd4d Added Roboto font to the Purple theme 2022-01-31 03:12:42 +02:00