Commit Graph

143 Commits

Author SHA1 Message Date
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Aaron Franke 918b09cabc
Initialize bools in the headers in editor 2022-03-12 13:34:06 -06:00
Rémi Verschelde 11572c6e30
Editor: Cleanup some includes dependencies
Removes some unnecessary includes from `editor_node.h`, and instead add
those where they're used.

Removes unnecessary `editor_node.h` includes in various editor classes.

Renames `dynamicfont` to `dynamic_font` in a couple files.

Misc cleanup while jumping through that rabbit hole.
2022-02-15 14:54:15 +01:00
trollodel 05b56f316d Remove most EditorNode constructor parameters and fields 2022-02-14 14:16:24 +01:00
kobewi 2cd0c3f8be Improve 2D editor's right-click menu 2022-01-27 03:02:45 +01:00
trollodel aa1102fc53 Store panels and docks singletons in their own classes 2022-01-20 20:13:26 +01:00
Michael Alexsander b3a82f8310 Make Scene dock menu button an actual `MenuButton` 2022-01-20 08:54:36 -03:00
kobewi 6630eb3b5a Improve node pasting 2022-01-18 16:54:53 +01:00
Rémi Verschelde 42312f066b
Merge pull request #53313 from KoBeWi/debinded_konnekt 2022-01-04 12:22:46 +01:00
Rémi Verschelde fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
kobewi acf563e59f Add drag and drop for NodePaths 2021-12-09 18:50:57 +01:00
Rémi Verschelde 88c4380737
Modules: Make sure to include modules_enabled.gen.h where needed 2021-11-12 13:42:58 +01:00
kobewi 07065d67e1 Infer shader type based on edited node 2021-11-03 15:27:38 +01:00
Marcel Admiraal 87a4ba492e Remove unimplemented methods 2021-10-21 18:44:25 +01:00
kobewi cdac60759e Add support for unbinding in connection dialog 2021-10-04 21:41:21 +02:00
Rémi Verschelde 8f227e9da3
Merge pull request #51413 from KoBeWi/🚗 2021-10-04 20:31:47 +02:00
Aaron Franke 4fc639916c
Allow disabling the RegEx module in the editor 2021-09-15 12:08:53 -05:00
kobewi d4f4cfbb40 Save branch as scene by dropping to filesystem 2021-09-09 00:59:10 +02: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
kobewi 6098403f07 Move the option to new menu 2021-08-12 01:34:52 +02:00
kobewi e401cd58f1 Add option to not expand tree on node select 2021-08-12 00:36:56 +02:00
Yuri Roubinsky 5e5cd2495d Added editor dialog for easily creating shaders. 2021-08-07 21:02:13 +03:00
Rémi Verschelde 6b1886f998
Merge pull request #50319 from nekomatata/optimize-node-path-check
Optimize NodePath update when renaming or deleting nodes in the editor
2021-07-22 12:13:10 +02:00
kobewi 5faf51a5aa Assign value to property by dropping to scene tree 2021-07-19 16:16:50 +02:00
PouleyKetchoupp ff40c3f3c8 Optimize NodePath update when renaming or deleting nodes in the editor
Now the process uses a Map to lookup node pointers instead of iterating
over all modified node paths in a list and comparing them for each
property to check.

The process also avoids checking properties with empty node paths and
does an early exit on deleted nodes to avoid checking the node and its
descendants.

Also made a minor change in NodePath::rel_path_to() to avoid resizing a
Vector many times for long paths (with copy-on-write each time). Now
it's down to 2 resize calls in any case.
2021-07-09 11:42:39 -07:00
Hugo Locurcio 99909cb4f7
Add a root Node3D automatically if absent when adding preview sun and sky
This makes for a smoother prototyping process compared to displaying
an error message.
2021-07-07 01:59:46 +02:00
PouleyKetchoupp 62ce81ec15 Coding style fix in editor NodePath update
Added r_ prefix for reference arguments that can be modified.
2021-06-30 11:50:40 -07:00
Rémi Verschelde dfdde2c598
Merge pull request #49812 from nekomatata/node-path-editor-update
NodePath properly updated in the editor in more cases when nodes are moved or renamed
2021-06-29 12:51:38 +02:00
PouleyKetchoupp 3e4e530523 NodePath properly updated in the editor in more cases
Fix more cases of node path needing an update when nodes are renamed or
moved in the editor.

Built-in node properties:
Before, node paths were checked only for script export variables. Now
all properties are checked from the node, which includes built-in node
properties.
Allows proper node path updates for nodes like remote transform, physics
joints, etc.

Arrays and dictionaries:
Node paths nested in array and dictionary properties are now also
updated in the editor.

Also update the documentation to be clear about node path update in the
editor and at runtime.

Co-authored-by: latorril <latorril@gmail.com>
2021-06-28 09:28:29 -07:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
reduz 90056460ad Implement Particle Trails
-Enable the trails and set the length in seconds
-Provide a mesh with a skeleton and a skin
-Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh
-Works deterministically
-Fixed particle collisions (were broken)
-Not working in 2D yet (that will happen next)
2021-04-30 17:38:02 -03:00
Rémi Verschelde ec7053259b
Merge pull request #41437 from KoBeWi/put_it_here
Allow to create a node at specific position
2021-03-01 15:48:53 +01:00
Oliver Dick 0559fc58d1 SceneTreeDock: Changed "Save Branch as Scene" to make use of Node::duplicate_from_editor, which is also used by "Duplicate" function of the SceneTreeDock
- Removed Node::duplicate_and_reown method as it is not used anymore
2021-02-28 17:19:01 +01:00
Tomasz Chabora 8df22a03c4 Allow to create a node at specific position 2021-02-26 14:40:28 +01:00
hilfazer e28cc34db8 Prevent 'Change Type' on nodes from an instanced scene 2021-02-26 07:18:21 +01:00
kobewi 6b4faa355c Remove Merge From Scene 2021-02-13 01:35:03 +01:00
kobewi 36494e8526 Duplicate resources pasted to other scenes 2021-02-12 22:38:38 +01:00
Tomasz Chabora abe548d76d Add node copy-paste 2021-02-09 20:53:06 +01:00
Rémi Verschelde b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Tomasz Chabora 2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
Aaron Franke 02161aad5a
Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
booer 3d69385655 Fix changing icons' colors when switch dark and light theme 2020-09-17 09:33:19 +07:00
Hugo Locurcio 31b7f02a29
Remove ToolButton in favor of Button
ToolButton has no redeeming differences with Button;
it's just a Button with the Flat property enabled by default.
Removing it avoids some confusion when creating GUIs.

Existing ToolButtons will be converted to Buttons, but the Flat
property won't be enabled automatically.

This closes https://github.com/godotengine/godot-proposals/issues/1081.
2020-06-19 20:49:49 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Hugo Locurcio 7fc0e38e92
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.
2020-05-09 19:09:11 +02:00
lupoDharkael 95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Rémi Verschelde cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Shivansh Anand 9fee540e6e fixes #33439. The feature now changes according to the feature profile. 2019-11-11 01:13:56 +05:30
Anubhab Ghosh 4972ef801a Add clear menu entries for extending and replacing scripts 2019-10-23 01:57:17 +05:30
Bhupendra Aole cb528e31d9 Placeholder dialog for editable children
Fire placeholder confirmation dialog box when editable children option is already checked.
Fixes #28863
2019-09-27 13:49:55 -04:00
Julian Murgia 249fdd9f80 Adds contextual item in scene tree dock to wrap selection in a new node
Fixes #20187
2019-07-19 16:46:13 +02:00
Tomasz Chabora 0cd9a65aa4 Smarter node placement after duplicating 2019-07-04 18:16:19 +02:00
Rémi Verschelde e8b483ce21
Merge pull request #19936 from Xrayez/collapse-button
Expand/collapse nodes recursively in scene tree dock
2019-07-02 10:02:24 +02:00
LikeLakers2 410054db38 SceneTreeDock will now only attach scripts to the selected node if the ScriptCreateDialog was opened from the SceneTreeDock 2019-06-29 23:19:45 -04:00
Rémi Verschelde ddba2e7b47
Merge pull request #26748 from raphael10241024/instance
Fix editor crash when saving a scene containing an inherited scene instance.
2019-06-19 16:28:15 +02:00
Rémi Verschelde 500fe89600
Merge pull request #28349 from KoBeWi/sprite_editor_mistake_eraser
Add undo for Sprite Editor
2019-05-28 18:39:14 +02:00
Tomasz Chabora 7e9e023e5f Keep editable children on node duplicate 2019-05-28 16:53:24 +02:00
Tomasz Chabora a93ff8d210 Add undo for Sprite Editor 2019-04-23 21:10:44 +02:00
Andrii Doroshenko (Xrayez) 824f68483f Add ability to expand/collapse nodes recursively in scene tree dock
To expand or collapse the node recursively (all children), hold `Shift`
button and click on the node's folding arrow.

The popup menu option `Expand/Collapse All" checks whether any node
is expanded or collapsed first and performs the opposite operation. That
means if any children node is collapsed, it will first expand all nodes
at selected node.

Co-authored-by: Rikhardur Bjarni Einarsson (MunWolf) badulf96@gmail.com
2019-04-21 13:50:30 +03:00
Juan Linietsky a20235aeb0 Add ability to edit editor feature profiles
Allows enabling/disabling parts of the editor and storing/loading profiles for that.
2019-04-08 19:18:51 -03:00
yakun.zhang e25a50d690 add check for inherted nodes when instance 2019-03-18 19:40:36 +08:00
Juan Linietsky 6f884cc884 Use SceneTreeDock to replace particles node properly, fixes #24162 2019-01-14 13:41:54 -03:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Andrew McDonald 66503465db Use EditorQuickOpen dialog instead of EditorFileDialog when instancing a child scene.
Addresses the bulk of #5180
2018-10-16 22:19:51 -07:00
groud 980aa276e3 Add a shortcut to the documentation in the scene tree RMB menu 2018-10-03 11:25:18 +02:00
DualMatrix 0d09f80e43 Added warning when disabling editable_instance
Added warning when disabling editable_instance to prevent data loss.
2018-09-17 15:18:03 +02:00
willnationsdev 1ea37c34ad Add toggle for favorites in create_root_dialog. 2018-08-08 12:15:42 -05:00
Rémi Verschelde 1f6fedeb37
Merge pull request #19729 from razcore-art/rename-discard-instancing
Rename 'Discard Instancing' to 'Make Local'
2018-07-24 20:51:53 +02:00
Juan Linietsky c0c243ac5c New option, make any node the new scene root. 2018-07-15 23:52:57 -03:00
Juan Linietsky 512ffd489a Small feature to help users understand the editor faster. 2018-07-15 23:11:29 -03:00
willnationsdev 2a6c591957 Expose ScriptCreateDialog to EditorPlugin 2018-07-04 09:41:12 -05:00
Răzvan C. Rădulescu e8315f306c Rename 'Discard Instancing' to 'Make Local'
Rename the option in the right click menu in the Scene nodes
because Discard Instancing is confusing (it could imply deleting the
instance). I renamed it to Make Local which is used for example in
Blender as well when talking about appending assets from other files.
I think it's clearer. Or it can be renamed to Make Instance Local, but I
thought it's a bit oo long so I went just with Make Local as this option
appears in the menu only when the node is an instance anyway.
2018-06-25 15:54:05 +02:00
Eoin O'Neill 1378ca1e04 Added Rename Context Menu Option for SceneTreeDock 2018-05-16 23:27:07 +02:00
Rémi Verschelde 64cb61619a
Merge pull request #15928 from StateOff/feature_batch_rename
Implements "Batch Rename" editor tool.
2018-05-08 07:36:24 +02:00
Juan Linietsky 9e3a1e5401 Add base support for 2D meshes in Godot, including Sprite -> Mesh2D conversion. 2018-02-21 09:39:09 -03:00
Blazej Floch e58b10c883 Implements "Batch Rename" editor tool. 2018-01-22 00:43:19 -05:00
Gilles Roudiere ff8fe3d875 Fixes add script button update 2018-01-11 22:22:32 +01:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
volzhs 002a0271fe Show sub-resources as sub-menu 2017-12-17 23:55:24 +09:00
geequlim 2f5defab0e Add editor setting to allow keep show local scene tree while debugger start.
Rename editor setting scene_tree_refresh_interval to remote_scene_tree_refresh_interval.
2017-11-22 21:53:01 +08:00
Pedro J. Estébanez 5a0be858f4 Let SceneTreeDock duplicate nodes via Node::duplicate()
Helps with #11182.
2017-11-19 21:30:17 +01:00
Juan Linietsky dc463e1e42 Add support for remote debug in scene tree. 2017-11-15 22:21:49 -03:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Rémi Verschelde 565600e844 Cleanup tons of obsolete commented out code
Mostly in EditorNode, dropping some obsolete editor plugins and also a
cleanup of ProjectSettings/EditorSettings.
2017-08-26 17:47:57 +02:00
Wilson E. Alvarez 428f03cf06 Updated function argument names 2017-08-12 15:12:49 -04:00
Jakub Grzesik 80716a8bf4 Clicking on subscene icon will open it
All options are moved into RMB menu
2017-07-03 16:53:46 +02:00
Juan Linietsky 40959acef2 Quick access list to subresources on RMB 2017-06-05 00:12:19 -03:00
Juan Linietsky 5b3709d309 Removal of InputEvent as built-in Variant type..
this might cause bugs I haven't found yet..
2017-05-20 17:05:38 -03:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Rémi Verschelde 5dbf1809c6 A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?

I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon

A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format

A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
2017-03-05 16:44:50 +01:00
Rémi Verschelde 49c065d29c Refactoring: rename tools/editor/ to editor/
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
2017-03-05 14:21:25 +01:00