Manolis Papadeas
8a3414f83a
Use L8 format for selection texture
...
Instead of LA8. This should result in slightly less memory usage and is more on par with Godot's BitMap "convert_to_image" method, which will be exposed in Godot 3.5.
2022-03-23 01:48:58 +02:00
Manolis Papadeas
8624ed6da8
Fix macOS shortcuts
2022-03-22 01:48:14 +02:00
Manolis Papadeas
9648b48a96
Remove empty project when importing an image
...
This should no longer keep empty canvases when importing images
2022-03-21 23:33:45 +02:00
Manolis Papadeas
4cf9c57e84
Don't reset export status when a pxo is saved
2022-03-21 23:07:57 +02:00
Manolis Papadeas
57729ef4e9
Move Moveable Panels to the Panels submenu
2022-03-21 18:04:26 +02:00
Manolis Papadeas
bf98dd18e6
Remove the "Palettes" label from the Palettes panel
2022-03-21 16:24:03 +02:00
Manolis Papadeas
1c3103e06b
Scale custom cursor with UI size - closes #642
2022-03-21 02:24:13 +02:00
Manolis Papadeas
0e79138d87
Another canvas texture optimization + bug fix with resizing
2022-03-20 18:52:48 +02:00
ArthyChaux
9e5db16994
Optimize canvas texture updates ( #661 )
...
In this line, a new texture is generated each time the canvas is updated it seems :
But it is mentionned in the documentation to use `void set_data(image: Image)` instead for slightly faster results, which updates the texture instead of creating a new one.
I hope that it is relevant !
Also, if it is approved, this change should be applied to everywhere it is used (except when initializing the texture)
2022-03-19 19:21:07 +02:00
Manolis Papadeas
9411f37a47
Add a confirmation dialog when deleting a layout
2022-03-18 04:21:38 +02:00
Manolis Papadeas
9128b455e6
Transparent canvas now works properly with scaled UI
2022-03-18 01:08:00 +02:00
Manolis Papadeas
dbc8873d17
[skip ci] Update translations
2022-03-18 00:17:53 +02:00
Manolis Papadeas
4059cb018b
In ResizeCanvas, always set the spinbox values to the current project size
2022-03-18 00:07:40 +02:00
Manolis Papadeas
790cd8533a
Changes to ManageLayouts dialog
2022-03-18 00:03:53 +02:00
Manolis Papadeas
21b4f3369f
Select layer when clicking a layer button (visible, lock, etc)
2022-03-17 00:12:00 +02:00
Manolis Papadeas
bffc36a018
Change Layout menu and rename Edit Mode to Moveable Panels
2022-03-16 00:30:24 +02:00
Manolis Papadeas
ea78114fb2
[skip ci] Update README.md
2022-03-13 21:16:09 +02:00
Manolis Papadeas
5d3963d495
Make panel tabs always visible if there are 2 or more tabs in a single panel
2022-03-12 20:46:17 +02:00
Manolis Papadeas
6d641259d5
Make it possible for extensions to add menu items
...
With metadata
2022-03-11 01:59:12 +02:00
Manolis Papadeas
f2a24aaffd
Set grayscale vision node properties instead of in code
2022-03-11 01:48:50 +02:00
Manolis Papadeas
5995788ef7
Update donors & translators
2022-03-11 00:45:48 +02:00
Manolis Papadeas
c00aac944e
Translate the panel tab names
2022-03-10 19:17:28 +02:00
Emmanouil Papadeas
c374e5805e
New Crowdin updates ( #638 )
...
* New translations Translations.pot (Russian)
* New translations Translations.pot (German)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Korean)
* New translations Translations.pot (French)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Danish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (German)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Korean)
* New translations Translations.pot (French)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Danish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Korean)
* New translations Translations.pot (French)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Danish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Korean)
* New translations Translations.pot (French)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Danish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Korean)
* New translations Translations.pot (German)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Vietnamese)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Chinese Simplified)
* New translations Translations.pot (Chinese Traditional)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Dutch)
* New translations Translations.pot (Indonesian)
* New translations Translations.pot (Latvian)
* New translations Translations.pot (Hindi)
* New translations Translations.pot (Esperanto)
* New translations Translations.pot (Malayalam)
* New translations Translations.pot (Sinhala)
* New translations Translations.pot (Polish)
* New translations Translations.pot (Korean)
* New translations Translations.pot (French)
* New translations Translations.pot (Czech)
* New translations Translations.pot (Turkish)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Afrikaans)
* New translations Translations.pot (Arabic)
* New translations Translations.pot (Catalan)
* New translations Translations.pot (Danish)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Finnish)
* New translations Translations.pot (Hebrew)
* New translations Translations.pot (Hungarian)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Japanese)
* New translations Translations.pot (Romanian)
* New translations Translations.pot (Greek)
* New translations Translations.pot (German)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Italian)
* New translations Translations.pot (Greek)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Ukrainian)
* New translations Translations.pot (Korean)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Spanish)
* New translations Translations.pot (Russian)
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (Serbian (Cyrillic))
* New translations Translations.pot (French)
* New translations Translations.pot (French)
* New translations Translations.pot (French)
* New translations Translations.pot (French)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Portuguese)
* New translations Translations.pot (Portuguese, Brazilian)
* New translations Translations.pot (Swedish)
* New translations Translations.pot (Norwegian Bokmal)
* New translations Translations.pot (Norwegian Bokmal)
2022-03-08 23:09:40 +02:00
Manolis Papadeas
294738e48a
Disable "From Current Palette" preset option when creating a new palette, if there is no current palette
...
Fixes #659
2022-03-07 19:33:23 +02:00
Manolis Papadeas
07473bea95
Update UI.gd
2022-03-06 00:15:25 +02:00
Manolis Papadeas
1ae9f41dc7
[skip ci] Update CHANGELOG.md
2022-03-05 18:17:34 +02:00
Manolis Papadeas
6b02442201
[skip ci] Use the old release naming scheme and fix Windows itch.io builds not having the pixelorama_data folder
2022-03-04 21:32:40 +02:00
Variable
57ea4d25f1
Draw optimizer ( #657 )
...
* draw optimizer
* improvements
* some memory improvements
don't think this one's needed but doing it just in case...
* formatting
* add limit change with brush
* fixed a small bug
cache was being kept when frames were changed
* formatting
* change `_cache_limit` on changing `_brush_size`
2022-03-03 14:54:27 +02:00
Manolis Papadeas
ce026395df
Remember layout on app exit
2022-03-02 00:41:22 +02:00
Manolis Papadeas
2f9de65805
Zen mode no longer makes invisible elements visible again
2022-03-02 00:01:28 +02:00
Manolis Papadeas
175eb0b250
Set minimum size in tools, tool options and timeline
2022-03-01 21:39:07 +02:00
Manolis Papadeas
da34f0ae7b
Center the global tool options
2022-03-01 02:16:53 +02:00
Manolis Papadeas
092ddc0a7a
Fix crash when we change a non-existant texture in a TextureRect
...
This should never happen, but just in case.
2022-02-28 20:40:13 +02:00
Manolis Papadeas
cce9161122
[skip ci] Update CHANGELOG.md
2022-02-28 20:39:21 +02:00
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