Commit Graph

2809 Commits

Author SHA1 Message Date
Rémi Verschelde af80182016
Merge pull request #30407 from qarmin/small_fixess
Fixes minor issues found by static analyzer
2019-07-08 08:16:50 +02:00
hbina085 ff348e48f9 Removed a redundant check in PoolVector
The set method of PoolVector<T> performs an indexing check twice.
2019-07-07 19:04:56 -04:00
qarmin 9a77d748c0 Fixes minor issues found by static analyzer 2019-07-07 23:08:51 +02:00
Rémi Verschelde 44db85d6f6
Merge pull request #30382 from simonpuchert/geo-opt
Some small optimizations in core/math/geometry.h.
2019-07-06 21:07:52 +02:00
Simon Puchert 4b78e17b15 Optimize get_closest_point_to_segment*.
By combining all scalar factors we can get rid of a scalar * vector
multiplication and a square root operation, since the resulting formula
only uses the squared length.
2019-07-06 17:41:13 +02:00
Ibrahn Sahir 4e4697b1c4 Added release function to PoolVector::Access.
For clarity, assign-to-release idiom for PoolVector::Read/Write
replaced with a function call.
Existing uses replaced (or removed if already handled by scope)
2019-07-06 12:04:27 +01:00
LikeLakers2 e86f6faf64 MultiNodeEdit now only shows properties with the exact same PropertyInfo data 2019-07-05 17:40:06 -04:00
Toshiwo 3aff645114 when doing Vector3 slerp it is not necessary to have it normalized. 2019-07-05 11:17:52 -05:00
Rémi Verschelde 6e9cb44004
Merge pull request #30282 from neikeq/editor_in_cs_equals_win
Re-write mono module editor code in C#
2019-07-05 10:29:19 +02:00
Rémi Verschelde a149e412f7
Merge pull request #24086 from RandomShaper/bundle-pck-to-executable
Enhance game export
2019-07-05 10:28:29 +02:00
Ignacio Etcheverry 0639946c72 Fix localize_path not always working
We make sure the resource dir path ends with a trailing '/' for safety reasons, so we must make sure the path we compare it to does so as well.
2019-07-05 09:38:28 +02:00
Ignacio Etcheverry 270af6fa08 Re-write mono module editor code in C#
Make the build system automatically build the C# Api assemblies to be shipped with the editor.
Make the editor, editor player and debug export templates use Api assemblies built with debug symbols.
Always run MSBuild to build the editor tools and Api assemblies when building Godot.
Several bugs fixed related to assembly hot reloading and restoring state.
Fix StringExtensions internal calls not being registered correctly, resulting in MissingMethodException.
2019-07-05 09:38:23 +02:00
Rémi Verschelde 42a0148f17
Merge pull request #30296 from neikeq/issue-30127
Expose ResourceImporter to the scripting API
2019-07-05 09:20:05 +02:00
Rémi Verschelde 259a3fb1e9
Merge pull request #29744 from GodotExplorer/gdscript-completion-icons
Show icons for code completion options
2019-07-05 08:00:40 +02:00
Geequlim 10cfd87414 Show icons for code completion options 2019-07-05 09:25:50 +08:00
Ignacio Etcheverry 307eb34be0 Expose ResourceImporter to the scripting API
Fixes #30127
2019-07-04 16:11:57 +02:00
Rémi Verschelde 550f436f8f
Merge pull request #30263 from Faless/ws/wslay_pr
Use wslay as a WebSocket library
2019-07-04 15:55:33 +02:00
Fabio Alessandrelli 9e303ef71c WebSocket module now uses wslay library.
Both client and server are supported on native builds (as usual).

SSL server is still not supported, but will soon be possible with this
new library.

The API stays the same, we just need to work out potential issues due to
this big library switch.
2019-07-04 15:03:04 +02:00
Geequlim ed7ed52151 Parse more informations for code completion 2019-07-04 14:00:14 +08:00
Pedro J. Estébanez 40f4d3cf0f Add embedded PCK option to PC platforms
The basic point is as in 2.1 (appending the PCK into the executable), but this implementation also patches a dedicated section in the ELF/PE executable so that it matches the appended data perfectly.

The usage of integer types is simplified in existing code; namely, using plain `int` for small quantities.
2019-07-03 21:58:12 +02:00
Fabio Alessandrelli c13be79594 Add TCP Server is_listening method 2019-07-03 18:42:46 +02:00
Fabio Alessandrelli 24c52f1c2e Add b64 to string helper in CryptoCore 2019-07-03 18:42:46 +02:00
Fabio Alessandrelli 6c512e21a9 Add sha1 functions to string (using new CryptoCore) 2019-07-03 18:42:46 +02:00
Rémi Verschelde b0d41847ed SCons: Use CPPDEFINES instead of CPPFLAGS for pre-processor defines
It's the recommended way to set those, and is more portable
(automatically prepends -D for GCC/Clang and /D for MSVC).

We still use CPPFLAGS for some pre-processor flags which are not
defines.
2019-07-03 09:59:04 +02:00
Fabio Alessandrelli c798173332 Fix editor crash when StreamPeerSSL is unavilable.
The fix for EditorNode is a bit hacky, but the handling of the buttons
and features there is hacky too (based on enums that might not reflect
the actual state).
2019-07-02 15:34:34 +02:00
Rémi Verschelde e9d624d7ce
Merge pull request #30239 from Faless/crypto/crypto_core
CryptoCore class to access to base crypto utils.
2019-07-02 14:52:43 +02:00
Fabio Alessandrelli 564d93ff10 CryptoCore class to access to base crypto utils.
Godot core needs MD5/SHA256/AES/Base64 which used to be provided by
separate libraries.
Since we bundle mbedtls in most cases, and we can easily only include
the needed sources if we so desire, let's use it.

To simplify library changes in the future, and better isolate header
dependencies all functions have been wrapped around inside a class in
`core/math/crypto_base.h`.

If the mbedtls module is disabled, we only bundle the needed source
files independently of the `builtin_mbedtls` option.
If the module is enabled, the `builtin_mbedtls` option works as usual.

Also remove some unused headers from StreamPeerMbedTLS which were
causing build issues.
2019-07-02 12:36:27 +02:00
Rémi Verschelde 98879be276
Merge pull request #27510 from fire/screenshot_editor
Add editor screenshot on control - f12.
2019-07-02 11:30:16 +02:00
Rémi Verschelde c486b8dac0
Merge pull request #30223 from qarmin/properly_delete_thread
Remove thread to prevent memory leak
2019-07-02 11:26:29 +02:00
K. S. Ernest (iFire) Lee 05de0eafab Add editor screenshot on control - f12. 2019-07-01 13:39:21 -07:00
qarmin 6edd06e566 Remove thread to prevent memory leak 2019-07-01 15:07:06 +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
Rémi Verschelde b0ce9401ff
Merge pull request #30126 from qarmin/remove_unnecessary_code
Remove unnecessary code and add some error explanations
2019-07-01 14:32:04 +02:00
Furkan Türkal 7d8d337b2c fix some crashes 2019-07-01 14:28:29 +03:00
qarmin 3c154eb93b Remove unnecessary code and add some error explanations 2019-07-01 12:59:42 +02:00
Rémi Verschelde d17eac735c
Merge pull request #29815 from NilsIrl/plus_file_1
Replace ` + "/" + ` with `String::file_add()`
2019-07-01 12:06:35 +02:00
Rémi Verschelde 0db138a621 doc: Enforce default values for OS properties
Otherwise we end up fetching values from the current OS instance
when running doctool, so they would change based on the system or
even simply due to changes to the system clipboard.
2019-06-30 13:58:07 +02:00
Rémi Verschelde 850a54a2a5 Fix uninitialized variables in Line2D, JSONParseResult and TileMap 2019-06-30 13:58:07 +02:00
Rémi Verschelde b4aba3ae7c
Merge pull request #30177 from hbina/use_FALLTHROUGH_macro
Applied some of FALLTHROUGH macro usage from #30122
2019-06-29 23:40:08 +02:00
hbina085 9f0c6a6009 Many fallthrough switch cases now have the FALLTHROUGH macro to tell the compiler that this is intended. 2019-06-29 16:08:48 -04:00
Bojidar Marinov 55234d62b0
Remove bogus nulls from generated default values
Also, fix crash in PluginScript destructor.
2019-06-29 15:51:33 +03:00
Rémi Verschelde 1df38f2372
Merge pull request #30112 from AgentEnder/master
AStar get_current_point enabled consideration
2019-06-29 13:45:17 +02:00
Rémi Verschelde 52355c638b
Merge pull request #29380 from bojidar-bg/16086-docs-default-value
Add default values to the editor help, docs, and generated RST
2019-06-29 12:28:30 +02:00
Craigory V Coppola dc9659a9bf AStar get_closest_point/get_closest_position_in_segment enabled consideration 2019-06-29 02:04:13 -05:00
Rémi Verschelde a5bd40aa48
Merge pull request #30121 from DrMoriarty/encrypted_configfile
Add encrypted files support to ConfigFile
2019-06-28 12:06:44 +02:00
Rémi Verschelde 3942c939e3
Merge pull request #30135 from qarmin/fix_memory_leak_os
Fix small memory leak in OS.cpp
2019-06-27 22:06:52 +02:00
qarmin d408c254a2 Fix small memory leak in OS.cpp 2019-06-27 21:35:27 +02:00
Bojidar Marinov 0c4c36d823
Add default values to the editor help, docs, and generated RST
Also, make spacing of "=" in the editor help a bit more consistent.
Closes #16086
2019-06-27 18:29:35 +03:00
Vasiliy Makarov fcd8faf2f4 Add encrypted files support to ConfigFile
Fix #26477
Add in ConfigFile this methods:
load_encrypted(path, key)
load_encrypted_pass(path, password)
save_encrypted(path, key)
save_encrypted_pass(path, password)
2019-06-27 16:43:44 +03:00
Rémi Verschelde 1bf448dd87 Properly expose all Error constants to scripting languages 2019-06-27 12:48:26 +02:00
Rémi Verschelde 755b589384
Merge pull request #30096 from akien-mga/doc-misc-updates
doc: Proofread and complete various nodes
2019-06-27 08:12:34 +02: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
Andrii Doroshenko (Xrayez) 6f2233d13a Bind is_point_in_polygon in Geometry singleton 2019-06-27 00:20:22 +03:00
Rémi Verschelde 867dda1124 doc: Proofread and complete various nodes
All 100% completed: MainLoop, Node, Object, Path, Performance,
Reference, Resource, SceneState, SceneTree, UndoRedo.

Also fixed some en_GB occurrences as the reference spelling is en_US.
2019-06-26 23:05:51 +02:00
Alexander Holland 8f23f4b44e UndoRedo add version changed signal
added some functions to manage undo buttons
2019-06-26 16:32:34 +02:00
qarmin 4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
Rémi Verschelde a9cff880d6 doc: Document EncodedObjectAsID, expose its property 2019-06-26 10:50:45 +02:00
Fabio Alessandrelli 679bb882fc Fix PoolVector resize and subarray.
The first used to accept negative values, the second would crash if out
of bound.
2019-06-24 09:24:09 +02:00
Nils ANDRÉ-CHANG d2833d4f4d Replace ` + "/" + ` with `String::file_add()` 2019-06-23 13:33:50 +01:00
Rémi Verschelde 05a0a68c72
Merge pull request #24448 from lukad/toggle-system-console
Add option to toggle console window
2019-06-21 23:43:16 +02:00
Rémi Verschelde 1e833cadbc
Merge pull request #29935 from Faless/net/get_if_multicast_pr
Multicast, more network interfaces info
2019-06-21 10:21:01 +02:00
Fabio Alessandrelli e5e3f86648 Multicast support in NetSocket/PacketPeerUDP 2019-06-21 00:14:42 +02:00
Fabio Alessandrelli b574e476ec Implement IP.get_local_interfaces.
Allow getting interfaces names and assigned names.

On UWP this is not supported, and the function will return one interface
for each local address (with interface name the local address itself).
2019-06-21 00:14:42 +02:00
Rémi Verschelde 5c66771e3e
Merge pull request #29283 from qarmin/fix_some_always_same_values
Remove always true/false values
2019-06-20 21:10:10 +02:00
qarmin 072e40368e Fix always true/false values 2019-06-20 16:59:48 +02:00
Luka Dornhecker ad504b926f Add option to toggle console window on Windows
This is an editor setting and its value can also be toggled
using an entry in the Editor toolbar. The console will still
appear briefly when starting the project manager or editor,
as it's still compiled as console application.

Does not impact exported games, which will still run without
console in release and with console in debug mode.

A project setting or export option could be added to disable
it in debug mode if there's demand for it, but that would
greatly reduce the usefulness of debug builds if Windows users
can no longer report error and crash messages.

Fixes #17889.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2019-06-20 16:55:52 +02:00
JohnJLight 38d3bfe971 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +02:00
Rémi Verschelde 43a9b8c76c
Merge pull request #27237 from Chaosus/astar_2d
Added 2D functions to AStar
2019-06-19 15:07:59 +02:00
Rémi Verschelde 2b52cd3e5c
Merge pull request #28648 from KoBeWi/substr-1
Make second parameter of substr optional
2019-06-19 12:43:46 +02:00
Rémi Verschelde 22afebcad7
Merge pull request #29598 from GodotExplorer/uri-encode
Expose String.http_escape and String.http_unescape
2019-06-19 10:47:34 +02:00
Rémi Verschelde d6176db271 Unexpose subclasses of ResourceFormatLoader and -Saver
ResourceFormatLoader and ResourceFormatSaver are meant to be overridden
to add support for different formats in ResourceLoader and ResourceSaver.
Those should be exposed as they can be overridden in plugins.

On the other hand, all predefined subclasses of those two base classes
are only meant to register support for new file and resource types, but
should not and cannot be used directly from script, so they should not
be exposed.

Also unexposed ResourceImporterOGGVorbis (and thus its base class
ResourceImporter) which are editor-only.
2019-06-18 17:56:23 +02:00
Yuri Roubinsky 3caed76eda
Merge pull request #29862 from Chaosus/fix_astar_crash
Fix AStar set/is_point_disabled crash
2019-06-18 08:18:23 +03:00
Chaosus cc94a95fc9 Fix AStar set/is_point_disabled crash 2019-06-18 08:02:41 +03:00
Rémi Verschelde 0d61fc2c0f
Merge pull request #29752 from bruvzg/window_size_limits
Add ability to limit maximum/minimum window size.
2019-06-17 11:58:00 +02:00
Rémi Verschelde e864237f1a i18n: Fix extract.py support for new TTRC
Also make compatible with Python 3.
2019-06-16 22:02:44 +02:00
bruvzg b924fb97d6
Add ability to limit maximum/minimum window size. 2019-06-15 09:49:11 +03:00
Rémi Verschelde 2f0f7db42b
Merge pull request #29735 from sparkart/master
Limit Physics Process FPS above 0
2019-06-14 15:16:53 +02:00
Rémi Verschelde bd937ea397
Merge pull request #29488 from Daw11/astar-remove-node
Fix the performance of remove_point of AStar
2019-06-13 20:36:25 +02:00
Emmanuel Barroga 2cce5699ea Limit Physics Process FPS above 0
Resolves: #19734
2019-06-13 08:53:48 -07:00
Bastiaan Olij a9581d2b3f Added constants for the main buttons and axis used in VR 2019-06-13 22:54:08 +10:00
Rémi Verschelde b44488d823
Merge pull request #29702 from KoBeWi/fix_random_crash
Validate parameters of randi_range()
2019-06-12 23:07:39 +02:00
Tomasz Chabora d89478975f Validate parameters of randi_range() 2019-06-12 19:46:07 +02:00
Rémi Verschelde f410e7a8a9
Merge pull request #29616 from Calinou/humanize-size-clearer-rounding
Make humanized size rounding clearer by padding decimals with zeroes
2019-06-12 16:25:10 +02:00
Rémi Verschelde 73960e585b
Merge pull request #27193 from toasteater/fix/pcg-randf
Improved uniformity of RandomPCG::randf.
2019-06-12 15:21:58 +02:00
Rémi Verschelde 704f2c5d85
Merge pull request #29615 from Calinou/fix-editor-monitor-large-sizes
Fix display of large sizes in the editor monitors
2019-06-12 15:21:37 +02:00
Rémi Verschelde 4db4b7a605
Merge pull request #29583 from Toshiwoz/master
Fix Vector3 slerp method by normalizing cross product
2019-06-12 14:34:28 +02:00
Rémi Verschelde 0e6cac8ab8
Merge pull request #29465 from bruvzg/per_pixel_transp_impr
Removes redundant "splash" setting, improves per pixel transparency documentation.
2019-06-12 12:50:17 +02:00
Rémi Verschelde 971b5160c6
Merge pull request #29306 from qarmin/small_code_fixes
Small fixes to unrechable code, possibly overflows, using NULL pointers
2019-06-12 12:49:21 +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 f0bacf360d
Merge pull request #29467 from zaksnet/patch-1
replaced "divisor" with "delimiter" for methods split,rsplit and split_floats.
2019-06-11 13:31:41 +02:00
Zak 1a397f46e6 Improved documentation of rsplit Method for String class.
Improved documentation of rsplit Method for String class.

Removed "divisor" (i will also change variants_call.cpp) and added "delimiter" in its place. Also moved the example at the bottom of the description.
2019-06-11 13:39:18 +03:00
Hugo Locurcio 463d0988dd
Make humanized size rounding clearer by padding decimals with zeroes
For example, "5 MB" will now be displayed as "5.00 MB" to make the
rounding precision clear, regardless of the value being rounded.

This closes #29611.
2019-06-08 22:17:57 +02:00
Hugo Locurcio 746bfc3662
Fix display of large sizes in the editor monitors
Unlike the old custom method, the `String::humanize_size()`
method works well with file sizes above 2 GB.

This also tweaks the suffixes for spacing consistency and
uses the correct acronym for exabytes (EB).

This closes #29610.
2019-06-08 22:05:57 +02:00
geequlim ae839bd0d8 Expose String.http_escape and String.http_unescape 2019-06-08 16:33:12 +08:00
Toshiwo 416a7d06de Fix Vector3 slerp method normalizing cross product 2019-06-07 11:28:50 -05:00
Hein-Pieter van Braam-Stewart 64626f682e Fix a random SSL crash I saw once.
I don't know why this happened, I was debugging another issue. This
should take care of it though.
2019-06-06 13:46:54 +00:00
Daw11 605c5c71f4 Save inside the Points of AStar the neighbours that aren't connected
Improve the performance of remove_point because it doesn't have to search every neighbour of every node
2019-06-04 21:39:44 +02:00
bruvzg 54863b20e6
Removes redundant "display/window/per_pixel_transparency/splash" setting, improves per pixel transparency documentation. 2019-06-04 11:21:29 +03:00
Dawid Kurek 923aaf970f Remove unnecessary assignment 2019-06-03 23:25:07 +02:00
qarmin 8245db869f Small fixes to unrechable code, possibly overflows, using NULL pointers 2019-06-03 21:52:50 +02:00
Rémi Verschelde 85a3382958
Merge pull request #29431 from Calinou/fix-unix-permissions-errors
Fix errors when attempting to set UNIX permissions when unavailable
2019-06-03 20:54:09 +02:00
Hugo Locurcio cbd31d9f0b
Fix errors when attempting to set UNIX permissions when unavailable
This makes exporting from Windows to Linux work again.

This closes #29416.
2019-06-03 14:35:33 +02:00
Rémi Verschelde b9dc2e7e4d
Merge pull request #28099 from lupoDharkael/fix-completion
Fix code completion not working with class_name
2019-06-03 14:01:07 +02:00
Gilles Roudiere f247832832 Add configurable strength value to InputEventAction 2019-06-02 14:31:34 +02:00
Rémi Verschelde 3c4fab295b
Merge pull request #27789 from Giacom/move_towards
Added move_toward functions for float, Vector2 and Vector3
2019-06-01 12:05:18 +02:00
Rémi Verschelde e9be875007
Merge pull request #29340 from qarmin/fix_array_overflow
Fix array overflow when saving scene preview
2019-05-31 21:22:18 +02:00
Rémi Verschelde af2c742f53 Fix and expose String::strip_escapes(), use it in LineEdit paste
Supersedes #27736.
2019-05-31 15:49:14 +02:00
qarmin 2b4e828b55 Fix array overflow when saving scene preview 2019-05-31 13:22:22 +02:00
Rémi Verschelde 9ad9d1f3b3 Don't localize paths that contain but are not in the resource path
This issue could be triggered if you try to access a path which contains
the resource path string in its absolute path, while pointing to a directory
which is *not* in the resource path.

It's clearer with an example: with `/my/project` as resource path, the
previous logic would also localize `/my/project_data` to `res://data`, which
is incorrect and would lead to a cryptic error.

Fixes #24761.

Co-authored-by: volzhs <volzhs@gmail.com>
2019-05-30 16:03:12 +02:00
Rémi Verschelde 0411ab56f5
Merge pull request #25148 from capnm/capnm-print-corrupt-image-path
Print the path of a corrupt image
2019-05-30 14:52:55 +02:00
qarmin a32f020b53 Properly unlock mutex 2019-05-30 10:28:03 +02:00
Chaosus 0bc37de744 Added 2D functions to AStar 2019-05-30 07:10:07 +03:00
Rémi Verschelde 02bac239d9 FileAccessEncrypted: Be more explicit on decryption failure
Fixes #24505.
Supersedes #25278.
2019-05-29 17:57:37 +02:00
Rémi Verschelde 62c9af4072
Merge pull request #25647 from QbieShay/fix_25440
Added a setting for files in which the editor should search (project specific)
2019-05-29 16:58:28 +02:00
Rémi Verschelde 36591b1ae8
Merge pull request #28416 from JellyWX/binary-literals
Support for binary literals in GDScript
2019-05-29 08:41:05 +02:00
Rémi Verschelde 06633a8074
Merge pull request #26462 from SubSage/master
Fixes OS.execute; stderr was silenced; adds missing quote from exe args (windows)
2019-05-28 14:26:57 +02:00
Giacom c00427add3 Added move_toward functions for float, Vector2 and Vector3 2019-05-28 11:39:35 +01:00
Rémi Verschelde 7487d2f852
Merge pull request #28957 from aaronfranke/basis-optimize
Optimize Basis constructor for Axis Angle
2019-05-27 17:42:43 +02:00
Rémi Verschelde 86f9d1bf5e
Merge pull request #29001 from ibrahn/message-arg-destroy
MessageQueue::flush now always destroys parameters of a spent message
2019-05-27 13:29:06 +02:00
Rémi Verschelde e8fbb28e20
Merge pull request #29119 from bruvzg/native_icon_support
Add native window/taskbar icon support for Windows and macOS.
2019-05-27 12:09:42 +02:00
John Gabriel 58279eda27 Add "transparent" to named color list 2019-05-24 20:37:40 +01:00
bruvzg 2b9ed68d6a
Add native window/taskbar icon support for Windows and macOS.
Co-authored-by: Markus Törnqvist <mjt@nysv.org>
2019-05-24 14:23:57 +03:00
Andrii Doroshenko (Xrayez) 24e9a881c0 Expose 2D Delaunay triangulation in Geometry singleton
Can be used via scripting as `Geometry.triangulate_delaunay_2d(points)`

The interface is the same as in `Triangulate` library, returning indices
into triangulated points.
2019-05-24 13:10:13 +03:00
Andrii Doroshenko (Xrayez) 883ef8570a Expose 2D polygon boolean operations in Geometry singleton
Clipper 6.4.2 is used internally to perform polypaths clipping, as well
as inflating/deflating polypaths. The following methods were added:

```
Geometry.merge_polygons_2d(poly_a, poly_b) # union
Geometry.clip_polygons_2d(poly_a, poly_b) # difference
Geometry.intersect_polygons_2d(poly_a, poly_b) # intersection
Geometry.exclude_polygons_2d(poly_a, poly_b) # xor

Geometry.clip_polyline_with_polygon_2d(poly_a, poly_b)
Geometry.intersect_polyline_with_polygon_2d(poly_a, poly_b)

Geometry.offset_polygon_2d(polygon, delta) # inflate/deflate
Geometry.offset_polyline_2d(polyline, delta) # returns polygons

// This one helps to implement CSG-like behaviour:
Geometry.transform_points_2d(points, transform)
```

All the methods return an array of polygons/polylines. The resulting
polygons could possibly be holes which could be checked with
`Geometry.is_polygon_clockwise()` which was exposed to scripting as well.
2019-05-22 17:12:39 +03:00
Andrii Doroshenko (Xrayez) 9bf48db891 Build Clipper with `tools=no` and patch it to auto-disable exceptions
Reverts "Build polygon clipper only in tools builds" (see #17319)
which allows to build Clipper with tools disabled (release) and because
of that, Clipper has to be patched to optionally disable exceptions in
order to be built on some platforms.

Patched Clipper 6.4.2 to be compiled with exceptions enabled/disabled.
and ensure that Clipper-specific exception macros are defined: don't use
exceptions by default unless exception handling is detected.

Compilation with exceptions will be determined by various
C++ exceptions defines:

* ` __cpp_exceptions` is part of C++ feature testing macros (since C++98);
* `__EXCEPTIONS` is used by some GNU compilers;
* `_CPPUNWIND` is used by MSVC.

The user can override specific exceptions behavior via corresponding
`*_USER` macros (i.e. compiling for embedded systems).
2019-05-22 13:12:21 +03:00
Rémi Verschelde 26e0cc7aa3
Merge pull request #29041 from hbina/add_const
add const to methods that return literals
2019-05-21 15:16:41 +02:00
Rémi Verschelde 9065cc2402
Merge pull request #29011 from zann1x/master
Initialize padding on PoolByteArray serialization
2019-05-21 10:07:26 +02:00
hbina085 f78baa5f93 added a const keyword for a methods that return constant literal... 2019-05-21 02:16:30 -04:00
Rémi Verschelde defd960276
Merge pull request #27886 from LeonardMeagher2/obj_to_string
Allow overriding how scripted objects are converted to strings
2019-05-20 22:37:01 +02:00
Rémi Verschelde 6920c82742 Style: Fix issues with clang-format 8.0 2019-05-20 13:51:51 +02:00
Lukas Zanner c35f4e8808 Initialize padding on PoolByteArray serialization 2019-05-19 19:09:16 +02:00
Ibrahn Sahir 5626a1ec20 MessageQueue::flush now always destroys parameters of a spent message
Previously, destructors of Variant parameters were not called if the
target of the message was not found.
2019-05-19 14:05:15 +01:00
Rémi Verschelde e0574e1d98 Fix typos with codespell
Using codespell 1.15.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
doubleclick
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
```
2019-05-19 13:10:35 +02:00
Max Hilbrunner 33897d9b58
Merge pull request #28925 from Daw11/astar-sorted-array
Improve the performance of AStar
2019-05-18 23:20:02 +02:00
Aaron Franke 9ff708f008
Optimize Basis constructor for Axis Angle 2019-05-17 05:11:12 -04:00
Max Hilbrunner 2809d86156
Merge pull request #28944 from Faless/mix/object_get_indexed
Fix Object::get_indexed for simple properties.
2019-05-17 00:48:39 +02:00
Max Hilbrunner 05cb337f2d
Merge pull request #28587 from Daw11/lanczos
Implement Lanczos image filter
2019-05-16 23:25:48 +02:00
Fabio Alessandrelli d39ffc101b Fix Object::get_indexed for simple properties.
Object::get_indexed was not correctly reporting invalid keys if the name
was a direct property (not a subproperty), causing for example Tween to
not report correctly a bad interpolate_property key.
2019-05-16 23:22:52 +02:00
Daw11 cc7be6c643 Use a binary heap for the open list of Astar 2019-05-16 20:14:35 +02:00
Gilles Roudière 3bfa080c9c Fix NaN with get_action_strength 2019-05-15 11:21:10 +02:00
Fabio Alessandrelli 76f262d2f4 Better handle some self-RSET/RPC in MultiplayerAPI
Allow calling yourself via RPC/RSET if the mode allows it.
Better error messages when you are not allowed to call yourself.
2019-05-12 11:37:26 +02:00
Aaron Franke 702b539405
Change "ID" to lowercase "id"
Reasoning: ID is not an acronym, it is simply short for identification, so it logically should not be capitalized. But even if it was an acronym, other acronyms in Godot are not capitalized, like p_rid, p_ip, and p_json.
2019-05-09 06:25:32 -04:00
Fabio Alessandrelli bba77fe387 Avoid _can_call_mode resetting error message in MultiplayerAPI 2019-05-08 22:14:41 +02:00
Rémi Verschelde fcbadd4334
Merge pull request #28525 from MunWolf/func_ref_validation
Added an is_valid function to FuncRef
2019-05-06 14:23:16 +02:00
Daw11 28bff3d1ad Implement Lanczos image filter 2019-05-05 14:03:56 +02:00
Leonard Meagher f7eb426e2e Allow overriding how scripted objects are converted to strings
solves #26796

- ADD `String to_string()` method to Object which can be overriden by `String _to_string()` in scripts
- ADD `String to_string(r_valid)` method to ScriptInstance to allow langauges to control how scripted objects are converted to strings
- IMPLEMENT to_string for GDScriptInstance, VisualScriptInstance, and NativeScriptInstance
- ADD Documentation about `Object.to_string` and `Object._to_string`
- Changed `Variant::operator String` to use `obj->to_string()`
2019-05-03 15:06:05 -07:00
Tomasz Chabora 0b8a785539 Make second parameter of substr optional 2019-05-03 19:46:56 +02:00
Rémi Verschelde 867b96eb71 Locales: Add some missing locale names 2019-05-02 09:22:40 +02:00
Rémi Verschelde ae41e35191
Merge pull request #27676 from qarmin/small_fixes_2
Small fixes to static analyzer bugs
2019-05-01 08:19:04 +02:00
Aaron Franke 620ec4703f
Make "decimal" functions more consistent
In GDScript, rename "decimals" to "step_decimals". In C#, add "StepDecimals", but keep the old functionality in a method called "DecimalCount".
2019-04-30 13:49:17 -04:00
Rémi Verschelde a7f00f3bac
Merge pull request #28530 from akien-mga/scons-prepend-cpppath
SCons: Always use env.Prepend for CPPPATH
2019-04-30 18:23:38 +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 d52b70fb5e SCons: Always use env.Prepend for CPPPATH
Include paths are processed from left to right, so we use Prepend to
ensure that paths to bundled thirdparty files will have precedence over
system paths (e.g. `/usr/include` should have lowest priority).
2019-04-30 13:12:06 +02:00
Rémi Verschelde d6b20e854c
Merge pull request #27294 from lupoDharkael/rect2i
Add missing methods to Rect2i
2019-04-30 11:46:40 +02:00
Rikhardur Bjarni Einarsson 9be8424ef9 Added an is_valid function to FuncRef so script can check if it is safe to call it. 2019-04-29 23:38:42 +01:00
Rémi Verschelde 554c0ea90b
Merge pull request #28423 from neikeq/dont-forget-to-think-a-name-for-this-branch
C#: Deprecate accessor methods and generate correct int and float types
2019-04-29 16:56:25 +02:00
Rémi Verschelde 85c27f9c90
Merge pull request #28452 from Sintinium/undoredo-lock
Undo support for locking and grouping for both 2D and 3D
2019-04-29 16:23:28 +02:00
Ignacio Etcheverry 3380565e4b C#: Generate the correct integer and floating point types 2019-04-27 01:30:46 +02:00
Sintinium d1fa546dc9 Undo support for locking and grouping for both 2D and 3D 2019-04-26 18:16:59 -05:00
Aaron Franke b659e1eb2b
Use approximate equallity methods in many places 2019-04-25 13:20:29 -04:00
Aaron Franke b2e1c9c276
[Core] Approximate equality 2019-04-25 13:20:29 -04:00
jude-lafitteIII d3cc9c0bf1 Support for binary literals in GDScript. Added an error that shows if a point is written in a hex literal. Added highlighting for binary literals in GDScript 2019-04-25 13:44:27 +01:00
Rémi Verschelde af5b8ec2a8
Merge pull request #28376 from MuffinManKen/translation_server_get_all_loaded_locales
Add method to get locales that have loaded translations
2019-04-25 12:32:15 +02:00
Ken Paulson 6b117c44fb Added TranslationServer::get_loaded_locales to return an array of all locales with a loaded Translation 2019-04-24 21:39:29 -04:00
Rémi Verschelde c2a669a9f0 SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGS
Many contributors (me included) did not fully understand what CCFLAGS,
CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them
in the way they are intended to be.

As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html

- CCFLAGS: General options that are passed to the C and C++ compilers.
- CFLAGS: General options that are passed to the C compiler (C only;
  not C++).
- CXXFLAGS: General options that are passed to the C++ compiler. By
  default, this includes the value of $CCFLAGS, so that setting
  $CCFLAGS affects both C and C++ compilation.
- CPPFLAGS: User-specified C preprocessor options. These will be
  included in any command that uses the C preprocessor, including not
  just compilation of C and C++ source files [...], but also [...]
  Fortran [...] and [...] assembly language source file[s].

TL;DR: Compiler options go to CCFLAGS, unless they must be restricted
to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to
CPPFLAGS.
2019-04-24 16:57:58 +02:00
lupoDharkael 2ad302cec4 Don't allow class_name in built-in scripts 2019-04-17 17:06:21 +02:00
lupoDharkael 145a45fd3f Fix code completion not working with class_name 2019-04-16 22:27:13 +02:00
Rémi Verschelde 4f81945fed
Merge pull request #28052 from muiroc/settings_decodes_objects
Enable object decoding when serializing binary project settings
2019-04-16 10:33:34 +02:00
Guilherme Felipe 1bae73d7d0 Add Input::get_current_cursor_shape
[Clean up] Removed unused/unnecessary methods.
2019-04-15 15:22:09 -03:00
muiroc 1f54b11da6 Enable object decoding when serializing binary project settings 2019-04-15 15:30:54 +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
Juan Linietsky e33764744c Added generator audio stream, and spectrum analyzer audio effect
Made AudioFrame and Vector2 equivalent for casting.
Added ability to obtain the playback object from stream players.
Added ability to obtain effect instance from audio server.
2019-04-10 12:58:06 -03:00
Rémi Verschelde c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02: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
Rémi Verschelde 918de768a5
Merge pull request #27711 from neikeq/ifdef-clang-tidy
Replace a few #if/#elif with #ifdef and "#elif defined"
2019-04-08 12:24:30 +02:00
Rémi Verschelde 3cf2bdbd84
Merge pull request #27506 from Chaosus/astar
Added functions to AStar for disable/enable points to effectivly create obstacles
2019-04-08 12:19:51 +02:00
Rémi Verschelde 7f3373d79f
Merge pull request #27452 from Chaosus/direction_to
Added method to retrieve a direction vector from one point to another
2019-04-08 12:00:54 +02:00
Rémi Verschelde a994db62df
Merge pull request #27644 from lupoDharkael/bus
Allow default audio bus layout modification
2019-04-08 11:06:35 +02:00
Rémi Verschelde 1ca555f1fb
Merge pull request #26760 from Xrayez/26744-fix-string-to-lower
Reorder reverse caps characters table for string lower case conversion
2019-04-08 10:48:15 +02:00
Rémi Verschelde d211aff777
Merge pull request #27231 from Chaosus/smoothstep
Added smoothstep built-in function
2019-04-08 10:03:42 +02:00
Chaosus cc71fb2308 Added functions to AStar for disable/enable points 2019-04-08 09:28:03 +03:00
Juan Linietsky cd4449e7ab Add FileAccess::set_unix_permissions for Unix platforms 2019-04-07 15:45:30 -03:00
Hein-Pieter van Braam f2d3d3e679
Merge pull request #24269 from xsellier/feature/master-add-sha256
Add SHA256 for PoolByteArray
2019-04-23 06:38:03 +03:00
Hein-Pieter van Braam 5d33f241f0
Merge pull request #26064 from JFonS/add_frustum_camera_mode
Add FRUSTUM camera mode, allowing tilted frustums
2019-04-23 06:20:13 +03:00
Ibrahn Sahir 9d0b3b300c fixed an access after free in OS_X11::set_context.
Added constructor and assignment operator for CharString
from const char* to simplify memory management when working with
utf8/ascii strings for APIs taking char*.
Reworked OS_X11::set_context to use CharString and avoid some manual
memory management.
2019-04-22 13:34:17 +01:00
Rémi Verschelde 05dda9f87c
Merge pull request #26787 from ptrojahn/utf8assign
Support UTF-8 input action names
2019-04-22 12:02:05 +02:00
Rémi Verschelde 3610b4fd77
Merge pull request #28179 from neikeq/welp
Use StringBuilder in C# bindings generator
2019-04-22 11:52:30 +02:00
Rémi Verschelde c66ed35004
Merge pull request #27376 from follower/patch-1
Typo fix: "the function exists" -> "the function exits"
2019-04-21 20:16:56 +02:00
Hein-Pieter van Braam bc7178422e
Merge pull request #28217 from hpvb/fix-28089
Don't crash on printing nested types
2019-04-21 00:46:07 +03:00
Fabio Alessandrelli 175942dcd1
Merge pull request #24951 from Mr-Slurpy/local-rpc-sender-id-fix
Sender network id is now set to local network id for local rpc calls.
2019-04-20 13:39:05 +02:00
Rémi Verschelde b3d2584960
Merge pull request #28210 from hpvb/fix-28134
Object::script may not be a valid Ref<Script>
2019-04-20 10:25:39 +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
Hein-Pieter van Braam-Stewart 8b1e297fc6 Don't crash on printing nested types
When adding an Array or Dictionary to itself operator String() got in an
infinite loop. This commit adds a stack to operator String() (Through
the use of a new 'stringify method'). This stack keeps track of all
unique Arrays and Dictionaries it has seen. When a duplicate is found
only a static string is printed '[...]' or '{...}'.

This mirror Python's behavior in a similar case.
2019-04-20 02:01:55 +02:00
Juan Linietsky 04847ef5f9 Added ability for multiple images to be imported as an atlas
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
2019-04-19 15:56:34 -03:00
Ignacio Etcheverry f64aa02933 Use StringBuilder in C# bindings generator
- Also fixed generation of empty summary comments when no comment should have been generated.
2019-04-19 02:11:39 +02:00
Rémi Verschelde 20265879e2 Compression: Set Zstd max window size via public parameter
`ZSTD_DCtx_setMaxWindowSize` is still part of the experimental API
(thus unexposed in the shared library). Upstream examples seem to
use `ZSTD_d_windowLogSize` instead, so it's probably what we should
use too.

Fixes #17374.
Distro packagers can now unbundle Zstd.
2019-04-18 13:47:42 +02:00
Daniel Eliasinski 0606062268 Sender network id is now set to local network id for local rpc calls. 2019-04-16 21:53:09 -04:00
Ignacio Roldán Etcheverry 9e326ce090
Merge pull request #27776 from neikeq/issue-27772
core_bind: Use the appropriate enum instead of int
2019-04-07 19:35:16 +02:00
Ignacio Etcheverry ebe2f4ea09 core_bind: Use the appropriate enum instead of int 2019-04-07 18:52:39 +02:00
Chaosus 514a3fb96a Added smoothstep built-in function 2019-04-07 14:11:26 +03:00