Commit graph

5956 commits

Author SHA1 Message Date
Aaron Franke
e3cf64a7d8
[3.2] Add GLTF light import
Co-authored-by: K.S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2020-06-10 23:51:34 -04:00
Rémi Verschelde
7bf9787921 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.

(cherry picked from commit cd4e46ee65)
2020-06-10 15:30:52 +02:00
Michael Alexsander
5495bbdd47 Fix scene tree showing up when the root selection is present
(cherry picked from commit f30e4dbf54)
2020-06-10 15:30:52 +02:00
Phischermen
12786bcbdb Fix crash when creating new text file with no name
(cherry picked from commit cdb29447b4)
2020-06-10 15:30:52 +02:00
Hugo Locurcio
317c9b5fe9 Tweak the invalid preset error message to mention export_presets.cfg
(cherry picked from commit a7b2f3d41a)
2020-06-10 15:30:52 +02:00
Rémi Verschelde
f3fcdfbdd0 PackedScene: Prevent crash when root node has parent attribute
The crash happens further down when setting an invalid owner in
`Node::_set_owner_nocheck` but I couldn't figure out how to fix it.

But here the proper fix is to catch the invalid scene file early on
and fail loading it.

Part of #17372.

(cherry picked from commit c080ec5da2)
2020-06-10 15:30:52 +02:00
Aaron Franke
0b6a410890 Change the default editor camera rotation to position it in +X +Y +Z
(cherry picked from commit 6c2df6792b)
2020-06-10 15:30:52 +02:00
Hugo Locurcio
eb6c7ec09c Add an editor tooltip to document gizmo visibility options
See discussion in
https://github.com/godotengine/godot-proposals/issues/716.

(cherry picked from commit 138a4eecb3)
2020-06-10 15:30:52 +02:00
PouleyKetchoupp
c63c902c74 Fix dialog spam when inspecting MeshInstance from model file
Avoid load_scene for built-in resources to make sure we don't
open a scene tab and prompt for model file editing.

Load scene as regular resource instead and store the reference to keep
the dependency until the remote inspector cache is cleared.

(cherry picked from commit 01802074a0)
2020-06-10 15:30:51 +02:00
Hugo Locurcio
6e8b5aff66 Add visual feedback when hovering layer checkboxes in the Inspector
This also changes how checkboxes are selected, which makes it possible
to click in the small area between two checkboxes and
still toggle a value successfully (which is arguably less frustrating).

(cherry picked from commit bbc435624f)
2020-06-10 15:30:51 +02:00
Rémi Verschelde
e891fae52b
Merge pull request #39134 from abustin/fbx_mesh_compression_fix
Respect 'mesh compression' editor import option in Assimp and glTF importers
2020-06-08 13:16:39 +02:00
Marcus Brummer
f8463df11a Re-apply basis of newly added node (via drag-n-drop) in editor viewport 2020-06-07 19:34:17 +02:00
Tomasz Chabora
24872bffce Make sure built-in script warning fits in dialog 2020-06-05 14:40:08 +02:00
Marcus Brummer
6ef0de3f23 Enable text selection in execute output of EditorNode
(cherry picked from commit 85175c67b8)
2020-06-05 12:46:16 +02:00
johan
48a4f7e3a7 2D Editor: modified zoom increment to the twelveth root of two
- properly visit power of 2 factors (50%, 100%, 200%...)
- index based zoom values to prevent floating point issues
- Fix 2d editor not able to reach min and max zoom values

(cherry picked from commit fea6ca20c9)
2020-06-05 12:44:45 +02:00
Michael Alexsander
2ba67d94e8 Add fallback icons and make custom ones appear in the recent/favorites list in the "Create New" dialog
(cherry picked from commit 84d7492b2d)
2020-06-04 12:16:40 +02:00
Hugo Locurcio
b0fe8cab14 Tweak the import compression property hint for clarity
(cherry picked from commit 1439447071)
2020-06-04 12:16:39 +02:00
Pedro J. Estébanez
b2a64b144f Fix excessive bottom cropping in atlas generation
(cherry picked from commit fb7ae73045)
2020-06-04 12:16:39 +02:00
Aaron Franke
7021991cd9 Change OK text in snap dialog to OK
(cherry picked from commit 8f85858224)
2020-06-04 12:16:39 +02:00
Eric M
f911ebc328 Improved warning shown when autoload cannot be added.
(cherry picked from commit 58caa2c453)
2020-06-04 12:16:39 +02:00
Hugo Locurcio
9e01a0cd28 Add a getter and property for the editor distraction-free mode
(cherry picked from commit cc1859efed)
2020-06-04 12:16:39 +02:00
Andrii Doroshenko (Xrayez)
3649c61e46 Prevent crash attaching a script with no languages registered
(cherry picked from commit 52f3cfca6f)
2020-06-04 12:09:40 +02:00
Hugo Locurcio
6ea9ca14f0 Allow mouse zooming without hovering the texture in the TileSet editor
This partially addresses
https://github.com/godotengine/godot-proposals/issues/968.

(cherry picked from commit d10a5b2928)
2020-06-04 12:09:40 +02:00
Hugo Locurcio
6bbfed6400 Implement zooming using Ctrl + Mouse wheel in the TileMap editor
This was previously implemented in the GridMap editor. This makes
the same feature available in the TileMap editor.

(cherry picked from commit def2059d67)
2020-06-04 12:09:40 +02:00
Dominik 'dreamsComeTrue' Jasiński
fdf64b1898 Preserving "Sync Scene Changes' and "Sync Script Changes" with Project Settings
Fixes: #38739
(cherry picked from commit 72501ae104)
2020-06-04 12:09:40 +02:00
Dominik 'dreamsComeTrue' Jasiński
982ab51f2f Grabbing focus on ProjectList after clicking an item.
Fixes: #39012
(cherry picked from commit 1ec8f59397)
2020-06-04 12:09:40 +02:00
Rémi Verschelde
fa0cf25e19 Add shortcut for Pan Mode (G)
And change TileMap Bucket Fill shortcut to (B).

Fixes #8582.

(cherry picked from commit 28b33718b0)
2020-06-04 12:09:39 +02:00
Hugo Locurcio
e226947e21 Improve the text appearance in the script editor warnings panel
- Make the Ignore button's position identical across all warnings
  by moving it to the left.
- Change the Ignore button's text and color to make it more obvious
  that it can be clicked.
- Use the editor font instead of the default project font to match
  the rest of the editor.

(cherry picked from commit 0c0ee427d2)
2020-06-04 12:09:38 +02:00
Alex Bustin
8a024ca294 Respect 'mesh compression' editor import option in Assimp (ie. FBX) and glTF importers 2020-05-28 15:28:47 -07:00
Rémi Verschelde
7c332d9386
Merge pull request #39040 from Xrayez/modules-search-path-3.2
[3.2] Add `custom_modules` build option to compile external user modules
2020-05-25 17:02:27 +02:00
Tomasz Chabora
800dceee52 Reverse mouse wheel in animation track editor
(cherry picked from commit f4c6bb568e)
2020-05-25 16:38:02 +02:00
Dominik 'dreamsComeTrue' Jasiński
cf311f3e79 Fix moving 2D node with mouse after using arrow keys
Fixes: #38894
(cherry picked from commit 03b54f8a35)
2020-05-25 16:33:58 +02:00
Paul Joannon
66e00a2670 check the params section exist before erasing it in import_dock
related #38864

(cherry picked from commit b7a6946790)
2020-05-25 16:32:05 +02:00
Andrii Doroshenko (Xrayez)
133997654c Add custom_modules build option to compile external user modules
This patch adds ability to include external, user-defined C++ modules
to be compiled as part of Godot via `custom_modules` build option
which can be passed to `scons`.

```
scons platform=x11 tools=yes custom_modules="../project/modules"
```

Features:

- detects all available modules under `custom_modules` directory the
same way as it does for built-in modules (not recursive);
- works with both relative and absolute paths on the filesystem;
- multiple search paths can be specified as a comma-separated list.

Module custom documentation and editor icons collection and generation
process is adapted to work with absolute paths needed by such modules.
Also fixed doctool bug mixing absolute and relative paths respectively.

Implementation details:

- `env.module_list` is a dictionary now, which holds both module name as
  key and either a relative or absolute path to a module as a value.
- `methods.detect_modules` is run twice: once for built-in modules, and
  second for external modules, all combined later.
- `methods.detect_modules` was not doing what it says on the tin. It is
  split into `detect_modules` which collects a list of available modules
  and `write_modules` which generates `register_types` sources for each.
- whether a module is built-in or external is distinguished by relative
  or absolute paths respectively. `custom_modules` scons converter
  ensures that the path is absolute even if relative path is supplied,
  including expanding user paths and symbolic links.
- treats the parent directory as if it was Godot's base directory, so
  that there's no need to change include paths in cases where custom
  modules are included as dependencies in other modules.

(cherry picked from commit a96f0e98d7)
2020-05-25 17:08:38 +03:00
Michael Alexsander
3d8cc49ec5 Keep "lock" metadata when changing a Node's type, if applicable
(cherry picked from commit d015e4d6fc)
2020-05-20 11:43:49 +02:00
Eduardo Nunes Pereira
05cd3ff8ba Using command + comma on macOS as default shortcut for editor settings
(cherry picked from commit 75f77f751e)
2020-05-18 16:40:33 +02:00
Fredia Huya-Kouadio
a71a338c59 Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
Dominik 'dreamsComeTrue' Jasiński
51a1a27457 Hide editor_spin_slider grabber when closing Editor's windows
Fixes: #38740
(cherry picked from commit 095167dcc3)
2020-05-16 00:08:37 +02:00
Rémi Verschelde
0556a48bf9
Merge pull request #38752 from Calinou/rename-error-warning-icon
Rename the ErrorWarning icon file to match the 3.2 naming scheme
2020-05-15 18:03:05 +02:00
Hugo Locurcio
fa279d02f7 Rename the ErrorWarning icon file to match the 3.2 naming scheme 2020-05-15 14:16:46 +02:00
Hugo Locurcio
e22cff8ccf Update the editor icons README to remove outdated information
This closes #38684.

(cherry picked from commit c6afb9f6ea)
2020-05-13 16:12:22 +02:00
Hugo Locurcio
6692681618 Tweak the error message displayd when a post-import script fails
See #38662.

(cherry picked from commit 0d7b627936)
2020-05-13 16:12:03 +02:00
Hugo Locurcio
0b6bcf90f5 Rename the editor action "Revert Scene" to "Reload Saved Scene"
This option can be used to workaround various issues with stuff
not reloading properly when changes are made.
The option was renamed to clarify the fact that it actually
reloads the scene saved on the filesystem.

(cherry picked from commit 2962819d1c)
2020-05-13 16:09:38 +02:00
nathanwfranke
814f72c524
Fix rename dialog size in 3.2 2020-05-12 18:34:00 -05:00
Hugo Locurcio
c1cf8a5068 Tweak the editor log selection color to match the current editor theme
This overrides the default blue color.

(cherry picked from commit 411af2c750)
2020-05-11 11:39:35 +02:00
Hugo Locurcio
b1455c68eb Rename the Clear Script editor action to Detach Script
This makes it more obvious that the script won't be modified
in any way.

See comments in #27813.

(cherry picked from commit 7fc0e38e92)
2020-05-11 11:38:22 +02:00
Hugo Locurcio
d7f1a43d1a Use a different icon for the debugger tab with both warnings and errors
This makes it possible to see if both errors and warnings were
pushed without having to open the tab.

(cherry picked from commit 564f8ccc13)
2020-05-11 11:35:07 +02:00
JFonS
9828c6bc86 Keep mouse inside 3D viewport rotation widget
Hide and keep the mouse in place when the user oribts the scene via the 3D
rotation widget.

(cherry picked from commit 051f02a3a0)
2020-05-11 11:01:13 +02:00
Thakee Nathees
7d931bad58 rotation gizmo visible = false; when camera preview
(cherry picked from commit 60d67f13da)
2020-05-11 11:01:13 +02:00
janglee
d16abbdee4 Improved go-to definition (Ctrl + Click)
Co-Authored-By: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
(cherry picked from commit be7a353c70)
2020-05-11 09:33:21 +05:30
Eric M
b7fbdf4bed Updated editor spin slider to have better behaviour and adjusted control's size_flags_stretch_ratio value range
(cherry picked from commit 915ab50673)
2020-05-06 23:30:28 +02:00
Eric M
d744f4a678 Stopped trying to revert to default values when script implementation of property_can_revert exists
(cherry picked from commit 27ada5c114)
2020-05-06 23:29:08 +02:00
Rémi Verschelde
6d39af42a0
Merge pull request #38477 from Chaosus/vs_canvas_input_fixes
(3.2) Some fixes for canvas item visual shader inputs
2020-05-05 16:38:50 +02:00
Rémi Verschelde
00b5663782 i18n: Sync translations with Weblate 2020-05-05 16:05:12 +02:00
Yuri Roubinsky
1f89c3bfeb (3.2) Some fixes for canvas item visual shader inputs 2020-05-05 12:21:25 +03:00
Dominik 'dreamsComeTrue' Jasiński
2524ed4242 Proper naming and ordering when Duplicate nodes
Fixes: #38162
(cherry picked from commit 278259b433)
2020-05-04 16:10:22 +02:00
MrRevington
fcb6bd7611 Add AtlasTexture support in SpriteFrames Editor - Add Frames from a Sprite Sheet
(cherry picked from commit 13770ac08d)
2020-05-01 10:57:28 +02:00
Hugo Locurcio
cfd6bc7267 Don't focus the selection after using Align Transform With View
It made minor adjustments difficult as the camera moved every time
Align Transform With View was used.

This closes #36738.

(cherry picked from commit a636631e33)
2020-05-01 10:56:58 +02:00
Tom Evans
1f970670b7 Fixed shuffling editor help tabs
The indexes for the ScriptEditorItemData entries were not getting
updated after sorting. This would cause a page to be open but with a
different tab selected. Whenever _update_script_names was called next,
it would correct this indexing. Now we correct it immediately following
the tab sort.

(cherry picked from commit fe53c1b0bd)
2020-05-01 10:56:58 +02:00
Rémi Verschelde
5f5ef98832 glTF: Fix tangent generation for non-blend shapes
PR #30877 was bogus as it made a blend shape-specific code block apply
to everything but blend shapes (as it seemed not to work properly *for*
blend shapes).

The proper fix should thus be to simply remove the problematic
block (and thus cleanup unnecessary logic).

Fixes #32712.

(cherry picked from commit 0034c88c57)
2020-05-01 10:56:58 +02:00
Shivansh Anand
5f21a5b9e3 Make Quick Open substring match more specific.
When finding a substring, the rating is biased towards substrings
at the end of the path.

Fixes #33504.

(cherry picked from commit 8c66d80099)
2020-05-01 10:56:57 +02:00
Rémi Verschelde
8d93303483
Merge pull request #37863 from ExpiredPopsicle/culling5
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
Kiri Jolly
bac44ee19f Fixed false positives in the culling system.
This fixes numerous false positives coming out of the culling system.

AABB checks are now a full separating-axis check against the frustum, with the points of the frustum being compared to the planes of the box just as the points of the box were being compared to the planes of the frustum. This fixes large objects behind the camera not being culled correctly.

Some systems that used frustums that were (sometimes mistakenly?) unbounded on one or more side have been modified to be fully enclosed.
2020-04-28 17:14:06 -07:00
Rémi Verschelde
ae958b89ab i18n: Sync translations with Weblate 2020-04-27 10:32:51 +02:00
Hugo Locurcio
93ba25cfcb Improve path search behavior discoverability in the project manager
This closes #38185.

(cherry picked from commit 72da1667e0)
2020-04-27 10:17:08 +02:00
Michael Alexsander
de4c75af10 Fix crash when changing time value of multiple animation keys at once via inspector
(cherry picked from commit b081e954cc)
2020-04-27 10:15:39 +02:00
Hugo Locurcio
93555d9ccc Add editor freelook navigation scheme settings
Depending on what one is trying to achieve, a different freelook mode
may be more desirable.

This closes #34034.

(cherry picked from commit 8a48fb3517)
2020-04-27 10:12:55 +02:00
Pedro J. Estébanez
5cb2cfe655 Add ability to export VRAM usage as CSV 2020-04-24 09:22:36 +02:00
dankan1890
a5bbd13794 Fixed output prints " Signal 'node_removed' is already connected " when the editor settings window is closed.
Close #38012

(cherry picked from commit ef08e64afb)
2020-04-23 11:13:33 +02:00
jfons
add8d1b9df Update Joint gizmos automatically
(cherry picked from commit 3e77b6d49d)
2020-04-23 11:07:32 +02:00
Rémi Verschelde
253fc093b8 DocData: Skip unexposed classes
Properly expose classes that we actually want accessible.

(cherry picked from commit 0ef8bcac4d)
2020-04-21 14:15:34 +02:00
Rémi Verschelde
471a5abbf3 i18n: Sync translations with Weblate 2020-04-16 13:05:22 +02:00
Hugo Locurcio
679474c576 Tweak the built-in script naming for resources with custom names
This makes the script name appear before the scene file name,
which ensures it's always visible even if the list of scripts is too
narrow to display the full name.

This only impacts built-in scripts with custom resource names.
Unnamed resources will still use `<scene_file>::<id>` naming
in the list of scripts.

(cherry picked from commit e90beade15)
2020-04-16 12:57:22 +02:00
Eric M
e2c9cbb79f Added selection outline to locked nodes.
(cherry picked from commit 7f5fb73146)
2020-04-16 12:57:22 +02:00
Yuri Sizov
ad1c7a53d9 Added missing LinkButton colors in Editor Theme
(cherry picked from commit 0671d7b276)
2020-04-16 12:47:18 +02:00
janglee
f10d2affb0 Reversed timeline zoom slider
Fixes #37409

(cherry picked from commit 3f23e1d600)
2020-04-16 12:47:18 +02:00
Michael Alexsander
5e45717be7 Remove unnecessary Panel in "Features" section in the Export dialog
(cherry picked from commit a1a096eb09)
2020-04-16 12:47:18 +02:00
Hugo Locurcio
0ce6ac0bbb Warn about built-in script limitations in the script creation dialog
This partially addresses #31758.

(cherry picked from commit ac210e196c)
2020-04-16 12:47:18 +02:00
PouleyKetchoupp
18c5ef5473 Add style for highlighted Slider grab area
(cherry picked from commit 4c8173af0f)
2020-04-16 12:47:17 +02:00
Vasiliy
cf135e3723 Add "preview_on_sphere" setting of material editor plugin
(cherry picked from commit 48b144afb7)
2020-04-16 12:03:02 +02:00
Thakee Nathees
233997aac5 replace selected text with empty string bug fixed
Fix: #37416
(cherry picked from commit 2144eb05df)
2020-04-16 11:58:57 +02:00
Tomasz Chabora
472b0e0d34 Properly handle node remove via undo
(cherry picked from commit 37ffb40047)
2020-04-16 11:56:50 +02:00
Andrea Catania
a51e78528f Fixed IK rotation issue
(cherry picked from commit 277696d6c5)
2020-04-16 11:42:07 +02:00
Hugo Locurcio
b5d41bb517 Remove Request Docs button in the script editor due to various issues
The Request Docs button is partly responsible for layout overflow
issues on narrow displays, such as #31133.

It also tended to attract spam and low-effort issues that were
difficult to act upon. A "Send Docs Feedback" menu option has been added
to replace it.

(cherry picked from commit 2f6f029a75)
2020-04-16 11:16:08 +02:00
Ignacio Etcheverry
445f1c6e7b Mono/C#: Add iOS support
Right now, games only work on devices when exported with FullAOT+Interpreter.
There are some issues left that need to addressed for FullAOT alone. Right now,
it's giving issues with the Godot.NativeCalls static constructor.
2020-04-14 18:03:10 +02:00
qarmin
57952d562c Fixes leak with drives [3.2] 2020-04-12 14:05:47 +02:00
Rémi Verschelde
218ae1e7a2
Merge pull request #37595 from ExpiredPopsicle/18809_flickering_ortho_fix
Othographic camera in-editor now uses Z near/far instead of hardcoded value
2020-04-10 17:16:49 +02:00
dankan1890
657f12edcc TextureRegion: fixed Autoslice not created/updated properly.
(cherry picked from commit 671e97d254)
2020-04-06 18:17:19 +02:00
Michael Alexsander
9dcf9da205 Fix changing the import type of multiple files at once
(cherry picked from commit 6d6af0ea06)
2020-04-06 18:16:58 +02:00
Kiri Jolly
26912c15e6 Othographic camera in-editor now uses Z near/far settings instead of a hardcoded value
Fixes #18809.

The in-editor ortho camera used a far clipping plane of 8192 units, and was
placed 4096 units away from the camera cursor.

This was far enough to cause culling issues from floating point precision loss
on objects smaller than one unit.

This change modifies the near/far clipping planes of the ortho camera to use
those specified in the editor (and currently used by the perspective camera).
The frustum is still centered around the camera cursor location, as it was
before.
2020-04-04 16:16:11 -07:00
Rémi Verschelde
acd14e645a Remove unused classes and stray headers
Found by reviewing headers with 1 or less matching includes:
```
find -name thirdparty -prune -o -name "*.h" -exec basename {} \; | sort -u > headers
for header in $(cat headers); do echo "$header: "; rg -l "#include \"(.*/)?$header\"" | wc -l; done > list-includes
```

(cherry picked from commit 9d24541597)
2020-03-25 11:38:54 +01:00
Ivan.Shakhov
d06ae167bf for third-party tools - editor_path is stored in project's editor settings
(cherry picked from commit 2f151068b5)
2020-03-25 11:38:54 +01:00
simpuid
a10a21f407 Fixes transform gizmo position when node has default transform
Changes made:
* Added dirty bit for SpatialEditorSelectedItem's last_xform
* SpatialEditorViewport checks that dirt bit too before skipping the selection

(cherry picked from commit 19825436d4)
2020-03-25 11:38:53 +01:00
johan
31fb54742b Editor 2D: Change pixel alignment strategy, fix jittering in high zoom
Alignment of scene pixels on screen pixel ensure a crisp rendering of small features (such as text). Unfortunately, alignment of top left pixel on screen adds a lot of jittering when zooming at high zoom factor.

This change allow to snap the top left scene pixel on the closest screen pixel (not only the top-left most), and we do so only when the scale factor is an integer.

(cherry picked from commit 1c02906a6f)
2020-03-25 11:38:53 +01:00
alvaroHernandez
bce2a3a2d2 prevent joypad button input dropdown going out of dialog
(cherry picked from commit e47d5691e4)
2020-03-25 11:38:53 +01:00
JFonS
4d85f70015 Update all editor viewports after settings changes
(cherry picked from commit 55b478afd9)
2020-03-25 11:30:49 +01:00
JFonS
784ff23adc Fix rotation gizmo for empty Spatials
The AABB for an empty Spatial has 0 size, since the stored and
compared Transform was scaled by the AABB size, it would completely
destroy the rotation information. If there is no rotation
information, the gizmo doesn't update when the rotation changes.

(cherry picked from commit a0af3094b4)
2020-03-25 11:30:49 +01:00
Haoyu Qiu
d25949dd49 Keeps the filename when marking scene as unsaved
(cherry picked from commit 9ed61a70cc)
2020-03-25 11:30:48 +01:00
volzhs
644d49b156 Update snap setting only with OK
restore previous values with cancel

(cherry picked from commit 667a981d4d)
2020-03-25 11:30:48 +01:00
volzhs
5edd669503 Use checkbox for plugin status instead of option list
(cherry picked from commit 09b055bd34)
2020-03-25 09:38:53 +01:00