Commit graph

319 commits

Author SHA1 Message Date
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
Rémi Verschelde
e4c0572385
Merge pull request #44593 from madmiraal/rename-mainloop-methods
Rename MainLoop methods to match Node methods
2020-12-28 14:44:28 +01:00
Marcel Admiraal
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Marcel Admiraal
d9e9eb8d04 Rename MainLoop methods to match Node methods 2020-12-22 12:34:57 +00:00
Tomasz Chabora
31cb04fbdd Move initialization of some classes to headers 2020-12-11 18:20:03 +01:00
bruvzg
99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
Hugo Locurcio
5770e08c2a
Remove property groups for Pause Mode and Script
Each of those only grouped 1 property, making them useless.

This closes https://github.com/godotengine/godot-proposals/issues/1840.
2020-11-15 16:01:10 +01:00
reduz
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
bruvzg
80b8eff6aa
[Complex Test Layouts] Change String to use UTF-32 encoding on all platforms. 2020-09-03 19:56:24 +03:00
SekoiaTree
bdf614d3d7 Made get_child support negative indexes, with documentation 2020-09-01 11:34:36 +02:00
Tomasz Chabora
677796a2c3 Expose NOTIFICATION_POST_ENTER_TREE 2020-08-12 13:31:32 +02:00
Rémi Verschelde
d7e00a20a6
Merge pull request #40724 from KoBeWi/weird_condition_🤔
Fix ultra long node names
2020-07-26 21:58:06 +02:00
Tomasz Chabora
d3f2062d86 Fix ultra long node names 2020-07-26 15:29:50 +02:00
George Marques
2b9d9bc364
Remove multilevel calls
In general they are more confusing to users because they expect
inheritance to fully override parent methods. This behavior can be
enabled by script writers using a simple super() call.
2020-07-24 14:13:58 -03:00
Juan Linietsky
438c380458 Add a separate application focus/in notification out from Window focus notification. 2020-06-30 10:40:06 -03:00
Maganty Rushyendra
a2392039af Fix signal duplication bug when duplicating node with instanced children
Change error checking in `duplicate_signals()` to check for path to
`p_original`, thus adhering to the method used in `duplicate`, instead
of checking for ownership.
2020-06-09 21:24:05 +08:00
Dominik 'dreamsComeTrue' Jasiński
7f5c81c32f Replace 'add_child_below_node' with 'add_sibling' in Node
Fixes: #19642
2020-05-15 22:02:00 +02:00
Rémi Verschelde
0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde
07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +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
Rémi Verschelde
69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Juan Linietsky
5d4dc2d45c Add ability to bind typed arrays to script API
Note: Only replaced 2 instances to test, Node.get_children and TileMap.get_used_cells
Note: Will do a mass replace on later PRs of whathever I can find, but probably need
a tool to grep through doc.
Warning: Mono will break, needs to be fixed (and so do TypeScript and NativeScript, need to ask respective maintainers)
2020-04-21 10:15:40 +02:00
Tomasz Chabora
c1023157eb Remove Node.get_position_in_parent() 2020-04-06 01:19:20 +02:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Juan Linietsky
4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky
8e6960a69e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +01:00
Rémi Verschelde
f742dabafe Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00
Hugo Locurcio
393a3c3122
Improve the Node.add_child_below_node() documentation
This closes https://github.com/godotengine/godot-docs/issues/2730.
2020-02-27 18:41:18 +01:00
Juan Linietsky
33b5c57199 Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.

Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.

For Variant, the float datatype is always 64 bits, and exposed as `float`.

We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.

Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
2020-02-25 12:55:53 +01:00
Juan Linietsky
3c0059650d Added StringName as a variant type.
Also changed all relevant properties defined manually to StringName.
2020-02-21 14:25:29 +01:00
Fabio Alessandrelli
cbc450c0e5 Huge Debugger/EditorDebugger refactor. 2020-02-21 11:12:03 +01:00
Juan Linietsky
69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +01:00
Rémi Verschelde
54ac8eaba6 Remove more deprecated methods and code 2020-02-13 12:37:45 +01:00
Andrea Catania
eb07e87981 Optmized data sent during RPC and RSet calls.
- Now is sent the method ID rather the full function name.
- The passed IDs (Node and Method) are compressed so to use less possible space.
- The variant (INT and BOOL) is now encoded and compressed so to use much less data.
- Optimized RPCMode retrieval for GDScript functions.
- Added checksum to assert the methods are the same across peers.

This work has been kindly sponsored by IMVU.
2020-02-12 13:36:47 +01:00
Marcel Admiraal
f0db13502a Remove duplicate WARN_PRINT macro. 2020-02-05 11:13:24 +01:00
Tomasz Chabora
bbc36dbc67 Don't show conf warning if script is not tool 2020-01-07 21:28:16 +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
Martin Capitanio
a7df198c94 Setting the node process priority should not trigger an error
Fixes #33749
This function can be called outside the scene tree.
2019-11-21 18:08:52 +01:00
Hugo Locurcio
ae76c62601
Implement Node::get_process_priority() and its associated property
This closes #33660.
2019-11-17 17:48:50 +01:00
PouleyKetchoupp
139c0a4afe Expose Node::update_configuration_warning() to scripts
This method can be used to generate custom node warnings by script.

Node::_get_configuration_warning was already exposed to generate custom warnings, but it wasn't fully usable without being able to notify the scene tree when the warning needs to appear or change.
2019-10-17 12:20:35 +02:00
Rémi Verschelde
dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin
17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
fhuya
a7712cc9e4 Add new events and accompanying logic to notify when the app is paused and resumed on Android devices. 2019-09-19 13:29:49 -07:00
Hugo Locurcio
9eb10f1e4a
Add an editor_description property to Node for documentation purposes
It is implemented using editor-only metadata, in a way similar to
edit locking or Position2D gizmo extents.

This closes #2082.
2019-08-23 15:53:07 +02:00
Hugo Locurcio
c62302a432
Improve the scene tree signals/groups tooltip
The tooltip now displays the number of connections and groups
that are assigned to the hovered node.
2019-08-17 14:20:16 +02:00
Tomasz Chabora
af5e0fff66 Remove ERR_EXPLAIN from scene/* code 2019-08-09 13:54:52 +02:00
Rémi Verschelde
4d7439adaa
Merge pull request #31185 from mitchcurtis/get_path
Improve error message in Node::get_path()
2019-08-08 14:05:49 +02:00
Rémi Verschelde
f0ad034a1d
Merge pull request #31182 from mitchcurtis/remove_child
Improve error message in Node::remove_child()
2019-08-08 11:20:50 +02:00
Mitch Curtis
ae4a382dd2 Improve error message in Node::remove_child() 2019-08-08 09:38:32 +02:00
Mitch Curtis
c332eab864 Improve error message in Node::get_path() 2019-08-07 21:16:54 +02:00
Rémi Verschelde
05d58a4e6a
Merge pull request #31122 from Muller-Castro/enhancement
Unnecessary reassignments
2019-08-07 15:23:38 +02:00
qarmin
e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Muller-Castro
ffacd0a148 Removed unnecessary reassigns
Those assignments are duplicated since add_to_group() or remove_from_group() aren't changing the state of those members.
2019-08-06 17:40:47 -03:00
qarmin
6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
Rémi Verschelde
111154a4a5
Merge pull request #30498 from bojidar-bg/30495-cannot-insert-key
Fix inability to insert keys via Insert Key context menu
2019-07-11 19:36:33 +02:00
Bojidar Marinov
8ecbb6a20d
Fix inability to insert keys via Insert Key context menu
Fixes #30495
2019-07-10 21:03:04 +03:00
qarmin
01cc7a996b Use reference to constant in functions 2019-07-10 11:54:12 +02:00
Rémi Verschelde
6b30f284a0
Merge pull request #29980 from Dentrax/directed-by-qarmin
Fix some editor crashes
2019-07-01 14:59:29 +02:00
Furkan Türkal
7d8d337b2c fix some crashes 2019-07-01 14:28:29 +03:00
Rémi Verschelde
eaaff9da31
Merge pull request #29941 from qarmin/redundant_code_and_others
Remove redundant code, possible NULL pointers and others
2019-06-27 01:05:18 +02:00
Rémi Verschelde
6e9272eea8 Node: Fix logic of has/get_node_and_resource and document it
Also document NodePath.
2019-06-26 15:46:32 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde
6d16f2f053 Fix error macro calls not ending with semicolon
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
Rémi Verschelde
0823ae7ae4 Node::duplicate: Don't set name if original node is nameless
In practice this only happens when duplicating a node which is not in
the scene tree yet, as nameless nodes get assigned a generated name
when added to the scene tree.

Fixes #27319.
2019-05-28 12:40:44 +02:00
PouleyKetchoupp
3f174c86d0 Fixed scene tree update after changing node name in tool script 2019-05-24 15:27:22 +02:00
Rémi Verschelde
9dc9434b1b
Merge pull request #24437 from mateusfccp/single_quotes_option
Add settings for single-quotes on completion
2019-04-30 14:58:33 +02:00
Rémi Verschelde
201cdd358a
Merge pull request #28140 from Daw11/orphan-nodes
Add a monitor for the orphan nodes
2019-04-22 11:55:15 +02:00
Hein-Pieter van Braam-Stewart
20b0046945 Object::script may not be a valid Ref<Script>
It appears that Object::script may be a valid ScriptInstance but not be
castable to Ref<Script>. There were only 5 places in the code that made
this assumption. This commit fixes that.
2019-04-20 02:13:28 +02:00
Daw11
04d0371648 Add a monitor for the orphan nodes
- Allow the user to keep track of the nodes that might leak
- Possible fix for #27103
2019-04-17 23:13:16 +02:00
Juan Linietsky
c1dcdf6109 No more metadata and dependency indices kept in resources saved.
-Node folding is now saved externally together with the properties
-External resources remember their ID when scenes are saved.
2019-04-11 14:36:58 -03:00
Rémi Verschelde
50ef456c78
Merge pull request #26803 from ptrojahn/emptynode
Make get_node return NULL for empty NodePaths
2019-04-05 16:55:42 +02:00
Juan Linietsky
a18989602b Clean up notifications and merge Node and MainLoop ones for clarity, closes #27614 2019-04-04 10:34:41 -03:00
Paul Trojahn
97e8c88ce7 Make get_node return NULL for empty NodePaths
Fixes #25292
2019-03-08 21:31:36 +01:00
K. S. Ernest (iFire) Lee
b83c3827f3 Add check in folding to see if the nodepath exists to avoid message spam. 2019-01-30 20:19:44 -08:00
Rémi Verschelde
1ff170e67f Redo serial name fixup from 799ed2b989
reduz wanted the original PR reverted due to issues, so this follow-up had to be too
(done in 8cb54182ad). But he ended up adapting part of
the original PR in 27d7772381 without including this fix.
2019-01-11 23:02:57 +01:00
Juan Linietsky
27d7772381 Rewrote rename logic to be less buggy and more efficient, fixes #23803 and probably many recent bugs using GraphEdit 2019-01-10 18:58:16 -03:00
Rémi Verschelde
8cb54182ad Revert "Node: make _generate_serial_child_name manipulate numbers as String"
This reverts commits 1025e3ecea
and 799ed2b989.
2019-01-10 22:40:42 +01:00
volzhs
799ed2b989 Fix strip out spaces while generating serial number for node name 2019-01-08 22:37:45 +09: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
Mateus Felipe C. C. Pinto
ca1935d6f7 Add settings for single-quotes on completion 2018-12-18 12:48:36 -02:00
lupoDharkael
1025e3ecea Node: make _generate_serial_child_name manipulate numbers as String
The conversion from an String to int can overflow int and int64
so it is safer to manipulate strings when we try to find the next
available name for a Node.
2018-11-21 14:18:34 +01:00
Juan Linietsky
2d6b994e47 Massive speed up on deleting nodes, fixes #18673
Also makes the editor exit faster
2018-11-18 11:48:21 -03:00
Juan Linietsky
c5656b7468
Merge pull request #23564 from endragor/fix-remove-child-ordering
Notify node's moved children after sibling removed
2018-11-14 20:30:41 +01:00
Juan Linietsky
f2e54057ae -Moved EditorDefaultValue to ClassDB, made it core
-Removed one and zero hints for properties, replaced by default value
2018-11-08 11:30:59 -03:00
Ruslan Mustakov
3b02cd3e71 Notify node's moved children after sibling removed
Fixes #16213.
2018-11-07 16:31:25 +07:00
Juan Linietsky
e647342140 Moved folding outside the resource files, now saved outside the project. 2018-10-29 16:37:09 -03:00
DualMatrix
6afedaa498 Fixed error when duplicating a scene which has connection
Fixed error when duplicating a scene which has connection
2018-10-11 01:30:12 +02:00
Rémi Verschelde
344a453bb8
Merge pull request #22681 from akien-mga/fix-warnings
Fix warnings on release builds and some MSVC warnings
2018-10-03 19:05:55 +02:00
Rémi Verschelde
95131e6f23 Fix warnings on release builds (not DEBUG_ENABLED)
Fixes the following Clang 5 warnings:
```
modules/bmp/image_loader_bmp.cpp:46:60: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
modules/bmp/image_loader_bmp.cpp:48:61: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
drivers/png/image_loader_png.cpp:231:20: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
scene/gui/graph_edit.cpp:1045:8: warning: comparison of constant 0 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]

core/class_db.cpp:812:13: warning: unused variable 'check' [-Wunused-variable]
core/io/file_access_pack.cpp:172:11: warning: unused variable 'ver_rev' [-Wunused-variable]
core/math/bsp_tree.cpp:195:13: warning: unused variable 'plane' [-Wunused-variable]
core/math/bsp_tree.cpp:168:6: warning: unused variable 'plane_count' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:685:10: warning: unused variable 'ok' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:706:10: warning: unused variable 'ok' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:755:19: warning: unused variable 'var_type' [-Wunused-variable]
modules/gdscript/gdscript_function.cpp:1306:12: warning: unused variable 'err' [-Wunused-variable]

modules/gdscript/gdscript_function.cpp:158:15: warning: unused function '_get_var_type' [-Wunused-function]
modules/gdscript/gdscript_parser.cpp:750:20: warning: unused variable 'lv' [-Wunused-variable]
modules/gdscript/gdscript_parser.cpp:59:15: warning: unused function '_find_function_name' [-Wunused-function]
scene/main/node.cpp:2489:13: warning: unused function '_Node_debug_sn' [-Wunused-function]
```
2018-10-03 17:34:55 +02:00
DualMatrix
cb9559350f Fixed error when duplicating node from editor.
Fixed error when duplicating node from editor.
2018-10-03 14:59:16 +02:00
Max Hilbrunner
d878c828b5
Merge pull request #22115 from akerudesu/find-parent
Added find_parent method to node class
2018-09-22 17:15:38 +02:00
Unknown
0fdbf6b2ef Added find_parent method to node class 2018-09-15 18:22:29 +02:00
DualMatrix
b0d9f7686c Made duplicate_and_reown preserve groups 2018-09-14 18:13:41 +02:00
Rémi Verschelde
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
Juan Linietsky
4b6846a59d Ensure that tree_exited signal really happens after tree exited, fixes #19641 2018-09-07 15:31:53 -03:00
Rémi Verschelde
52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
Rémi Verschelde
404ee1a56b Style: Fix issues that went past CI 2018-08-21 21:28:06 +02:00
volzhs
4e9795aa99 Fix not to show configuration warning on every node has script 2018-08-15 21:35:06 +09:00
Juan Linietsky
ef5095720b -Deprecate ImageTexture::load
-Add warning to Image::load when loading resources
-Add script binding for get_configuration_warning
2018-08-14 16:53:20 -03:00
Andrea Catania
c1860fe88b Fixed process priority 2018-08-04 14:51:44 +02:00