Commit Graph

1210 Commits

Author SHA1 Message Date
Rémi Verschelde 76aa1d0a43
Merge pull request #55151 from Chaosus/control_reset_size 2021-11-22 16:22:57 +01:00
Yuri Roubinsky eabf8f5edf Added `reset_size` method to `Control` and `Window` classes 2021-11-22 16:55:21 +03:00
kobewi 5dc7346ab4 Improved some editor checkboxes 2021-11-21 21:29:34 +01:00
Rémi Verschelde c24c7cac57
Revert "Load assets before enabling editor plugins"
This reverts commit 1963c63b91.

Fixes #52968, fixes #52995.
2021-11-15 16:08:19 +01:00
Aaron Franke ed9c7bf450
Allow creating .gitignore and .gitattributes when creating a new project
Also allow creating these files later, and also allow disabling creating the default environment in editor settings.
2021-11-12 21:27:31 -06:00
Aaron Franke 3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
Rémi Verschelde e3f3fc517a
Merge pull request #54653 from KoBeWi/built_in_scripts_deserved_that
Improve save handling for built-in scripts
2021-11-09 21:46:58 +01:00
Rémi Verschelde d9a74fd07f
Merge pull request #54372 from bruvzg/text_edit_ui 2021-11-09 00:13:25 +01:00
Rémi Verschelde 665fa3d839
Merge pull request #52943 from RandomShaper/property_pin_control_natural 2021-11-08 18:53:08 +01:00
Pedro J. Estébanez 8d6f80d367 Add property value pinning 2021-11-08 17:42:30 +01:00
kobewi 134e4d168b Improve save handling for built-in scripts 2021-11-07 23:51:12 +01:00
kobewi 8144ac79cf Fix editor saving blank scenes (for real) 2021-11-07 16:38:56 +01:00
clayjohn 0eff109a21 Added SSIL post processing effect 2021-11-06 12:43:19 -07:00
kobewi 9abb07efb4 Ignore external editor for built-in scripts 2021-11-04 14:30:04 +01:00
Rémi Verschelde a2803f3d86
Merge pull request #54072 from KoBeWi/hrcr_is_ded 2021-11-03 17:31:48 +01:00
bruvzg 0b6b8427c8 [macOS] Add `create_instance` function to spawn editor copies.
[macOS] Modify `create_project` function to detect and run app bundles using NSWorkspace to ensure app window is registered and activated correctly.
2021-11-01 11:48:23 +02:00
Clay John 8a10bb7d0d
Use OpenGL 3.3 core profile instead of compatibility profile
- Rename OpenGL to GLES3 in the source code per community feedback.
  - The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
  - The renderer can still be changed in the Project Settings or using
    the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
bruvzg 3f33e1d7d6 Add functions for getting name and font style from dynamic and bitmap fonts.
Add font selection toolbar editor plugin.
2021-10-31 12:40:58 +02:00
Hugo Locurcio ce97ddbcb1
Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3
- Use lowercase driver names for the `--rendering-driver`
  command line argument.
2021-10-30 02:05:49 +02:00
lawnjelly e3491a3744
Add GLES2 2D renderer + Linux display manager
First implementation with Linux display manager.

- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).

Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
Yuri Roubinsky 7528c204d3 Added convertor from `ORMMaterial3D` to `ShaderMaterial` 2021-10-29 17:49:24 +03:00
Max Hilbrunner 343414cba5
Merge pull request #54328 from YeldhamDev/tabbar_close_signal_rename
Rename `TabBar`'s `tab_closed` signal to `tab_close_pressed`
2021-10-29 13:21:09 +02:00
clayjohn 1b2cd9f251 Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28 22:02:23 -07:00
Michael Alexsander 4c563a51c3 Rename `TabBar`'s `tab_closed` signal to `tab_close_pressed` 2021-10-28 13:10:44 -03:00
Rémi Verschelde 0ae65472e7
clang-format: Enable `BreakBeforeTernaryOperators`
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
2021-10-28 15:57:41 +02:00
Rémi Verschelde 3b11e33a09
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
Gilles Roudière a51f92273a Remove ItemList editor and replace it by a property array 2021-10-28 10:16:51 +02:00
kobewi de4f29f458 Remove node_hrcr hack 2021-10-28 01:43:34 +02:00
Max Hilbrunner 5dc02eb8b0 Save all 64 bits of get_ticks_msec() in more cases 2021-10-26 13:58:58 +02:00
Michael Alexsander 67acb7de6e Rename `Tabs` to `TabBar` 2021-10-19 11:37:31 -03:00
Rémi Verschelde 4387f9645b
Merge pull request #52940 from groud/toast_notification 2021-10-19 09:57:13 +02:00
reduz b3bf90b3ce Add scene Post-Import Plugin support.
* New plugin system to control the whole import workflow
* Can add options and run code at every import step (general, per node, mesh, animation, material etc.)

This constitutes a first version of these plugins. The ability to interact with the import preview dialog will likely be added later on.
2021-10-15 09:12:04 -03:00
Gilles Roudière 0587e5e018 Implement toast notifications in the editor 2021-10-14 13:30:54 +02:00
Matthew Newall e10d0d76bc Fixed editor attempting to save a blank scene with save all scenes 2021-10-12 10:19:58 +00:00
Rémi Verschelde 164dc11e04
Merge pull request #45699 from TokageItLab/implement-skeleton-editor-gizmo
Implement Skeleton Editor Gizmo
2021-10-06 21:11:20 +02:00
Silc Renew f2e9867e9f Implemented SkeletonEditorGizmo
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
2021-10-07 01:07:46 +09:00
K. S. Ernest (iFire) Lee 1463fc889b GLTF for game templates.
Convert GLTF Document to use ImporterMeshInstance3D.

Add a GLTFDocument extension list and an extension for converting the importer mesh instance 3d to mesh instance 3d.

Use GLTF module when the editor tools are disabled.

Modified the render server to be less restrictive on matching blend arrays and have more logging.

Misc bugs with multimesh.

Always index the meshes.
2021-10-03 12:37:52 -07:00
Rémi Verschelde a28f44fa53
Merge pull request #53277 from YeldhamDev/tabs_renaming 2021-10-01 07:52:29 +02:00
Michael Alexsander 663e480f24 Rename some elements of `Tabs` 2021-09-30 20:18:23 -03:00
Lightning_A c63b18507d Use range iterators for `Map` 2021-09-30 15:09:12 -06:00
Rémi Verschelde 3e1b630461
Merge pull request #53025 from Paulb23/textfile-ux 2021-09-30 23:00:07 +02:00
Hugo Locurcio 570cdc128f
Rename Node's `filename` property to `scene_file_path` for clarity 2021-09-30 16:50:25 +02:00
Paulb23 6596c7bdc2 Add TextFile support across the editor 2021-09-30 13:29:29 +01:00
Rémi Verschelde 4fc246e99e
Merge pull request #52573 from e8newallm/Save_Scene-52078 2021-09-29 09:15:14 +02:00
Michael Alexsander f289b13b6b Fix arrow pointing in the wrong direction in the Dock Position popup 2021-09-23 21:32:48 -03:00
Rémi Verschelde 88b347dc27
Merge pull request #51920 from jmb462/missing-sname-macro-optimization-in-some-functions 2021-09-23 13:14:20 +02:00
Eric M 6b65092c57 Added ability to override shortcut definitions for OSX (remove preprocessor defines) 2021-09-22 00:09:57 +10:00
Rémi Verschelde 40eabbb120
Merge pull request #52601 from KoBeWi/scene_renaissance
Make restore_scenes_on_load true by default
2021-09-21 10:45:18 +02:00
Rémi Verschelde 0e5b0c025c
Merge pull request #52474 from KoBeWi/script_remover_3000 2021-09-19 11:30:11 +02:00
Rémi Verschelde a2b727ed38
Merge pull request #52344 from TechnoPorg/import-assets-first 2021-09-15 20:10:57 +02:00
Rémi Verschelde c2083160b1
Merge pull request #41036 from nathanfranke/default-2d-editor
Make default main screen plugin work even if 2D and 3D are disabled in editor features
2021-09-15 10:50:43 +02:00
kobewi 363a9c674a Don't edit foreign resources when restoring scene 2021-09-12 21:17:34 +02:00
kobewi 7c325aa842 Make restore_scenes_on_load true by default 2021-09-12 16:11:56 +02:00
Matthew Newall ed2280528f Corrected Save Scene and Save All Scenes not working when the scene's dir no longer exists 2021-09-11 14:39:46 +00:00
Vincent 70108fd850 implement individual mesh transform for meshlibrary items 2021-09-09 16:40:16 +02:00
kobewi 1a60509699 Close built-in script from any scene 2021-09-07 22:19:45 +02:00
Hugo Locurcio b73e7623c8
Merge pull request #33123 from Calinou/remote-inspector-capitalize-properties
Capitalize properties in the remote inspector
2021-09-02 19:44:53 +02:00
TechnoPorg 1963c63b91 Load assets before enabling editor plugins
Moves the code for enabling plugins from NOTIFICATION_READY to after the first scan has been completed.
2021-09-02 09:41:12 -06:00
Fabio Alessandrelli 58c30b2626
Merge pull request #51639 from Ev1lbl0w/gsoc21-dap
Implement more advanced features for DAP
2021-09-01 16:17:32 +02:00
Hugo Locurcio 854f328517
Capitalize properties in the remote inspector
This makes property casing consistent with the editor.

If property capitalization is disabled in the Editor Settings,
the remote inspector will also disable capitalization.
2021-08-31 16:39:37 +02:00
Ev1lbl0w 292ed61c18 Implemented advanced features of DAP
Respect client "supportsVariableType" capability

Implement "breakpointLocations" request

Implement "restart" request

Implement "evaluate" request

Fix error messages not being shown, and improved wrong path message

Removed thread option and behavior

Implemented detailed inspection of complex variables

Fix "const"ness of functions

Added a configurable timeout for requests

Implement Godot custom data request/event

Implement syncing of breakpoints

Added support for debugging native platforms
2021-08-31 15:17:58 +01:00
Nathan Franke 9954544be8
Make default main screen plugin work even if 2D and 3D are disabled 2021-08-31 00:17:22 -05:00
bruvzg 4c3f7d1290 Makes FontData importable resource.
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Juan Linietsky eb940ca2a0
Merge pull request #51928 from reduz/extension-loader
Implement Extension Loader
2021-08-26 10:24:25 -03:00
reduz 5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
Hugo Locurcio 57e3a1a951
Merge pull request #47673 from Calinou/improve-editor-window-title
Improve the editor window title for better usability
2021-08-22 08:42:43 +02:00
reduz 542e6e8ca6 Implement Extension Loader
* Extensions are now scanned and loaded on demand.
* Extensions found are cached into a file that is used to load them (which is also exported).
* Editor will ask to restart when an extension requires core functionality.
* Editor will attempt to load extensions always before importing or loading scenes. This ensures extensions can register the relevant types.
2021-08-20 16:02:24 -03:00
jmb462 54de7114c5 Add missing SNAME macro optimization for StringName in some functions 2021-08-20 14:50:24 +02:00
Haoyu Qiu 16c2d4ef22 Improve Undo/Redo menu items
* Make Undo/Redo menu items disabled when clicking it does nothing.
    * Context menu of `TextEdit`
    * Context menu of `LineEdit`
    * Editor's Scene menu
    * Script editor's Edit menu and context menu (for Script and Text)
* Make editor undo/redo log messages translatable.
* Mark `UndoRedo`'s `has_{un,re}do()` methods as `const`.
* Expose `TextEdit`'s `has_{un,re}do()` to scripts since `{un,re}do()` are already available.
2021-08-17 21:11:10 +08:00
Rémi Verschelde 966559c3bd
Merge pull request #51512 from Bhu1-V/PR/cmd-fix
command palette improvements
2021-08-15 16:01:49 +02:00
Bhuvan Vemula a0205e4f34 command palette improvements 2021-08-15 11:40:44 +05:30
kobewi cf95ce8b43 Fix double Next Editor Tab 2021-08-14 16:57:42 +02:00
Rémi Verschelde 1e0c6db621
Merge pull request #49523 from foxydevloper/improve-shortcut-naming
Improve naming of a couple shortcuts
2021-08-13 14:50:03 +02:00
kobewi ea2489ce93
Don't save project on startup in headless mode 2021-08-13 09:57:46 +02:00
Haoyu Qiu 96f077a18d Fixes crash when AnimationPlayer reset on save 2021-08-12 10:53:35 +08:00
Aaron Franke fa3a32a2d6
Use Key enum instead of plain integers 2021-08-10 16:26:55 -05:00
fox 20201b56c2 Improve naming of a couple shortcuts 2021-08-10 13:01:07 -04:00
Rémi Verschelde dce488d8f7
Merge pull request #49417 from Bhu1-V/gsoc-cmd-plt
Command Palette For Godot
2021-08-10 18:55:22 +02:00
Aaron Franke 339687e04f
Organize methods in Viewport and explicitly name 3D methods with 3D 2021-08-10 09:10:34 -05:00
Bhuvan Vemula a0a019a998 Added EditorCommandPalette 2021-08-09 17:41:50 +05:30
Rémi Verschelde 9cb4fbe9d5
Merge pull request #47700 from Calinou/editor-mouse-wheel-change-scene-tabs
Allow using the mouse wheel to navigate scene tabs
2021-08-07 08:21:43 +02:00
Rémi Verschelde 18fb2afcac
Merge pull request #51214 from Calinou/update-spinner-highlight-when-continuous
Change the editor update spinner color when updating continuously
2021-08-06 10:17:29 +02:00
Hugo Locurcio a97c5b50db
Change the editor update spinner color when updating continuously
Updating continuously should only be enabled for troubleshooting
purposes, as it uses a lot of CPU/GPU power.

The update spinner is now displayed in red when the Update Continuously
editor setting is enabled.
2021-08-03 17:29:40 +02:00
Fabio Alessandrelli 80fc90e82a
Merge pull request #50454 from Ev1lbl0w/gsoc21-dap
Implemented initial DAP support
2021-08-03 17:12:37 +02:00
Yuri Sizov decd548223 Cache EditorResourcePicker's allowed types 2021-08-03 16:52:12 +03:00
Ev1lbl0w 7bccd5487e
Implemented initial DAP support
Implemented "output" event

Refactored "seq" field generation

Prevent debugging when editor and client are in different projects

Removed unneeded references to peer on the parser

Refactored way to detect project path

Implemented "setBreakpoints" request

Fix double events when terminating from client

Refactored "stopped" event

Implemented "stopped" with breakpoint event

Implemented "stackTrace", "scopes" and "variables" request

Report incoming number of stack dump variables

Implemented proper reporting of scopes and variables from stack frames

Prevent editor from grabbing focus when a DAP session is active

Implemented "next" and "stepIn" requests

Implemented "Source" checksum computing

Switched expected errors from macros to silent guards

Refactored message_id

Respect client settings regarding lines/columns behavior

Refactored nested DAP fields

Implement reporting of "Members" and "Globals" scopes as well

Fix error messages not being shown, and improved wrong path message
2021-08-02 10:43:35 +01:00
foxydevloper ae7a74625d Name new resource files with `snake_case` 2021-07-29 20:53:33 -04:00
Rémi Verschelde 92299989bd
Use Ref<T> references as iterators where relevant
And const when possible.
2021-07-26 19:27:11 +02:00
luz paz 5cf3bed0c8 Fix various typos
Follow-up typos found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 07:18:25 -04:00
Rémi Verschelde ff0b5f8fa1
Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
Rémi Verschelde ac3322b0af
Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
luz paz 3564c16cb8
Fix various typos with codespell
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 11:21:51 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
Rémi Verschelde 1ba87f0c82
Merge pull request #50618 from reduz/implement-more-specialization-constants
Implement more rendering options as specialization constants
2021-07-20 08:54:21 +02:00
reduz 9293bc3935 Implement more rendering options as specialization constants
* Shadow quality settings now specialization constant.
* Decal and light projector filters can be set.
* Changing those settings forces re-creation of the pipelines.

These changes should help improve performance related to shadow mapping, and allows improving performance by sacrificing decal and light projector quality.
2021-07-19 21:51:29 -03:00
Stanislav Labzyuk 1de8ff8393 Implemented the ability to add shortcut for Project -> Reload Current Project. 2021-07-20 00:18:52 +07:00
reduz 6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
reduz 6639cc9853 Addes ability to load build sources from file.
* If not present, the dialog asks to load build sources from a file.
* The export templates check now also verifies that build sources are installed and skips the template check.

This makes Android development easier.
2021-07-15 10:14:08 -03:00
Rémi Verschelde f79958a30e
Merge pull request #50468 from akien-mga/cleanup-header-includes
Misc cleanup of header includes
2021-07-15 09:24:34 +02:00
Rémi Verschelde b3349e4c68
Merge pull request #47245 from LightningAA/add-viewport-spy-4.0
Add the ability to preview viewports from the inspector
2021-07-15 08:53:43 +02:00
Rémi Verschelde 06568bbfdf
Misc cleanup of header includes
Was looking for misuse of module headers without checking that the module is
actually enabled and got carried away...
2021-07-15 00:46:43 +02:00
Rémi Verschelde 8747f25653
Merge pull request #50381 from reduz/implement-disable-classes
Implement the ability to disable classes
2021-07-13 15:31:38 +02:00
reduz 5ad4f26659 Implement the ability to disable classes
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
  `scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
2021-07-13 09:25:14 -03:00
Haoyu Qiu 4383f8a790 Merge similar editor strings 2021-07-13 13:44:52 +08:00
Lightning_A b09f681768 Add viewport preview plugin
Also includes a minor refactor of TextureEditorPlugin.
2021-07-12 20:04:46 -06:00
Rémi Verschelde f56ae4045f
Merge pull request #37983 from EricEzaM/set-main-scene-add-select-current-option
Added 'Select Current' option when user is prompted to select main scene after clicking play
2021-07-06 16:59:12 +02:00
Eric M 2296b57739 Added 'Select Current' option when user is prompted to select main scene after clicking play 2021-07-07 00:27:00 +10:00
Eric M c2ba7464b6 Added EditorInspectorPlugin to aid in editing InputEvents in resources and shortcuts 2021-07-06 23:50:33 +10:00
reduz 37776b2867 Clean up RenderingServer and its bindings
* Rewrote bindings for RenderingServer.
* They are now all up to date.
* Several unused methods and deprecated features were cleaned up.
2021-07-01 09:07:36 -03:00
reduz d07f7c8d25 Fixes to 2D viewport
* Editor 2D viewport now uses embedded subwindows (windows no longer pop up)
* Restored the ability to disable 3D on the 2D viewport (makes 3D not display on 2D when there is a camera on the scene)
2021-06-29 17:40:45 -03:00
Rémi Verschelde 9996cd2a16
Merge pull request #49636 from LightningAA/add-feedback-button-4.0
Add "Suggest a Feature" to the help dialog.
2021-06-29 12:47:17 +02:00
reduz b1d15c51bc Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
2021-06-25 17:32:45 -03:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde de7293b6eb
Merge pull request #49741 from RandomShaper/fix_save_scene_side_effects
Remove side effects of scene save
2021-06-20 00:37:38 +02:00
Pedro J. Estébanez 598fd51277 Remove side effects of scene save 2021-06-19 13:44:05 +02:00
Rémi Verschelde 671c58362a
Merge pull request #40525 from KoBeWi/fastest_close_in_the_west
Make closing current scene faster
2021-06-18 12:30:56 +02:00
Rémi Verschelde dd39855c0a
Merge pull request #47796 from Calinou/editor-add-save-on-focus-loss-option
Add a "save on focus loss" editor setting (disabled by default)
2021-06-17 12:50:36 +02:00
Rémi Verschelde f862f9a056
EditorSettings: Factor code to compute auto display scale
Also fixes typo introduced in https://github.com/godotengine/godot/pull/48597/files#r652636544.
2021-06-16 14:36:09 +02:00
Lightning_A 70fb239a25 Add "Suggest a Feature" to the help dialog.
Links to Godot Proposals's readme.
2021-06-15 18:37:27 -06:00
Rémi Verschelde 3f01b38185
Merge pull request #48597 from Calinou/editor-scale-auto-portrait
Handle portrait mode monitors in the automatic editor scale detection
2021-06-15 18:27:48 +02:00
Rémi Verschelde fbdb1e0bab
Merge pull request #49108 from LightningAA/reload-current-project-4.0
Add the ability to reload the current project
2021-06-15 15:40:52 +02:00
Rémi Verschelde 1074017f04
Refactor editor paths validation in EditorPaths and EditorSettings
- EditorSettings: Ensure that `create()` makes a valid singleton.
  Fixes #49179, fixes #49450.
- EditorPaths: Cleanup code, properly set `paths_valid`.
- EditorPaths: Move more paths validation (check, mkdir) from
  EditorSettings for a better separation of concerns.
- EditorPaths: Move EditorFileSystem creation of `.godot/imported`
  next to other paths.
2021-06-14 19:56:20 +02:00
Tomasz Chabora 5e7f963923 Make closing current scene faster 2021-06-14 19:48:15 +02:00
Rémi Verschelde ac73059b56
Merge pull request #49123 from aaronfranke/it-is-time
Add a Time singleton
2021-06-12 22:55:25 +02:00
Rémi Verschelde 8d4046929c
Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-io
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11 16:51:10 +02:00
Rémi Verschelde 6b0183ec89
Merge pull request #49279 from Calinou/rename-string-is-abs-path-method
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11 15:58:16 +02:00
Aaron Franke f64fea1b23
Add Time singleton 2021-06-11 09:32:39 -04:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Rémi Verschelde f178e7abd7
Merge pull request #48834 from daniel-mcclintock/fix-distraction-free-state-loss
Fix out of sync ScriptEditor distraction mode when `Separate Distraction Mode` is Enabled
2021-06-09 11:28:19 +02:00
daniel-mcclintock 45fc6c4706 Fix out of sync separate distraction-free mode 2021-06-09 09:27:30 +10:00
Andrii Doroshenko (Xrayez) 293550f56a Separate version hash from version number in editor and project manager
When copy-pasting the version from About dialog to bug reports at GitHub,
this makes the version hash linkable to commits at GitHub.
2021-06-08 17:30:37 +03:00
Rémi Verschelde aa251c310a
Merge pull request #49325 from reduz/rename-gi-classes
Rename GI Classes
2021-06-06 09:50:06 +02:00
TwistedTwigleg 8aa3c2f091 New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.

This work was sponsored by GSoC 2020 and TwistedTwigleg.

Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
2021-06-05 15:19:51 -04:00
reduz 32625145c8 Rename GI Classes
* GIProbe is now VoxelGI
* BakedLightmap is now LightmapGI

As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-05 09:28:56 -03:00
Yuri Sizov 638cd3b056 Replace get_settings_dir with get_config_dir when fetching configuration paths 2021-06-03 18:24:26 +03:00
Hugo Locurcio 5ea1c75d63
Rename `String.is_abs_path()` to `String.is_absolute_path()`
This is more consistent with `NodePath.is_absolute()`.
2021-06-03 16:00:06 +02:00
reduz d95bc3fa67 Use bold fonts in editor
* Labels are now bold
* Categories in trees are bold
* Main editor buttons are bold
* Fixed section folding arrows in inspector
2021-06-02 12:47:57 -03:00
Rémi Verschelde f0aa4e597a
Merge pull request #49178 from YeldhamDev/remove_dim_option 2021-05-31 12:27:01 +02:00
reduz 0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Michael Alexsander 38e635bb1d Remove `dim_editor_on_dialog_popup` from editor settings 2021-05-28 21:04:38 -03:00
Lightning_A a6984f8d28 Add the ability to reload the current project 2021-05-26 09:37:37 -06:00
Rémi Verschelde d3ba922ba8
Merge pull request #48854 from pycbouh/editor-reuse-resource-picker
Use `EditorResourcePicker` in the Inspector
2021-05-21 12:03:27 +02:00
Rémi Verschelde 4219a4cb6f
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
Yuri Sizov e9206a55ea Use EditorResourcePicker in the Inspector 2021-05-19 21:39:15 +03:00
Rémi Verschelde 2076580080
i18n: Sync translations with Weblate
(cherry picked from commit bcedd09742)
2021-05-18 12:09:50 +02:00
Rémi Verschelde fead3fff17
Merge pull request #47260 from pycbouh/editor-resource-picker 2021-05-17 17:33:59 +02:00
pycbouh e8f15f7996 Add EditorResourcePicker control based on the Inspector editor for Resources
Fix formatting for the docs
2021-05-17 15:26:22 +03:00
kleonc 5a8314016a Fix crash after disabling plugin using set_force_draw_over_forwarding_enabled() 2021-05-17 11:01:15 +02:00
Hugo Locurcio 3eae2f9c6d
Add "Support Godot Development" option to the editor's Help menu 2021-05-15 01:58:29 +02:00
Rémi Verschelde 5c81fbdc19
Merge pull request #48667 from pycbouh/editor-respect-custom-themes
Keep custom editor theme when changing editor settings
2021-05-14 10:31:52 +02:00
Yuri Sizov 56aedcee17 Keep custom editor theme when changing editor settings 2021-05-12 16:08:21 +03:00
Hugo Locurcio 728fa3ff71
Handle portrait mode monitors in the automatic editor scale detection
Using the smallest dimension of the width and height makes it possible
to support both landscape and portrait monitors.
2021-05-09 23:35:24 +02:00
Daniel Lungaro 2bae31a4df Remove plugin from enabled if there's an error
inform user in warning message

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

Refactor remove plugin from enabled
2021-05-09 13:51:09 -07:00
Rémi Verschelde 5d116b5d73
Merge pull request #48574 from Calinou/editor-add-new-scene-shortcuts
Add shortcuts for New Scene and New Inherited Scene actions
2021-05-09 13:53:52 +02:00
Hugo Locurcio 39f9b92f54
Save the current script when pressing Ctrl + S if no scene is open
- Tweak the dialog messages to be more informative.
  - The "Saved N modified resources" dialog is not a warning per se,
    so make it more explicit.
2021-05-09 12:29:50 +02:00
Hugo Locurcio 44b22540e1
Add shortcuts for New Scene and New Inherited Scene actions
These default to Ctrl + N and Ctrl + Shift + N respectively.
2021-05-09 11:30:36 +02:00
Rémi Verschelde c3f7465b7e
Merge pull request #48535 from groud/tiles_squashed
TileSet and TileMap rework (squashed)
2021-05-07 20:46:06 +02:00
Gilles Roudière a3dda2df85 Rework the TileSet resource and TileMap nodes:
- Move most properties from TileMap to TileSet,
- Make TileSet more flexible, supporting more feature (several
  collision layers, etc...),
- Fusion both the TileMap and TileSet editor,
- Implement TileSetSources, and thus a new way to index tiles in the TileSet,
- Rework the TileSet and TileMap editors completely,
- Implement an editor zoom widget (and use it in several places)
2021-05-07 18:06:17 +02:00
Rémi Verschelde 04e995dd5d
Merge pull request #48466 from EricEzaM/output-log-save-state
Made Editor Log buttons save their state, per project.
2021-05-07 00:47:41 +02:00
Hugo Locurcio ce4aa07276
Implement the `%command%` placeholder in the Main Run Args setting
This can be used to tell Godot to run an executable that will run Godot
rather than running Godot directly. This is useful to make Godot start
on the dedicated GPU when using a NVIDIA Optimus setup on Linux:
`prime-run %command%`

The `editor/run/main_run_args` setting declaration was moved to make it
visible in the ProjectSettings documentation.
2021-05-07 00:05:02 +02:00
Rémi Verschelde 6e621441ca
Merge pull request #45607 from Calinou/improve-editor-theme
Improve the editor theme
2021-05-06 16:45:07 +02:00
Eric M 902d468f52 Made Editor Log buttons save their state, per project. 2021-05-06 00:48:19 +10:00
CaptainProton42 16304aaa3b Fix 3D scene preview generation.
File system dock previews will now be generated for 3D scenes when no
editor feature profile is set.
2021-05-04 16:40:26 +02:00
Rémi Verschelde 4e7ca279fc
Merge pull request #47855 from aaronfranke/doubleclick
Rename `doubleclick` to `double_click`
2021-05-04 13:12:17 +02:00
Aaron Franke 0de9a7d803
Rename `doubleclick` to `double_click` 2021-05-04 04:38:08 -04:00
Hugo Locurcio be01025376
Make it possible to copy the Godot version identifier by clicking it
This closes #24317.
2021-04-28 17:35:57 +02:00
Hugo Locurcio 60b70c77e0
Improve the editor theme
The editor theme now makes use of rounded corners and less borders
to follow modern visual trends.

The default theme's colors were also tweaked to make the blue hue
more subtle (similar to the Arc theme, which was removed as a
consequence). The Alien theme was replaced by a Breeze Dark theme,
which should blend in well with the KDE theme.
2021-04-27 22:38:26 +02:00
jfons 4d9d99bb82 Implement occlusion culling
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.

Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
Hugo Locurcio f10c30a9ed
Add a "save on focus loss" editor setting (disabled by default)
This performs a Ctrl + S action every time the editor window loses focus,
saving both scenes and scripts as needed.
2021-04-11 15:40:38 +02:00
Hugo Locurcio c8afe63a54
Improve the editor window title for better usability
- Display the scene name, then the project name, then "Godot Engine".
- Display the "modified" mark before anytihng else.

Both of these changes ensure important, project-specific elements
can always be seen in the task bar which may truncate strings due to
its low per-item width.

- Use "Unnamed Project" if the project has no name (similar to the
  Project Manager).
2021-04-08 15:46:03 +02:00
Hugo Locurcio d2dec8d614
Allow using the mouse wheel to navigate scene tabs
This works in a way similar to tabs in KDE or some patched
Chromium builds.
2021-04-07 15:28:10 +02:00
Kongfa Waroros 6294507acb Add Various ColorPicker shapes 2021-04-06 22:48:03 +07:00
Hugo Locurcio 09f38ea215
Improve error messages for missing export presets when using `--export`
- Display a specific error message if the project doesn't have an
  `export_presets.cfg` file.
- Display a list of detected export presets if an invalid export
  preset name is supplied.
2021-04-06 14:27:15 +02:00
Rémi Verschelde 0f0c0e5933
Style: Apply clang-tidy's `modernize-use-bool-literals` 2021-04-05 13:16:35 +02:00
Rafał Mikrut 504bc5cc67 Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
Marcel Admiraal fd30c36985 Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
kobewi 76240515d8 Save project after opening 2021-03-26 14:10:41 +01:00
Hugo Locurcio 31fa1af0c0
Hide renderer selection dropdown in the editor as it's not implemented
It will take at least a few months until an OpenGL renderer is made
available for the `master` branch.
2021-03-25 18:09:22 +01:00
Rémi Verschelde 7ed2220928
Remove now unnecessary ResourceImporterCSV importer
Its only purpose was to prevent importing CSV files as translations, but it
would still import them as *nothing*, leading to workflow issues.

This is now properly fixed with #47268 which allows disabling the import for
specific files.
2021-03-23 15:49:30 +01:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Juan Linietsky 97a3a66220 Improved 3D Scene Importer
* Added option for importers to show an Advanced settings dialog
* Created advanced settings dialog for Scene Importer
* Cleaned up importers (remove many old/unused options)
* Added the ability to customize every node, material, mesh and animation individually
* Saving to animations and meshes to files is now a manual process, making it more predictable
* Added the ability for materials to be replaced by external files (or to be made external, up to you).
* When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it.

WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
2021-03-22 12:16:40 -03:00
Rémi Verschelde 5375da2fdb
Merge pull request #44333 from lupoDharkael/preferred-extension
Save resource: give .res less priority as preferred extension
2021-03-15 08:22:09 +01:00
lupoDharkael f2e906496b Save resource: implement extension priority
give .res less priority and .tres more priority as preferred
extensions.
2021-03-13 22:09:17 +01:00
jmb462 49d5ec073f Fix crash on closing empty modified scene 2021-03-13 18:19:29 +01:00
kobewi af069109be Don't check modified time if file doesn't exist 2021-02-26 23:18:50 +01:00
Danil Alexeev c6435e1d47 Fix "editor/editor_help" shortcut (again) 2021-02-21 00:15:26 +03:00
Rémi Verschelde 310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
Eric M 49714b0963 Removed hardcoded shortcuts from /scene and converted to input actions
This removes hardcoded actions from things like LineEdit and TextEdit.

Previously, things like copy, paste, etc were all hardcoded to Ctrl+C, Ctrl+V, etc. They could not be changed. This allows the possibility of them being changed, by making them use the action map. This has the added benefit of greatly simplifying the input handling logic in those controls. The logic which was previously in a huge and hard to follow switch statement has been extracted to individual methods.
2021-02-18 16:22:51 +01:00
reduz 64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Rémi Verschelde 72f74eb29e
Merge pull request #45943 from KoBeWi/YEEEET
Remove Merge From Scene
2021-02-18 15:15:19 +01:00
Rémi Verschelde b21f854b7f
Merge pull request #45910 from Ansraer/default-scale-highres-monitor
Adjust auto scale on 4k monitors to 150%
2021-02-14 12:54:04 +01:00
reduz 288540a690 Fix editor always redrawing
-Only update rendering settings when project settings change
-Fixes the update spinner (and editor rendering) updating all the time.
-Added a "project_settings_changed" signal to EditorNode and EditorPlugin
2021-02-13 14:57:28 -03:00
kobewi 6b4faa355c Remove Merge From Scene 2021-02-13 01:35:03 +01:00
reduz b9b68b755c Improved Inspector Sub-Resource Editing
-Better margins
-Colors to delimit subresources better.
2021-02-12 09:31:47 -03:00
Ansraer 466cf0b466 Adjust auto scale on high res displays 2021-02-12 01:12:25 +01:00
reduz f8d03b98e7 Improve resource load cache
-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11 15:44:28 -03:00
reduz 1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
Rémi Verschelde b1c60c757f
Merge pull request #31747 from KoBeWi/scene_stalking
Detect external modification of scenes
2021-02-10 14:31:29 +01:00
kobewi c390c82014 Detect external modification of project.godot 2021-02-09 14:44:44 +01:00