Commit Graph

4205 Commits

Author SHA1 Message Date
Marcel Admiraal d0fb6d6971 Clear a Bullet Area's overlappingObjects vector when removing an area
from a space.

(cherry picked from commit a615d359e8)
2020-07-06 19:17:11 +02:00
Ryan Roden-Corrent a8d4ca0e1b Include gdscript warning name in the warning message.
Occasionally you want to ignore a warning with a `warning-ignore`
comment, and you have to go into the settings to look up what the
actual name of the warning is. This patch appends the warning name to
the end of the warning so you know what string to use to ignore it,
similar to other linters like pylint.

For example

```
"The signal 'blah' is declared but never emitted.";
```

is now

```
"The signal 'blah' is declared but never emitted. (UNUSED_SIGNAL)";
```

(cherry picked from commit de3ad3b30e)
2020-07-06 16:51:17 +02:00
Thakee Nathees 9ce1fe59ea Fix: editor crash on super constructor called
Fix: #39909
(cherry picked from commit 023b3f2786)
2020-07-06 16:47:44 +02:00
endlesstravel 13d4813ddf fix crash when pass null in print array in GD.print
fix crash when pass null in print array in GD.print 2

fix crash when pass null in print array in GD.print 3

fix space

(cherry picked from commit d2461bad63)
2020-07-03 15:38:07 +02:00
Paul Herman 850f07a4d9 Expose loading TGA images in Image.
(cherry picked from commit 7d4b3e6587)
2020-07-03 13:17:57 +02:00
Rémi Verschelde 24f527b561
Merge pull request #39996 from naithar/feature/ios-gdnative
[3.2] Add support of iOS's dynamic libraries to GDNative
2020-07-03 07:48:45 +02:00
Rémi Verschelde 44a516986d
Merge pull request #39084 from madmiraal/backport-37314
[3.2] Better damping implementation for Bullet rigid bodies
2020-07-02 13:26:03 +02:00
Sergey Minakov 0e2bc779ed GDNative export: do not add fake lookup table if static lib is not used 2020-07-02 12:47:58 +03:00
Sergey Minakov 8fff25df09 GDNative Editor: Support selecting frameworks for iOS 2020-07-02 12:47:20 +03:00
Sergey Minakov 6001e10054 GDNative: support dynamic loading of iOS frameworks 2020-07-02 12:38:51 +03:00
Rémi Verschelde 3247ac4b0e
Merge pull request #39981 from madmiraal/fix-39919-3.2
[3.2] Fix CSG Visual Bug.
2020-07-01 08:48:09 +02:00
Marcel Admiraal 22ff17793c Use is_equal_approx() instead of vertex_snap when checking if ray is
colliding with equiplanar CSG faces.
2020-06-29 19:48:47 +01:00
Marcel Admiraal 8e120230a1 Create degenerate triangles when inserting an edge into a CSG face.
They will be deleted when the faces are merged, but their edges are
needed for merging faces.
2020-06-29 16:40:53 +01:00
Rémi Verschelde b833296cbb
Merge pull request #39943 from bruvzg/macos_apple_silicon_3
[macOS, 3.2] Add support for the Apple Silicon (ARM64) build target.
2020-06-29 15:30:03 +02:00
bruvzg 43888ebfaf
[macOS, 3.2] Add support for the Apple Silicon (ARM64) build target. 2020-06-29 14:43:29 +03:00
Tomasz Chabora 5b7eb3fd3f Improve the preload and load descriptions
(cherry picked from commit 13298ed873)
2020-06-29 10:58:25 +02:00
Mark Kuo cb9bc18102 VideoStreamGDNative: close file in cleanup
We should close the file handle when we are done.

(cherry picked from commit 3b05d2c989)
2020-06-29 10:57:59 +02:00
Rémi Verschelde 34c5133e6a
Merge pull request #39604 from Faless/js/3months_backport
[HTML5 - 3.2] Backport most changes/improvement in master.
2020-06-26 20:50:58 +02:00
Rémi Verschelde d6ff55f30b
Merge pull request #39784 from neikeq/3.2-visualstudio-support
[3.2] C#: Add Visual Studio support
2020-06-26 20:49:35 +02:00
Ignacio Etcheverry c682410379 Mono/C#: Fix unhandled exception not being printed
For some reason `mono_unhandled_exception` is not
printing the exception as its comment claims.
Use `mono_print_unhandled_exception` instead.

(cherry picked from commit f87ae395ee)
2020-06-26 08:10:24 +02:00
Rémi Verschelde c8586d3837
Merge pull request #39840 from neikeq/3.2-use-/restore-instead-of-/t-restore
[3.2] Mono/C#: Use /restore instead of /t:restore when building
2020-06-26 08:08:40 +02:00
Ignacio Etcheverry abc453f9b6 [3.2] Mono/C#: Use /restore instead of /t:restore when building
Documentation recommends not to use /t:restore
together with other targets (like /t:build),
as it messes with the environment.
2020-06-25 23:57:44 +02:00
Ignacio Etcheverry 7af6a4cc50 [3.2] Fix DebugPlay request handler ignoring BuildBeforePlaying
This must have been missed when backporting the new protocol to 3.2.
2020-06-25 21:20:44 +02:00
Rémi Verschelde 8f28e0861f
Merge pull request #39762 from naithar/feature/ios-modules
Enable iOS modules and fix missing symbols errors (3.2)
2020-06-24 22:50:05 +02:00
Ignacio Etcheverry d0f365fe0f [3.2] C#: Fix completion request with case insensitive resource path
Sometimes Visual Studio documents have the root path all in upper case.
Since Godot doesn't support loading resource files with a case insensitive path,
this makes script resource loading to fail when the Godot editor gets code
completion requests from Visual Studio.
This fix allows the resource path part of the path to be case insensitive. It
still doesn't support cases where the rest of the path is also case insensitive.
For that we would need a proper API for comparing paths. However, this fix
should be enough for our current cases.
2020-06-23 21:04:08 +02:00
Ignacio Etcheverry d8af79140e [3.2] C#: Add VisualStudio support 2020-06-23 21:01:54 +02:00
Sergey Minakov 45a6628b15 SCons: Enable iOS modules for ARKit and Camera 2020-06-22 23:23:03 +03:00
PouleyKetchoupp d2aa3031dc Fix crashes with invalid shapes in BulletPhysicsDirectSpaceState queries
(cherry picked from commit 8b0232bf29)
2020-06-22 12:03:21 +02:00
Rémi Verschelde 327479472e Revert "return boxed long when marshalling a godot int to mono runtime in dynamic contexts"
This reverts commit 42a31501a8.

It breaks compat as is and needs some further work before it can be
cherry-picked for 3.2.x.
2020-06-22 08:35:21 +02:00
Rémi Verschelde f99cbb94cc Export: Rename 'Windows Universal' to 'UWP'
It's otherwise too easy to be confused between 'Windows Desktop' (Win32)
and 'Windows Universal' (UWP).

(cherry picked from commit 08ef0aab16)
2020-06-21 21:39:44 +02:00
Rémi Verschelde 804b53bdbb
Merge pull request #37500 from madmiraal/check-motion-before-bullet-sweep-3.2
[3.2] Check for motion in cast_motion() before doing Bullet convexSweepTest().
2020-06-21 18:31:52 +02:00
Marcel Admiraal b006f5402d Check for motion in cast_motion() before doing Bullet convexSweepTest().
Also ensure that default closest_safe and closest_unsafe values are
defined in cast_motion() and before cast_motion() is called.
2020-06-21 16:28:01 +01:00
Marcel Admiraal fa0ee28826 Check if point's index exists before adding it to the list of points
that need to split faces when avoiding creating degenerate faces
while merging CSG faces.
2020-06-21 14:41:05 +01:00
Michael Belousov 42a31501a8 return boxed long when marshalling a godot int to mono runtime in dynamic contexts
(cherry picked from commit 60fcefba69)
2020-06-19 16:17:27 +02:00
Hugo Locurcio 88c22cb648 Document Mono-specific classes
This fully documents all Mono-specific classes.

(cherry picked from commit 24a8d43272)
2020-06-18 11:33:18 +02:00
Rémi Verschelde bf913d6917 DocData: Skip language-specific ClassDoc without methods/constants
Removes the useless `@C#`, `@NativeScript` and `@VisualScript` entries.

(cherry picked from commit ba0db95909)
2020-06-18 11:29:28 +02:00
Rémi Verschelde d8b543c991 DDS: Fix loading files without DDSD_CAPS or DDSD_PIXELFORMAT
MSDN says:

> When you write .dds files, you should set the DDSD_CAPS and
> DDSD_PIXELFORMAT flags, and for mipmapped textures you should also
> set the DDSD_MIPMAPCOUNT flag. However, when you read a .dds file,
> you should not rely on the DDSD_CAPS, DDSD_PIXELFORMAT, and
> DDSD_MIPMAPCOUNT flags being set because some writers of such a file
> might not set these flags.

https://docs.microsoft.com/en-us/windows/win32/direct3ddds/dds-header

¯\_(ツ)_/¯

Fixes #39516.

(cherry picked from commit 0f21249a2d)
2020-06-18 11:29:28 +02:00
Thakee Nathees 438f1a8238 Fix: Ctrl + Click not working for subclasses
(cherry picked from commit 95b0a00d2c)
2020-06-18 11:29:28 +02:00
Thakee Nathees fc92f83c30 Debugger stepping to incorrect line fix
Fix: #39296
(cherry picked from commit fc89c5c76d)
2020-06-18 11:29:28 +02:00
Thakee Nathees 931a927a40 shodowed var warning for `for` loop counter
Fix: #39268
(cherry picked from commit 54835a5302)
2020-06-18 10:51:45 +02:00
Thakee Nathees bf9df88a7c GDScript debugger incorrect error line fixed
if the first line of an else or an elif throws a runtime error the
debugger shows incorrect line number.

(cherry picked from commit 9325671faa)
2020-06-18 10:51:45 +02:00
Fabio Alessandrelli 806b23208f Fix modules with closure compiler. 2020-06-18 09:21:14 +02:00
Rémi Verschelde 1cf8652945
Merge pull request #39263 from ThakeeNathees/is-operation-fail
[3.2] Fix `is` operation fail on get_script()
2020-06-16 16:28:43 +02:00
Rémi Verschelde 93e20a4cd4 GDScript LSP: Fix wrong error checks added in #39385
Reverts `latest_client_id` back to 0, as I misunderstood how the client
IDs are assigned and, without further testing and debugging, I can't
say if this was a bug or a valid default value.
Similarly, a `latest_client_id` of -1 is no longer raising an error.

Fixes #39548.

(cherry picked from commit 786f4ada35)
2020-06-15 14:34:35 +02:00
Maganty Rushyendra 87f999274b Fix RegEx example in class doc and correct typo
Fix minor errors to do with `search_all` example in RegEx and
typo in RegExMatch class docs.

(cherry picked from commit e5d93f7a66)
2020-06-15 14:34:35 +02:00
Maganty Rushyendra 158e8ee051 Enable Unicode support for RegEx class
Build PCRE2 thirdparty library with unicode support. RegEx objects
in Godot can now be used to recognize unicode strings.

(cherry picked from commit 9f10f6779c)
2020-06-11 10:00:06 +02:00
Rémi Verschelde 7bf9787921 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

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

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

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

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

(cherry picked from commit cd4e46ee65)
2020-06-10 15:30:52 +02:00
Rémi Verschelde 3edae035d5 GDScript LSP: Fix crash in notify_client
`latest_client_id` now defaults to `-1` (invalid ID) instead of `0`.

Also fix typo in notification `gdscrip_client/changeWorkspace`,
and fix argument names in method binds.

Fixes #39375.

(cherry picked from commit e34f33711b)
2020-06-10 15:30:52 +02:00
unknown 56da70f2e8 Removed variables and #include in EditorSceneImporterAssimp::import_scene that became unused after the recent commit ec1bf96(#39363).
(cherry picked from commit 365c35f30e)
2020-06-10 15:30:52 +02:00
Marcus Elg f1ca218ce7 Fix fbx import assimp error
(cherry picked from commit 29abbccc5f)
2020-06-10 15:30:52 +02:00
Rémi Verschelde e891fae52b
Merge pull request #39134 from abustin/fbx_mesh_compression_fix
Respect 'mesh compression' editor import option in Assimp and glTF importers
2020-06-08 13:16:39 +02:00
Hugo Locurcio aeb5513bab Tweak the GDScript error message about passed argument type mismatch
This makes it less confusing.

This closes https://github.com/godotengine/godot-proposals/issues/670.

(cherry picked from commit 30053de182)
2020-06-05 12:50:55 +02:00
Fabio Alessandrelli 0db5315f8a Fix WebRTCPeerConnection set_local_description doc
ice_candidate_created should be emitted after set_local_description no
matter the type of the description (assuming no error is returned of
course).

(cherry picked from commit 39bcbf5690)
2020-06-05 12:47:16 +02:00
Thakee Nathees 837cba7567 predefined var check for `for` loop counter
(cherry picked from commit e153772de2)
2020-06-05 12:45:12 +02:00
Swarnim Arun 83c15ff469 Fix crashing of VisualScript due to...
Attempting to move the function node to another function whose data connection is a dependency of the node the specific node being moved to a different function during changes to sequence connections.
By skipping, if the from_node is a function_node during the data connection dependencies scan.
Should fix #37991

(cherry picked from commit 5c48631509)
2020-06-04 12:16:40 +02:00
NutmegStudio 96a3b91eee Fixes building mono release templates
(cherry picked from commit a77f633161)
2020-06-04 12:09:40 +02:00
George Marques a8332e30f0 GDScript: Fix assert message when no custom message is set
(cherry picked from commit f29a2e2606)
2020-06-04 12:09:39 +02:00
Maganty Rushyendra e34929feaa Update Mono C# warning to reflect latest list of platforms supported
Simple fix for #38627. iOS (#20268) and HTML5 (#20270) removed from list of exceptions
for platforms supported in warning message.

(cherry picked from commit 3d03be7a56)
2020-06-04 12:09:39 +02:00
Rémi Verschelde 1bd51883c0 xatlas: Sync with upstream 470576d
(cherry picked from commit 59780fd046)
2020-06-04 11:15:06 +02:00
Thakee Nathees 8f795cb38e Fix `is` operation fail on get_script()
Fix: #39244
2020-06-03 21:04:48 +05:30
George Marques a0983637cf
GDScript: Allow get_script() to be considered a type 2020-06-03 10:48:43 -03:00
Alex Bustin 8a024ca294 Respect 'mesh compression' editor import option in Assimp (ie. FBX) and glTF importers 2020-05-28 15:28:47 -07:00
Marcel Admiraal 5d8b0649be Apply old method for linear & angular damping in Bullet, in order to
make it easier to tweak and consistent with Godot Physics.

Include patch applied to Bullet master to enable dampings greater than 1.
2020-05-27 17:53:43 +01:00
Marcel Admiraal 8f0f2bf4ef Better damping implementation for Bullet rigid bodies 2020-05-27 17:50:24 +01:00
Marcel Admiraal 08fa7cd8d9 Correct Bullet's default Area angular damp value. 2020-05-27 11:53:41 +01:00
Rémi Verschelde 7c332d9386
Merge pull request #39040 from Xrayez/modules-search-path-3.2
[3.2] Add `custom_modules` build option to compile external user modules
2020-05-25 17:02:27 +02:00
Ignacio Etcheverry f0bc3482d4 Mono/C#: Don't try to load project assembly in project manager
This was causing an error message when launching the manager,
because there is no project assembly to load.

(cherry picked from commit d7e21ecd63)
2020-05-25 16:34:15 +02:00
Tan Wang Leng 48a2fd7a3d gdscript_parser: Fix "unreachable code" false positive for loops
Depending on the conditional statements of the 'for' and 'while' loops,
their body may not even execute once. For example:

    func a():
        var arr = []
        for i in arr:
            return i
        # can be reached, but analysis says cannot
        return -1

    func b():
        var should_loop = false
        while should_loop:
           return 1
        # can be reached, but analysis says cannot
        return 0

The parser will complain that the statements after the comment cannot
be reached, but it is clearly possible for our scenario. This is
because the parser falsely assumes that the loop body will always
execute at least once.

Fix the code to remove this assumption for both of those loops.

(cherry picked from commit 7b1423a61e)
2020-05-25 16:31:07 +02:00
James Buck 9347a6ad6a Trigger an error when trying to define a preexisting signal in GDScript
A class can't have multiple signals with the same name, but previously users
would not be alerted to a conflict while editing the script where it occurred.
Now a helpful error will appear in the editor during script parsing.

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

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

Features:

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

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

Implementation details:

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

(cherry picked from commit a96f0e98d7)
2020-05-25 17:08:38 +03:00
Thakee Nathees d611bd970d regression: dictionary key no autocomplete fix
Fix: #38998
(cherry picked from commit 13c372b522)
2020-05-25 15:58:25 +02:00
Ignacio Etcheverry 0da84b50c0 Mono/C#: Fix values not updated in remote inspector
(cherry picked from commit 51e1614d28)
2020-05-25 11:46:03 +02:00
Ignacio Etcheverry ce09d0c5e1 Add SCons option to not build C# solutions 2020-05-22 03:12:54 +02:00
Ignacio Etcheverry 6dfd80673a Mono/C#: Remove script load error about not a Godot.Object
Any C# file can be loaded as script and at load
time we don't yet know if it's actually meant to
be used as a script. As such, such an check can
result in a lot of false errors.

If the file is really meant to be used as a
script, an error would be printed later when
attempting to instantiate it any way.

(cherry picked from commit 38cd2152e6)
2020-05-20 11:41:01 +02:00
Pedro J. Estébanez 8f90d423b9 Fix too eager GDScriptFunctionState stack cleanup
(cherry picked from commit 1f0548efd4)
2020-05-20 11:40:45 +02:00
bruvzg d255cc9e4d
Fix GDNative Variant type size on 32-bit platforms, add size checking static asserts. [3.2] 2020-05-17 16:11:49 +03:00
pepegadeveloper123 23d51ac325 Fix inherited C# scene not inheriting parent's fields (3.2)
When a child scene inherits a parent scene with a C# root node, the
parent scene's export variables appear to assume values set in the
parent scene, in the child scene's Inspector. However, when the child
scene is played, the parent scene's export variables assume default
values.
When a node is created, it inherits its parent C# script's fields from
the map CSharpScriptInstance::script->member_info. However this map was
not initialized outside the editor, and this commit ensured it is. This
fixes issues #36480 and #37581.
This is a manual backport of PR #38638 for 3.2.
2020-05-16 11:18:58 +02:00
Thakee Nathees 9ee77179b5 break, continue outside of a loop, match statement handled
(cherry picked from commit c076a2b7e9)
2020-05-16 00:08:37 +02:00
Oliver Frank 2173d041af Fix incorrect capabilities notification in LSP 2020-05-15 16:43:48 -04:00
Oliver Frank dac8b7b6f4 Improve jsonrpc error reporting 2020-05-15 16:42:24 -04:00
Thakee Nathees d13f46bc41 shadowed var warning in nested block bug fix
Fix: #38552
(cherry picked from commit 79eee93b9a)
2020-05-14 22:01:45 +02:00
Thakee Nathees 40c43da96f set parser error when infer type is null
(cherry picked from commit 687b1941b4)
2020-05-14 22:01:26 +02:00
Thakee Nathees e42318e41c regression: var declaration type info parser bug fix
(cherry picked from commit e5d735851d)
2020-05-13 16:14:22 +02:00
Thakee Nathees 6d7fb3d322 regression: static func can't access const fix
(cherry picked from commit e7f056dfac)
2020-05-13 16:14:08 +02:00
Thakee Nathees 72aa9ce7fc range() with non-numeric const argument crash fix
(cherry picked from commit 3e10392d48)
2020-05-13 16:08:33 +02:00
Rémi Verschelde 44c1c5840c
Merge pull request #38674 from madmiraal/fix-physicsw-warning-3.2
[3.2] Fix 'physicsw' may be used uninitialized warning in csg_shape.cpp
2020-05-11 21:19:34 +02:00
Ignacio Etcheverry 3928fe200f [3.2] C#: Support for building with the dotnet CLI
By adding a reference to the 'Microsoft.NETFramework.ReferenceAssemblies' nuget
package, we can build projects targeting .NET Framework with the dotnet CLI.
By referencing this package we also don't need to install Mono on Linux/macOS
or .NET Framework on Windows, as the assemblies are taken from the package.
2020-05-11 19:48:50 +02:00
Marcel Admiraal b4302d0d04 Fix 'physicsw' may be used uninitialized warning in csg_shape.cpp 2020-05-11 13:33:20 +01:00
Ignacio Etcheverry 683e19306e Mono: Use msbuild instead of nuget.exe for restoring
- Make GodotTools output directly to the SCons output directory.
- Removed xbuild_fallback from the build system.

(cherry picked from commit b61ffef0ab)
2020-05-11 11:01:13 +02:00
Ignacio Etcheverry 34132d2f67 Mono: Fix hot-reloading of nested classes
(cherry picked from commit e0a001549e)
2020-05-11 11:01:13 +02:00
Thakee Nathees 55b4e0c44a parser error for static func access non-static variables
Fix: #38408
(cherry picked from commit ce978517e0)
2020-05-11 11:01:13 +02:00
Thakee Nathees e417528f67 fix: dict2inst crash when constructor has arguments
(cherry picked from commit 9f6b20936e)
2020-05-11 11:01:12 +02:00
Thakee Nathees a446e8671d autocompleting with indexing for native types added
Fix: #37768
(cherry picked from commit 3c45377c6e)
2020-05-11 10:50:46 +02:00
Thakee Nathees 22053ed75f GDScript class var type resolve bug fixed
Fix: #37545
(cherry picked from commit e67eb5ca36)
2020-05-11 10:50:46 +02:00
Thakee Nathees 6b0cfc87af more clearer unexpected statement end error messages
(cherry picked from commit 5758d87f09)
2020-05-11 10:50:46 +02:00
Thakee Nathees 7111aa0688 pass keyword inside a class implemented
(cherry picked from commit 63ce1fc438)
2020-05-11 10:50:46 +02:00
Thakee Nathees f3149817ff fixed: saving gdscript with cyclic inheritance crash the editor
Fix: #9609
(cherry picked from commit c2ab35bdde)
2020-05-11 10:50:45 +02:00
Rémi Verschelde 56a513d70d
Merge pull request #38639 from neikeq/3.2-godottools-new-messaging-protocol
[3.2] C#: Rewrite GodotTools messaging protocol
2020-05-11 07:55:29 +02:00
janglee d16abbdee4 Improved go-to definition (Ctrl + Click)
Co-Authored-By: Bojidar Marinov <bojidar.marinov.bg@gmail.com>
(cherry picked from commit be7a353c70)
2020-05-11 09:33:21 +05:30
Ignacio Etcheverry fb2e00a854 [3.2] C#: Rewrite GodotTools messaging protocol 2020-05-10 21:05:00 +02:00
Rémi Verschelde aa57bb0473
Merge pull request #38482 from RandomShaper/improve_yield_3.2
Fix object leaks caused by unfulfilled yields (3.2)
2020-05-09 22:03:00 +02:00
Pedro J. Estébanez 64344e6d1d Fix object leaks caused by unfulfilled yields
Now the stack saved in a `GDScriptFunctionState` is cleared as soon as the `yield()` operation is known not to be resumed because either the script, the instance or both are deleted.

This clears problems like leaked objects by eliminating cases of circular references between `GDScriptFunctionState`s preventing them and the objects they refer to in their saved stacks from being released. As an example, this makes using `SceneTreeTimer` safer.

Furthermore, with this change it's now possible to print early warnings about `yield()`s to released script/instances, as now we know they won't be successfully resumed as the condition for that happens. However, this PR doesn't add such messages, to keep the observed behavior the same for the time being.

Also, now a backup of the function name in `GDScriptFunctionState` is used, since the script may not be valid by the time the function name is needed for the resume-after-yield error messages.
2020-05-05 17:53:47 +02:00
simpuid 92964c5889 Changed default for p_validate_certs to true.
Fixes #37084

(cherry picked from commit 2584eb9c69)
2020-05-05 13:41:40 +02:00
Rémi Verschelde ef715f37d5
Merge pull request #35091 from Faless/dtls/enet
[3.2] DTLS support + optional ENet encryption
2020-05-05 13:40:59 +02:00
Steven Schoen 40125c7cce Mention offending function name in "Indented block expected" error
(cherry picked from commit e6e5ba32cd)
2020-05-04 16:10:22 +02:00
Rémi Verschelde 607d688d45 tinyexr: Enable C++11 threaded loading
(cherry picked from commit 2175397210)
2020-05-01 11:10:16 +02:00
Nannaquin 9e4de37e88 Fix growMargin() not returning modified Rect2/Rect2i
(cherry picked from commit 0ac6f4c40b)
2020-05-01 10:56:58 +02:00
Tom Evans 2859ceec6f Fix for marking assert lines as safe bug
Calling _reduce_node_type from GDScriptParser::_parse_block for assert
was using a current class with a scope that didn't include all
functions. Now calling in GDScriptParser::_check_block_types uses the
right class type. We also now check the assert node message. The assert
line was added to the set_errors associated with assert, since before
the error would be reported on the next line

(cherry picked from commit bd081df519)
2020-05-01 10:56:58 +02:00
Marcel Admiraal 966139ca4c Fix CSG vertex normal calculation.
(cherry picked from commit 9bd305bfe2)
2020-05-01 10:56:58 +02:00
Thakee Nathees 1a4530e84c export var type reduce() implemented
(cherry picked from commit cd487201c6)
2020-05-01 10:56:58 +02:00
Andrea Catania b7dace75c7 Make softbody completelly stiff to attachment point
(cherry picked from commit ca7ee56759)
2020-05-01 10:56:57 +02:00
Pedro J. Estébanez 68cca6e619 Fix leaked objects when game ends with yields in progress 2020-04-29 14:13:36 +02:00
Rémi Verschelde 4dda00461f
Merge pull request #38011 from madmiraal/fix-csg-3.2
[3.2] Fix multiple issues with CSG module.
2020-04-27 17:05:47 +02:00
Ignacio Etcheverry 8cdcb410e0 Mono/C#: Fix load hook not called for some assemblies on domain reload
(cherry picked from commit f5510262bc)
2020-04-27 10:15:24 +02:00
Ignacio Etcheverry a98d44f654 C#: Fix always saving copy of csproj even with no changes
This was a regression from 93d7ec8836 (#38110).
Mono's old implementation of Microsoft.Build hardcodes HasUnsavedChanges to
always return true.
This workaround can be reverted once we switch to official Microsoft.Build.

(cherry picked from commit 81f13f6171)
2020-04-27 10:15:07 +02:00
Tom Evans 3bd5fc2e5e Mark assert lines as safe in gdscript
Now calling _reduce_node_type with debugging enabled to determine
if assert line is safe. Part of doing this required the assert line
to be stored away. Now the AssertNode line is being correctly set.
Newlines are now marked safe always

(cherry picked from commit 8dc8833782)
2020-04-27 10:10:20 +02:00
Umang Kalra 94d0f34f70 Fixed the bool _static logic
(cherry picked from commit b192c7d1ac)
2020-04-27 10:09:49 +02:00
Ignacio Etcheverry 6aca932659 C#: Revert marshalling of IDictionary/IEnumerable implementing types
Added marshalling for `System.Collections.Generic.List<T>` and
`System.Collections.Generic.Dictionary<TKey, TValue>`.
2020-04-23 15:36:01 +02:00
Ignacio Etcheverry dfdb7bdc87 Mono/C#: Fix assemblies being reloaded a second time unnecesarily
(cherry picked from commit c9882e61e2)
2020-04-23 11:34:42 +02:00
Ignacio Etcheverry cf729f2111 Mono/C#: Allow exporting System.Array of type Godot.Object
(cherry picked from commit 0fec3cb5ed)
2020-04-23 11:17:23 +02:00
Ignacio Etcheverry 317d8decad Mono/C#: Allow debugging exported games
- Include PDB files in exported games.
- Release export templates also allow debugging now.

Right now the only way to enable debugging in exported games is with the  environment variables, which may be cumbersome or not even possible on some platforms.

(cherry picked from commit 71fc87e101)
2020-04-23 11:15:35 +02:00
Ignacio Etcheverry 08f41f474b C#: Save copy of sln and csproj before applying fixes
(cherry picked from commit 93d7ec8836)
2020-04-23 11:14:57 +02:00
Thakee Nathees 95f6bdfa78 GDScript class name existance check enhanced
(cherry picked from commit 62280c3d47)
2020-04-23 11:10:51 +02:00
Thakee Nathees 12c776dba3 line unsafe for indexing with known base type & unkown identifier
(cherry picked from commit 0780ad2800)
2020-04-23 11:10:28 +02:00
Stoofin 243711e77f Pattern bind counts as assignment
Fixes #34697

(cherry picked from commit 44281f233d)
2020-04-23 11:10:06 +02:00
Rémi Verschelde 253fc093b8 DocData: Skip unexposed classes
Properly expose classes that we actually want accessible.

(cherry picked from commit 0ef8bcac4d)
2020-04-21 14:15:34 +02:00
Marcel Admiraal 11b7f050df Fix multiple issues with CSG module.
- Replaces BuildPoly with Build2DFaces, which creates faces as each
  pair of face intersections are processed, instead of trying to create
  them after all the intersections are processed. Ensures that faces are
  merged when possible, and removes degenerate triangles.

- Treats the child as inside the parent when faces are coplanar.

- General clean up of csg.h and csg.cpp.
2020-04-19 14:32:45 +01:00
Rémi Verschelde cb1366f006 Mono: Fix include for Android support
This was a typo in #37153.

Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>
(cherry picked from commit 408fab8442)
2020-04-18 22:02:07 +02:00
Nico Mitchell 616d106247 Change round return type to float
(cherry picked from commits c2ffaf5b2b
and f7cc2b090c)
2020-04-16 12:57:21 +02:00
Thakee Nathees 3d69fe95e5 autocomplete for disconnect, is_connected implemented
(cherry picked from commit efe90fce01)
2020-04-16 12:47:19 +02:00
lupoDharkael c0047023e6 NoiseTexture: prevent race condition because of Ref::unref()
(cherry picked from commit 1f0f0b8cea)
2020-04-16 12:47:18 +02:00
Thakee Nathees 3658f7127e `:=` fails on some nodes fix: #37357
(cherry picked from commit bdd7048cb5)
2020-04-16 11:46:23 +02:00
Ignacio Etcheverry 445f1c6e7b Mono/C#: Add iOS support
Right now, games only work on devices when exported with FullAOT+Interpreter.
There are some issues left that need to addressed for FullAOT alone. Right now,
it's giving issues with the Godot.NativeCalls static constructor.
2020-04-14 18:03:10 +02:00
Ignacio Etcheverry 6b38fe691a Mono/C#: Fix MinGW build not supporting `.lib` libraries
MinGW should support both its own format `.a` and MSVC's format `.lib`, but Mono's module was only using the former. With this change it's now possible to build with MinGW and link the official Mono for Windows which is built with MSVC.
2020-04-14 18:03:10 +02:00
Thakee Nathees df87601c88 Fix for loop range bug: #37358
(cherry picked from commit 0b5bad78c0)
2020-04-06 20:58:21 +02:00
Hugo Locurcio dd4569f15c Remove syntax highlighting for C# verbatim strings due to bugs
This closes #32336.

(cherry picked from commit 49efd6093e)
2020-04-06 18:18:38 +02:00
Thomas ten Cate c2469d0c6d Add missing docs for assert message in GDScript
Seems like this was overlooked in PR #31142. See also issue #17082.

(cherry picked from commit 4c3c73ef9c)
2020-04-06 18:17:59 +02:00
Ivan.Shakhov 66e4c8be23 fix RiderPathLocator - searching for toolbox on Mac
(cherry picked from commit dc16b8742a)
2020-04-06 18:15:20 +02:00
Ignacio Etcheverry bda993dd79 C#: Fix uses of old Configuration names
(cherry picked from commit 66c0b7ce98)
2020-04-06 18:14:07 +02:00
Rajat Goswami 19e71f94d8 Adding missing include guards to header files identified by LGTM.
This addresses the issue godotengine/godot#37143

(cherry picked from commit 2ecf928ae3)
2020-03-25 11:38:54 +01:00
Rémi Verschelde bdde501594 opus/vorbis: Remove dead code not used since 3.0
Since the new audio system in 3.0 we switched the OGG support to
stb_vorbis, and the Opus stream support was disabled as incompatible
(see #7496).

We still build the libraries as they are needed by the theora and webm
modules, but we don't need any Godot code apart from `register_types`.

Fixes #7496.

(cherry picked from commit 7f6b62cef0)
2020-03-25 11:38:54 +01:00
Andrii Doroshenko (Xrayez) 8fedcfbed2 Generate command line help text for `mono` module
(cherry picked from commit 94b6c1363c)
2020-03-25 11:38:54 +01:00
Ivan.Shakhov 9d0518cf80 Fix warning: Property not found: mono/editor/editor_path_optional (#36995)
(cherry picked from commit 05946be2f1)
2020-03-25 11:38:54 +01:00
Ignacio Etcheverry d46fcbb16a C#: Replace uses of old Configuration and update old csprojs
(cherry picked from commit 1b634785b5)
2020-03-25 11:38:54 +01:00
Ivan Shakhov b874e84147 reorder solution configurations + migration
(cherry picked from commit ce01b83c4a)
2020-03-25 11:38:54 +01:00
Thakee Nathees 5798c8135f logic error in gdscript_parser.cpp for-loop-range
there was a logic error in for loop range argument that
check if all of the argument were constants, fixed

(cherry picked from commit bcbcf0f1ea)
2020-03-25 09:45:47 +01:00
Thakee Nathees 40b53bc29a duplicate arguments in a function handled
(cherry picked from commit 5424b626f9)
2020-03-25 09:44:51 +01:00
Rafael Delboni 5736e43fe4 fix: Return only scenes for script owners on LSP completion
Fix: #36680
(cherry picked from commit 2f08f4ef4e)
2020-03-25 09:44:09 +01:00
Rafael Delboni ecfe9c24a2 Improve LSP completion using scene owner
Fixes: #36473

(cherry picked from commit 06bce137e3)
2020-03-25 09:43:49 +01:00
Oliver Frank 41500249e3 Fix crash after closing a GDScript LSP session
(cherry picked from commit ed482f6167)
2020-03-25 09:43:28 +01:00
of9 511105be67 Migrating language server from Websockets to raw TCP
(cherry picked from commit 24b27043fe)
2020-03-25 09:43:05 +01:00
Ignacio Etcheverry d1a5f8dbf2 [3.2] Sync csproj when files are changed from the Godot FileSystem dock 2020-03-18 17:57:45 +01:00
Thakee Nathees 708aab7920 typo in gdscript_workspace.cpp/remove_cache_parser() fixed
(cherry picked from commit 07c99340d1)
2020-03-09 09:51:59 +01:00
Phischermen 69c1805735 Added parameters to Load()
(cherry picked from commit 1b0819bd59)
2020-03-06 23:55:25 +01:00
Rémi Verschelde 98d0bf7d7a assimp: Clean and document buildsystem, prepare for unbundling
- Improve the SCsub to allow unbundling and remove unnecessary code.
- Move files around to match upstream source.
- Re-sync with upstream commit 308db73d0b3c2d1870cd3e465eaa283692a4cf23
  to ensure we don't have local modifications.
- Doesn't actually build against current version 5.0.1 due to the lack
  of the new ArmaturePopulate API that Gordon authored. We'll have to
  wait for a public release with that API (5.1?) to enable unbundling.

(cherry picked from commit 9d8a9ea826)
2020-03-06 23:53:23 +01:00
Rémi Verschelde 4c325c0732 Mono: Fix detection of Apple platforms in build script
(cherry picked from commit 5b040ef2e8)
2020-03-06 23:51:26 +01:00
Ivan Shakhov 88f0cd0b27 On Windows find Rider installed for CurrentUser
(cherry picked from commit c95e20a089)
2020-03-04 12:40:15 +01:00
Raul Santos 447acafa97 Fix missing null check in Mono Binding of GD.print
(cherry picked from commit 6b9c22542f)
2020-03-04 12:40:15 +01:00
Hugo Locurcio a78bbcf8ce Improve the RegEx class documentation
This closes https://github.com/godotengine/godot-docs/issues/2522.

(cherry picked from commit 5b78f5c464)
2020-03-04 12:40:14 +01:00
Hugo Locurcio 08cb8420f7 Mention the `duration` parameter unit in `UPNP.add_port_mapping()`
(cherry picked from commit 810be27c78)
2020-03-04 12:40:14 +01:00
Hugo Locurcio d679edfa7f Add a practical example for `@GDScript.linear2db()`
One of its most common applications in games is for volume sliders.

See https://www.dr-lex.be/info-stuff/volumecontrols.html for
more information.

(cherry picked from commit a6fd6b78dd)
2020-03-04 12:40:14 +01:00
Hugo Locurcio 21a45dda7a Improve the `@GDScript.inverse_lerp()` documentation
This closes https://github.com/godotengine/godot-docs/issues/2589.

(cherry picked from commit 6b5573700b)
2020-03-04 12:40:14 +01:00
Ivan Shakhov f0b63b47aa use Rider MSBuild on Windows, when Rider is selected as external editor
(cherry picked from commit a9c2ab81cf)
2020-03-04 12:40:14 +01:00
Ivan Shakhov 8337cc5f7d Support toolbox custom "Tools install location", by reading .settings.json
(cherry picked from commit 33af53c1a6)
2020-03-04 12:40:14 +01:00
Rafał Mikrut d001ca320d Fix suspicious | and + operators
(cherry picked from commit d0621b954b)
2020-03-04 12:40:14 +01:00
Phischermen c75459ac95 Enabled concave collision detection with Areas in Bullet.
(cherry picked from commit 2c01cf54f8)
2020-03-04 09:51:15 +01:00
Fabio Iotti 45248fb0ec Fix OGG audio loops
(cherry picked from commit 4f8d1c47b8)
2020-03-04 09:50:21 +01:00
clayjohn 2c0d391c48 Force mipmaps off when importing RGBA4444 textures 2020-02-29 19:23:56 -08:00
Fabio Alessandrelli 3a73c3f260 Add documentation for new DTLS features. 2020-02-25 11:40:17 +01:00
Fabio Alessandrelli 5e721d07a3 NetworkedMultiplayerENet dtls support. 2020-02-25 11:35:47 +01:00
Fabio Alessandrelli 35a9f0fe64 New PacketPeerDTLS and DTLSServer classes.
Custom instance implementation via the mbedtls module.
2020-02-25 11:35:47 +01:00
Fabio Alessandrelli dbbd836931 Move mbedlts print func to SSLMbedTLSContext. 2020-02-25 11:35:47 +01:00
SkyJJ 0c53718e7b Add abort mechanism when invoking EditorNavigationMeshGenerator::bake in-game 2020-02-23 02:43:17 +01:00
Fabio Alessandrelli 50763ecac4 Fix EMWSClient::get_connection_status(), try catch
(cherry picked from commit ebeeb67224)
2020-02-18 14:20:34 +01:00
Hugo Locurcio a083fcc109 Improve error explanations related to NetworkedMultiplayerENet
(cherry picked from commit 61bf5bf73f)
2020-02-18 14:16:53 +01:00
Hugo Locurcio 6edb5ac9e9 Optimize the editor icon generation
Icons are no longer upsampled when using an integer editor scale.
This makes some icons slightly less crisp, but the icons themselves
can be adjusted to mitigate this. When using a non-integer editor
scale setting, upsampling is kept as it improves crispness in a
far more visible manner.

When upsampling is disabled, this speeds up the theme generation
by about 100 ms on average, making the project manager and editor
start slightly faster. This also speeds up switching between themes.

(cherry picked from commit 9e3393a624)
2020-02-14 16:14:56 +01:00
Yuri Roubinsky 74f3fbf7ef Fix VisualScriptClassConstant to be updated properly
(cherry picked from commit 386d0fe988)
2020-02-14 16:12:09 +01:00
Yuri Roubinsky 61901bd7cc Fix GlobalConstant/BasicTypeConstant return type in visual scripts
(cherry picked from commit c19933eec4)
2020-02-14 16:11:54 +01:00
Rémi Verschelde 57de8397b2 Fix Mono check for unsafe object references
(cherry picked from commit 09534e2922)
2020-02-14 16:10:06 +01:00
geequlim 57151c5e31 Fix hover symbol content position
(cherry picked from commit 03d2d01082)
2020-02-14 16:08:14 +01:00
Raul Santos 0fb35401d4 Avoid going out of bounds in IsSubsequenceOf
Closes #35598

(cherry picked from commit 4b79ef5ebe)
2020-02-14 16:03:18 +01:00
Rémi Verschelde ac63e5d613 Workaround WebM playback bug after AudioServer latency fixes
af9bb0ea15 fixed AudioServer's
`get_output_delay()` (which used to always return 0) while renaming it
to `get_output_latency()`. It now returns the latency from the
AudioDriver, which can be non-0.

While this was a clear bugfix, it broke playback for WebM files without
audio track. It seems like the playback code, even though it queried
the output delay to calculate a time compensation, was designed to work
even though the delay value was actually bogus. Now that it's correct,
it's not working.

As a workaround we comment out uses of the output latency, restoring
the behavior of Godot 3.1.

This code should still be reviewed by someone more versed in video
playback and fixed to properly account for the non-0 driver latency.

Fixes #35760.

(cherry picked from commit da411d1625)
2020-02-14 16:02:34 +01:00
Aaron Franke 9a396a4e07 [Mono] Basis/Transforms Array operator comments and improvements
The behavior for Basis and Transform2D is unchanged, and Transform gets new behavior. All of the behavior is identical to GDScript's behavior. 

(cherry picked from commit 0a39c7b354)
2020-02-14 15:53:59 +01:00
Hugo Locurcio a45aa3a46f Implement zooming using Ctrl + Mouse wheel in the GridMap editor
The minimum value of the slider was changed to 0.2 as zooming
works in increments of 0.2. This way, the value can go back to 1
after you've reached the slider's minimum value.

(cherry picked from commit 4c1b2171b0)
2020-02-14 15:52:21 +01:00
Hugo Locurcio 1898240af8 Increase the maximum number of octaves in OpenSimplexNoise to 9
An error message is now printed when trying to set the number of octaves
above the maximum allowed value.

The magic constant was also replaced with a define that can be
easily changed.

This closes #28714.

(cherry picked from commit 13622d40fc)
2020-02-06 13:02:08 +01:00
Fabio Iotti 5765154ff2 Fix empty audio infinite loop
(cherry picked from commit 5ed4ad81c3)
2020-02-06 13:02:07 +01:00
Fabián L 04cfcb3ba0 Fixed GetNodeOrNull<T>
GetNodeOrNull<T> was using GetNode instead of GetNodeOrNull

(cherry picked from commit f595486076)
2020-02-06 13:02:07 +01:00
Francois Belair f6968d5f17 Fix static functions loop using class' functions
Besides being incorrect, it also caused a hard editor crash for purely
static classes or classes with more static functions than methods.
2020-01-28 14:19:09 -05:00
Fabio Alessandrelli a48d0b5eef Disable Nagle's algorithm for WebSocket TCP.
This should greatly decrease latency for the most common use cases.
A new function WebSocketPeer::set_no_delay will allow to configure it if
so desired.
2020-01-28 14:10:46 +01:00
Rémi Verschelde f0f0f38d1a
Merge pull request #35516 from Faless/ws/fix_latency_32
Lower WebSocket latency, fixes.
2020-01-26 19:03:00 +01:00
Rémi Verschelde 4cee1cda5e
Merge pull request #35589 from akien-mga/doc-drop-category-property
doc: Drop unused 'category' property from header
2020-01-26 16:34:13 +01:00
Rémi Verschelde 09ced94dd4 doc: Do not expose Variant::NIL as a type in the class reference
Fix signals Variant arguments incorrectly listed as Nil.

Fixes #12520.
2020-01-26 16:08:11 +01:00
Rémi Verschelde 2d20fc39aa doc: Drop unused 'category' property from header
We already removed it from the online docs with #35132.

Currently it can only be "Built-In Types" (Variant types) or "Core"
(everything else), which is of limited use.

We might also want to consider dropping it from `ClassDB` altogether
in Godot 4.0.
2020-01-26 16:02:39 +01:00
Rémi Verschelde fe26e53065
Merge pull request #35581 from akien-mga/doc-color-constants
doc: Document named color constants
2020-01-26 13:36:44 +01:00
Rémi Verschelde cbdbfb00ca doc: Document named color constants
Busywork but it's good for our completion rate :)
2020-01-26 12:08:16 +01:00
Rémi Verschelde bb6c0d3e8b doc: Complete documentation for VideoStreams
Also quick clean up of the matching C++ files.
2020-01-26 11:29:07 +01:00
Rémi Verschelde 139ff35e76
Merge pull request #35567 from Xrayez/doc-noise-null-data
Mention that `NoiseTexture` uses threads internally
2020-01-26 10:22:26 +01:00
clayjohn c5700f7464 Complete various class references 2020-01-26 00:27:51 -08:00
Andrii Doroshenko (Xrayez) 5b1c6656d3 Mention that `NoiseTexture` uses threads internally
Provided a snippet on how to properly retrieve the noise texture data
given that it's generated in a thread.
2020-01-26 02:40:09 +02:00
Rémi Verschelde c96f08dc86
Merge pull request #35527 from neikeq/issue-35259
Mono/C#: Fix _update_exports possible crash with Reference types
2020-01-24 21:51:57 +01:00
Rémi Verschelde 75ab07546b
Merge pull request #35524 from neikeq/issue-35496
Fix C# preprocessor infinite loop and incorrect parsing of `#if!`
2020-01-24 21:51:38 +01:00
Ignacio Etcheverry 966a126186 Mono/C#: Fix _update_exports possible crash with Reference types
The code was attempting to dynamic cast the native instance to Reference after
the managed instance was disposed. As the managed instance acts as a Ref,
the native instance was freed during that disposal.
This made the dynamic cast fail and we attempted to memdelete a second time.

The fix is to make the dynamic cast before disposal.
2020-01-24 18:28:40 +01:00
Ignacio Etcheverry 0604b1839d Fix C# preprocessor infinite loop and incorrect parsing of `#if!` 2020-01-24 17:53:17 +01:00
Fabio Alessandrelli 5bd9f14ad9 Lower WebSocket latency, fixes.
WSLPeer now tries to flush packet queue after put_packet call.
WSLServer::listen correctly returns TCP_Server::listen return value.
2020-01-24 14:50:53 +01:00
Hugo Locurcio a002b93d86
Add explanations for errors related to Vector/Quat normalization 2020-01-24 14:19:23 +01:00
Rémi Verschelde 55f580b24a
Merge pull request #35491 from neikeq/issue-35450
Mono/C#: Lighten up unsafe reference checks
2020-01-23 23:06:58 +01:00
Ignacio Etcheverry 55b2e58a98 Mono/C#: Lighten up unsafe reference checks
Because of the weird case with multi-threading and ResourceLoader, it can be the case that a resource is GCed while being referenced again in the main thread. In such cases, a new unsafe reference is created before the finalizer thread removes the previous one.
2020-01-23 21:23:32 +01:00
Rémi Verschelde cadf946863
Merge pull request #35478 from neikeq/issue-32260
Mono/C#: Add setting to include I18N assemblies in the exported game
2020-01-23 18:24:15 +01:00
Ignacio Etcheverry 59ec19d5a8 Mono/C#: Add setting to include I18N assemblies in the exported game 2020-01-23 17:47:09 +01:00
Rémi Verschelde b75fff5a56
Merge pull request #35473 from neikeq/default-to-net47
Mono/C#: Default to net47 for new projects
2020-01-23 17:23:33 +01:00
Ignacio Roldán Etcheverry 8dc7f3960c
Merge pull request #35472 from neikeq/issue-35448
Mono/C#: Add Basis.Slerp, update Quat.Xform and add some math checks
2020-01-23 16:21:09 +01:00
Ignacio Etcheverry 82b0899e54 Mono/C#: Add Basis.Slerp, update Quat.Xform and add some math checks 2020-01-23 16:13:28 +01:00
Ignacio Etcheverry d9ff5f7fc2 Mono/C#: Default to net47 for new projects 2020-01-23 15:57:47 +01:00
clayjohn 6b66957b85 Finish documenting CSG* and *probes 2020-01-23 13:54:17 +01:00
Rémi Verschelde ba177ccaec doc: Misc updates for AnimationNode* and others
- Add some missing descriptions.
- Add links to tutorials for ARVR and AnimationTree.
- Style fixes.
- Engine changes:
  * Make `AnimationNodeTransition.input_<number>` properties internal
    so that they don't appear in the docs. They still appear in the
    inspector based on the actual number of inputs requested.
  * Drop unimplemented `CPUParticles.flatness`. It's only used for 3D
    particles in `ParticlesMaterial`, and thus only relevant for
    `CPUParticles3D`.
2020-01-23 12:37:33 +01:00
Rémi Verschelde 36e11d1c34
Merge pull request #35412 from DaividFrank/check_overriding_self
Disabled re-assigning 'self'
2020-01-22 20:47:52 +01:00
DaividFrank badabdf8b9 GDScript: Added checks in assign operations to disable re-assigning 'self' 2020-01-22 19:00:54 +02:00
Rémi Verschelde 4faaf6089a Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
Rémi Verschelde 79aaafc686
Merge pull request #35408 from Faless/ws/fix_packet_count
Fix MultiplayerAPI crash when peer implementation misbehave.
2020-01-21 21:06:11 +01:00
Fabio Alessandrelli 50f1b035b8 Fix MultiplayerAPI crash when peer impl misbehave.
Also fix WebSocketMultiplayer::get_available_packet_count() return value
when peer is not configured to use the multiplayer API.
2020-01-21 20:46:32 +01:00
Ignacio Roldán Etcheverry 24960e2254
Merge pull request #35407 from neikeq/issue-27285
Add dummy preprocessor for the C# script class parser
2020-01-21 20:39:23 +01:00
Ignacio Etcheverry d53c15b12c Make script class parser errors to not abort the build
As our script class parser is error prone, we should not impede the build from continuing because of a parsing error.
This should be reverted in the future once we switch to Roslyn.
2020-01-21 20:07:26 +01:00
Ignacio Etcheverry 378fc592b1 Add dummy preprocessor for the C# script class parser
No attempts are made at conditional compilation. The main if branch is always assumed to be true.
2020-01-21 19:57:38 +01:00
Rémi Verschelde 41b21dee01 Bullet: Prevent potential division by zero
Fixes #33715.
2020-01-21 00:20:57 +01:00
Ignacio Etcheverry e4330e33e6 Mono/C#: Fix error when parsing nested generics
Also fixed the editor not including the parse error message in the error.
2020-01-20 19:08:08 +01:00
Rémi Verschelde f70438ac45
Merge pull request #35270 from ChibiDenDen/fix_extends_sub_subclass
Fix subclass finding in extend statement for sub-sub classes
2020-01-19 23:18:40 +01:00
Ignacio Etcheverry a6105c8ea0 Fix ClassDB API portability with some android and editor classes
- `EditorNavigationMeshGenerator` was being registered as part of the Core API,
even after d3f48f88bb. We must make sure to
set Editor as the current ClassDB API type before creating an instance.

- The `VisualScriptEngineSingleton.constant` property has a property hint string
that's different between tools and non-tools builds. This commit makes the
hint string to no longer be set in `_bind_methods`, and to instead set it in
`_validate_property`. This way it's ignored when calculating the API hash.

- `JavaClassWrapper` is now registered in ClassDB on all platforms,
using a dummy implementation on platforms other than Android.
This fixes API portability between Android and other platforms.

- Updated `--class-db-json` command to ignore non-virtual methods that start
with an underscore (see: 4be87c6016).
2020-01-19 20:15:13 +01:00
Dani Frank 8f5e424c66 Fix subclass finding in extend statement for sub-sub classes
lookup was always done on top level script instead of advancing to subclass each time.
this commit changes the lookup to always be at last found subclass
2020-01-18 11:55:27 +02:00
Rémi Verschelde ba7aca4199
Merge pull request #35224 from ChibiDenDen/constant_lookup_through_subclass_instance
Fix constant access in base class through subclass instance
2020-01-17 06:58:00 +01:00
ChibiDenDen 9ffa9a6bac Fix constant access in base class through subclass instance
Fixes as issue where a subclass calls a base class method that tries to access a constant from the script.
The original code went through every ower class, and for each owner, went through its inheritance tree.
This seems like the wrong order, the modified code goes to each base class, and for each base class goes through the owner tree.
This is more in line with what the parser does, as the current impelemtation allows an access that the parser does not support.
This change should not negatively affect existing code due to the way the parser works
2020-01-17 00:12:45 +02:00
Rémi Verschelde 4c99301d69
Merge pull request #34789 from Faless/enet/disconnect_relay
ENet optional server_relay when disconnecting peer
2020-01-16 23:12:40 +01:00
Rémi Verschelde 8b0e2a409b
Merge pull request #35218 from bojidar-bg/26691-parse-error-errors
Fix errors raised when showing parse errors in the editor
2020-01-16 22:32:49 +01:00
Ignacio Roldán Etcheverry 1191d26ddc
Merge pull request #35208 from neikeq/mono-lazy-thread-attach
Mono/C#: Script interface calls now attach the current thread
2020-01-16 21:27:08 +01:00
Bojidar Marinov da5b138e64
Fix errors raised when showing parse errors in the editor
Fixes #26691
2020-01-16 22:12:24 +02:00
Ignacio Etcheverry d68b9c20d6 Mono/C#: Script interface calls now attach the current thread
Added guards to all C# script interface calls to attach the current thread
for the current scope if the thread is not already attached.
This is far from ideal, as attaching the thread is not cheap and all managed
thread local storage is lost when we detach the thread at the end of the calls.
However, it's the best we can do for now to avoid crashing
when an unattached thread tries to interact with C# code.
2020-01-16 17:47:36 +01:00
Rémi Verschelde f2aa99a8e2
Merge pull request #35201 from bojidar-bg/27582-gdfunction-validate-instance
Validate instances of objects before trying to check their type in GDScript
2020-01-16 15:57:44 +01:00
Rémi Verschelde 4998983bd5
Merge pull request #35199 from dalexeev/master
Fix function arguments hint format in GDScript editor
2020-01-16 15:53:28 +01:00
Rémi Verschelde df13245408
Merge pull request #35203 from timothyqiu/image-loader-null
Adds null check before using image loader
2020-01-16 15:51:46 +01:00
Rémi Verschelde cd7b51b943
Merge pull request #35102 from ChibiDenDen/reuse_orphaned_subclass
#34161: Keep a weak reference to orphan subclasses to reuse on class reload
2020-01-16 15:49:52 +01:00
Bojidar Marinov dc4455d819
Validate instances of objects before trying to check their type in GDScript
Fixes #27582
2020-01-16 16:39:59 +02:00
Rémi Verschelde 9986f3804c
Merge pull request #35198 from bojidar-bg/27575-poolarrayexport-default
Fix slight problems related to default values of exported typed arrays
2020-01-16 14:58:06 +01:00
Haoyu Qiu 92b36d4706 Adds NULL check before using image loader 2020-01-16 21:49:23 +08:00
Bojidar Marinov 19ce2d5159
Fix slight problems related to default values of exported typed arrays 2020-01-16 14:50:29 +02:00
Danil Alexeev 45b510b332 Fix function arguments hint format in GDScript editor
for consistency with the format of the documentation:
"type func_name(arg1: type, arg2: type)"
2020-01-16 15:41:02 +03:00
Rémi Verschelde 1de633205f Validate input in (CPU)Particles set_emission_shape()
Fixes #29777.

Co-authored-by: Cameron Reikes <cameronreikes@gmail.com>
2020-01-16 11:08:51 +01:00
Ignacio Etcheverry 1a40f250bd Mono/C#: Fix false positive in unsafe reference checks 2020-01-15 23:46:42 +01:00
ChibiDenDen 86aa12e806 Keep a weak reference to orphan subclasses to reuse on class reload 2020-01-15 22:54:01 +02:00
Rémi Verschelde 5f99e3396f
Merge pull request #35156 from MadEqua/fix-grid-map
Fix GridMap getter of baked meshes.
2020-01-15 17:55:52 +01:00
Bruno Lourenço da9eede933 Fix GridMap getter of baked meshes. 2020-01-15 14:30:17 +00:00
Rémi Verschelde 9b8d1383ce Mono: Fix parsing assembly names as UTF-8
Fixes #27185.
2020-01-15 11:51:03 +01:00
Houkime e1a0ce5af9 Prevent GDScript language server from listening to external hosts by default
* Add bind_ip property to WebSocketServer defaulting to "*" (listen to everyone)
* Set default for GDscript Language Server to listen only to localhost

Fixes potential security issue with GDScript language server being exposed to the
broad net by default.
Since it is the server which primary usage is to provide utility to the local
editor there is no need to expose it.
2020-01-15 00:29:59 +00:00
Rémi Verschelde 40f0649e5b Fix typos with codespell
Using codespell 1.16.0.

See ab3bccdb78 for procedure.
2020-01-15 00:49:52 +01:00
Rémi Verschelde 3d88a7bb22
Merge pull request #35122 from ChibiDenDen/fully_qualified_name_gdscript
Add fully_qualified_name for GDScript class
2020-01-14 18:54:52 +01:00
Rémi Verschelde 1bafd2d2c8
Merge pull request #35120 from Faless/docs/html5_restrictions
Update documentation to reflect HTML5 limitations.
2020-01-14 17:23:54 +01:00
Dani Frank d6f10cd08e Add fully_qualified_name for GDScript class 2020-01-14 17:33:33 +02:00
Fabio Alessandrelli aa744aee7d Update documentation to reflect HTML5 limitations. 2020-01-14 15:42:47 +01:00
Haoyu Qiu ddde73cc62 Makes adding port in Visual Script nodes deferred 2020-01-14 21:03:09 +08:00
Rémi Verschelde f06372cb73
Merge pull request #35097 from neikeq/issue-34954
Mono/C#: Fix _update_exports() leaking temporary Object/Node instances
2020-01-13 22:01:11 +01:00
Ignacio Etcheverry a6a5ef0fd6 Mono/C#: Add error checks to detect possible Reference leaks 2020-01-13 21:00:07 +01:00
Ignacio Etcheverry ea737db43c Mono/C#: Fix _update_exports() leaking temporary Object/Node instances 2020-01-13 20:58:46 +01:00
George Marques 1d129f9bec
GDScript: Check function arguments on release too
Needed because otherwise the certain type operations (such as type
casting) used as a function argument might become unresolved on release,
causing a compilation failure.

Fix #28680
2020-01-13 15:58:53 -03:00
Rémi Verschelde c7b701dfd2 Image: Include S3TC compression via Squish in non-tools build
We already build Squish in templates build for S3TC decompression,
so we can as well expose the compression feature.

Fixes #25640.
2020-01-13 15:58:49 +01:00
Rémi Verschelde e32d232053
Merge pull request #35076 from vnen/gdscript-type-match-assign
Type match on assignment only if operators have type
2020-01-13 13:14:57 +01:00
George Marques e6060706ca
GDScript: Type match on assignment only if operators have type
This ensures that a value without type won't be wrongly assigned to a
typed variable when the types mismatch.
2020-01-13 08:51:24 -03:00
Geequlim d5e1890c85 Fix infinite loop error in document link parsing 2020-01-13 19:23:29 +08:00
geequlim e804eebfe5 Remove completion triggers for ',' and '(' which may conflict with signature helper 2020-01-11 23:51:25 +08:00
geequlim d901d5993b Allow enable/disable threading for LSP server
Restart LSP server when configurations change without restart the editor
2020-01-11 23:50:32 +08:00
Rémi Verschelde 0b185278f3
Merge pull request #34225 from madmiraal/fix-34210
Add check for zero length motion at beginning of each sweep test loop in SpaceBullet::test_body_motion
2020-01-11 11:57:41 +01:00
Rémi Verschelde 0ab1726b43
Merge pull request #35003 from vnen/gdscript-forbid-script-as-member
GDScript: Forbid using "script" as member name
2020-01-11 00:03:55 +01:00
George Marques 4c20d9407d
GDScript: Forbid using "script" as member name
Avoids the user breaking things by creating a "script" variable with
something else, effectively overwriting the "script" slot on Object.
2020-01-10 19:43:33 -03:00
K. S. Ernest (iFire) Lee dfb713bce6 Use cycle and loop hint flags in FBX. 2020-01-10 08:23:24 -08:00
Rémi Verschelde 673f4fabd8
Merge pull request #34962 from KoBeWi/randocs
Complete documentation of various classes
2020-01-10 14:41:30 +01:00
Tomasz Chabora 508e624b87 Complete documentation of various classes 2020-01-10 14:14:07 +01:00
toasteater 677e72d2f6 Expose instance_from_id to GDNative
This function is available to GDScript but not to GDNative. When exposed, it
allows building more ergonomic safe abstractions over the GDNative APIs, and
covers the use cases of the original PR.

Close #28478. Supersedes #28791.

Co-authored-by: Markus Ewald <cygon@nuclex.org>
2020-01-10 11:59:37 +00:00
Rémi Verschelde 0d2993659b
Merge pull request #34978 from GodotExplorer/lsp-fix-bracket-completion
LSP: Fix bracket completion for functions with one argument
2020-01-10 07:58:26 +01:00
Rémi Verschelde 09aa12a0dd
Merge pull request #34958 from vnen/gdscript-is-check-valid-instance
GDScript: Validate object instance on `is` operation
2020-01-10 07:40:56 +01:00
Geequlim 6190d42825 LSP: Fix bracket completion for functions with one argument 2020-01-10 14:23:01 +08:00
George Marques 76678b2609
GDScript: Fix type name on error message for function parameters 2020-01-09 15:50:06 -03:00
George Marques 1aef8bfeb1
GDScript: Fix resolution of default parameter values
Fix #26556
2020-01-09 15:42:31 -03:00
George Marques 3718f8f592
GDScript: Validate object instance on `is` operation
Avoids crashes on debug mode. Instead it now breaks the execution and
show the error in-editor. Will still crash on release.

Also add a similar check to Marshalls to ensure the debugger doesn't
crash when trying to serialize the invalid instance.
2020-01-09 13:59:33 -03:00
George Marques cc9ca9eb34
GDScript: Don't re-evaluate index on assigment with operation
Pass the calculated index from the stack and use the same to get and set
the value. This avoids a function with side effects being evaluated
twice when using indexing in an assignment with operation statement
(e.g. a[function()] += 1).
2020-01-09 10:43:29 -03:00
Rémi Verschelde e97e951741
Merge pull request #34948 from vnen/gdscript-copy-constructor
GDScript: Allow copy constructor for built-in types
2020-01-09 13:42:10 +01:00
George Marques 41ed905c1a
GDScript: Allow copy constructor for built-in types
Those are implicitly defined in Variant.
2020-01-09 09:03:09 -03:00
George Marques 7d4fc79eb3
Add GDScript warning for standalone expression
This makes the error message clearer as it might be used to call
functions with side effects.
2020-01-09 08:30:14 -03:00
George Marques e7b7dc57fc
GDScript: set assign operation on local var made by match
This is needed in a all local variables with assigment to properly set
the typed operation.

Fix #34928
2020-01-08 19:28:07 -03:00
Rémi Verschelde b9a553f99d
Merge pull request #34921 from akien-mga/bullet-2.89
bullet: Sync with upstream 2.89
2020-01-08 21:17:33 +01:00
Rémi Verschelde 5a8107f70a
Merge pull request #34920 from GodotExplorer/lsp-signatureHelper
GDScript LSP: Implement signatureHelp
2020-01-08 18:29:39 +01:00
Rémi Verschelde c456d87ee6
Merge pull request #34918 from vnen/gdscript-assign-op
GDScript: enable type checks on release mode
2020-01-08 18:22:38 +01:00
Rémi Verschelde 29e07dfa4e bullet: Sync with upstream 2.89
This allows distro unbundling again for distros that ship Bullet 2.89+.
2020-01-08 18:05:43 +01:00
geequlim d35c018a7a GDScript LSP: Implement signatureHelp
Enable smart resolve default to true as it is required for script symbol lookup
2020-01-09 00:57:54 +08:00
George Marques d26414f9fe
GDScript: enable type checks on release mode
Also make builtin GDScript functions report return type as Variant in
release so type is converted when needed.
2020-01-08 12:38:18 -03:00
George Marques 899f7999b4
GDScript: properly set type of local variable initialization
Properly sets the type of the identifier for the local variable
that is stored in the assignment operation. This makes sure that the
compiler is aware of typing for local variables when they are
initialized with the declaration.
2020-01-08 11:36:50 -03:00
Rémi Verschelde cd408c5256
Merge pull request #34886 from JFonS/fix_32699
Make NoiseTexture threading more robust
2020-01-07 12:46:43 +01:00
JFonS 4e10c62024 Make NoiseTexture threading more robust
Fixes crash when a NoiseTexture was freed before the generation thread finished.
2020-01-07 11:35:34 +01:00
geequlim eb5861f9f1 GDScript LSP: Implement goto declaration 2020-01-04 20:02:26 +08:00
Rémi Verschelde 34c71157f0
Merge pull request #34795 from dankan1890/mono_cs_icon
[Mono]: the C# script icon is now visible in the editor.
2020-01-04 00:03:38 +01:00
dankan1890 51c601d2e3 [Mono]: the C# script icon is now visible in the editor. 2020-01-03 22:49:22 +01:00
Rémi Verschelde db1a01501b
Merge pull request #34790 from clayjohn/ETC-support-alpha
Add support for Lum-alpha textures to ETC fallback
2020-01-03 22:48:22 +01:00
Fabio Alessandrelli 411f08c506 Fix ENet max clients highest value.
Was 4096, while actually it's 4095. Fixed now in both docs and
`create_server` check.
2020-01-03 20:18:33 +01:00
clayjohn cd21200944 Add support for Lum-alpha textures to ETC fallback 2020-01-03 11:10:44 -08:00
Fabio Alessandrelli ce47d5af77 ENet optional server_relay when disconnecting peer
Was not correctly enforced before, always notifying other peers of the
disconnection.
2020-01-03 20:09:49 +01:00
Rémi Verschelde 399e53e8c3
Merge pull request #34784 from neikeq/fix-hintpath-godottools
Mono/C#: Fix wrong HintPath for package in GodotTools
2020-01-03 16:34:08 +01:00
Ignacio Etcheverry 9ce0ddcf0d Mono/C#: Fix wrong HintPath for package in GodotTools 2020-01-03 15:53:16 +01:00
Rémi Verschelde 09b4327805
Merge pull request #34452 from aaronfranke/color-arith
[Mono] Color arithmetic operators
2020-01-03 15:07:17 +01:00
Rémi Verschelde 136846a6ec
Merge pull request #34772 from clayjohn/ETC-support-alpha
Fallback to RGBA4444 for textures with alpha set to ETC compression
2020-01-03 14:29:19 +01:00
Aaron Franke 68ba2588b8
[Mono] Color arithmetic operators 2020-01-03 06:00:14 -05:00
Rémi Verschelde 9d3424f61d
Merge pull request #34688 from sheepandshepherd/gdnative_class_ptr
Expose is_class_ptr to GDNative for dynamic casts
2020-01-03 11:32:01 +01:00
clayjohn 7a9fc69a16 Fallback to RGBA4444 for textures with alpha set to ETC compression 2020-01-02 21:37:48 -08:00
sheepandshepherd 3056c4bd5a Expose cast_to to GDNative for dynamic casts 2020-01-03 04:27:13 +01:00
Aaron Franke 0b3f1cc70a
[Mono] Make Sign methods consistent with GDScript and System.Math 2020-01-02 16:41:41 -05:00
Rémi Verschelde d84cf797a2
Merge pull request #34758 from neikeq/mono-bindings-void-vararg
Mono/C#: Fix bindings generator with void vararg methods
2020-01-02 18:34:38 +01:00
Rémi Verschelde 1fe8dedf33
Merge pull request #34756 from bojidar-bg/34689-export-line-break
Allow the usage of newlines in export hints
2020-01-02 18:20:28 +01:00
Ignacio Etcheverry c1ff3ef9e8 Mono/C#: Fix comment generation for non-constant param default
- Generate the comment for the param, even if the method has no description.
- Generate the comment outside the <summary> element.
2020-01-02 18:10:02 +01:00
Ignacio Etcheverry f3aa793ba3 Mono/C#: Fix bindings generator with void vararg methods
Commit 4d727f1ee6 made it possible for vararg
methods to return void. This broke the C# bindings generator which was
assuming in one place that vararg methods always return Variant.
2020-01-02 18:02:48 +01:00
Bojidar Marinov b93b7aca74
Allow the usage of newlines in export hints
Fixes #34689
2020-01-02 18:03:11 +02:00
Ignacio Etcheverry 844a8d215b Mono/C#: Make 'GD.Print' and its variants fallback to 'ToString()'
Up until now, 'GD.Print' would convert parameters first to
Variant and only then to String. This meant parameters that cannot be
converted to Variant would be printed as "Null".
This commit makes 'GD.Print' fallback to 'System.Object.ToString()'
if the parameter could not be converted to Variant.
The same applies to all 'GD.Print' variants:
'GD.PrintS', 'GD.PrintT', 'GD.PrintErr' and 'GD.PrintRaw'.
2020-01-02 13:54:20 +01:00
Ignacio Etcheverry ea75ea50d2 Mono/C#: Fix GD.PrintErr now showing in the Output panel 2020-01-02 13:13:22 +01:00
Rémi Verschelde 5aa96b72c7
Merge pull request #34706 from KoBeWi/grindput
Don't handle Gridmap input when have no effect
2020-01-01 11:35:39 +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
Ignacio Roldán Etcheverry 7fddf5eb7c
Merge pull request #34699 from van800/godot-guid
Custom property for Godot generated project
2019-12-31 20:28:14 +01:00
Tomasz Chabora bf143c05d2 Don't handle Gridmap input when have no effect 2019-12-30 23:35:43 +01:00
Rémi Verschelde e37ad996a1
Merge pull request #34625 from timothyqiu/i18n
Makes more editor strings translatable
2019-12-30 17:28:11 +01:00
Rémi Verschelde edf2ed5e50
Merge pull request #34582 from timothyqiu/forward-decl
Cleans up headers included in editor_node.h
2019-12-30 16:28:47 +01:00
Ivan Shakhov af2e6e12d1 add custom property to csproj, which identifies that project is generated by Godot 2019-12-30 16:16:47 +01:00
Haoyu Qiu 8cf941a8cb Makes more editor strings translatable
* Title of Sprite Editor convert preview dialogs
* Title of UV Channel Debug dialog
* Various editor warnings
* GridMap popup menu item "Paste Selects"
* Tileset editor shape button texts
* MeshLibrary update confirmation text
2019-12-30 10:36:31 +08:00
Dan Kramer 1b26f2c505 Fix msbuild target argument 2019-12-29 17:03:21 -05:00
Ignacio Etcheverry 86274b9fc9 Mono/C#: Re-structure API solution and GodotTools post-build target
Previously we had a placeholder solution called 'Managed' to benefit from
tooling while editing the a part of the C# API.
Later the bindings generator would create the final 'GodotSharp' solution
including these C# files as well as the auto-generated C# API.
Now we replaced the 'Managed' solution with the final 'GodotSharp' solution
which is no longer auto-generated, and the bindings generator only takes
care of the auto-generated C# API.
This has the following benefits:
- It's less confusing as there will no longer be two versions of the same file
(the original and a generated copy of it). Now there's only one.
- We no longer need placeholder for auto-generated API classes, like Node or
Resource. We used them for benefiting from tooling. Now we can just use the
auto-generated API itself.
- Simplifies the build system and bindings generator. Removed lot of code
that is not needed anymore.

Also added a post-build target to the GodotTools project to copy the output to
the data dir. This makes it easy to iterate when doing changes to GodotTools,
as SCons doesn't have to be executed anymore just to copy these new files.
2019-12-28 20:48:55 +01:00
Ignacio Roldán Etcheverry 318c693516
Merge pull request #34595 from van800/mac_rider
Fix search for Rider path on Mac
2019-12-26 02:16:55 +01:00
Ignacio Roldán Etcheverry f90e8c41a2
Merge pull request #34604 from neikeq/issue-27674
Mono/C#: Fix memory leak with new Reference instances created from C#
2019-12-25 20:47:07 +01:00
Ignacio Etcheverry 0ef635c0e3 Mono/C#: Fix memory leak with new Reference instances created from C# 2019-12-25 19:33:59 +01:00
Ivan.Shakhov 682dd04b2d fix Rider path on Mac 2019-12-25 00:14:31 +01:00
Haoyu Qiu 078c0d75f2 Cleans up headers included in editor_node.h 2019-12-24 21:46:05 +08:00
Rémi Verschelde e4ecfe90f9
Merge pull request #34515 from Faless/ws/closing_ws
WSLPeer now prevents receiving data after close.
2019-12-22 12:32:52 +01:00
Dan Kramer 097d1c9383 add suggested fix 2019-12-21 13:26:29 -05:00
Rémi Verschelde a10449bbbc
Merge pull request #34514 from neikeq/remove-dep-on-mono-posix
Mono/C#: Remove GodotTools dependency on the Mono.Posix assembly
2019-12-21 17:07:18 +01:00
Fabio Alessandrelli 9afdb9dcd3 WSLPeer now prevents receiving data after close.
Used to spit error and report empty packets when connection was still
half-closed (waiting for confirmation from other end).
2019-12-21 16:38:36 +01:00
Ignacio Etcheverry 5a3ccf4f14 Mono/C#: Remove GodotTools dependency on the Mono.Posix assembly
MSBuild on Windows uses the system .NET Framework BCL instead of Mono's. Because
of this, it may not be able to find the Mono.Posix assembly, so it's better
not to depend on it. We needed Mono.Posix to call Syscall.access, so we can
replace this with an internal call that does the same in C++.
2019-12-21 15:55:45 +01:00
Haoyu Qiu 0693718164 Makes more editor strings translatable
* "Add" button text in Groups Editor
* "Receiver Method" in Connect Signal Dialog
* "Play Mode" in Animation State Machine Editor
* "Mesh Library" button text in Mesh Library editor plugin
* Compose Array node button texts in Visual Script
* Various button texts in TileSet Editor
* Various Run Script errors
2019-12-21 20:58:17 +08:00
Rémi Verschelde 2a4c528d06
Merge pull request #34465 from neikeq/no-hardcode-debugger-wait
Mono/C#: Remove hard-coded debugger wait at initialization
2019-12-19 21:27:59 +01:00
Ignacio Etcheverry f3c6c63b94 Mono/C#: Remove hard-coded debugger wait at initialization
Up until now debug builds would always wait up to 500 ms during initialization
to give time for debuggers to attach to the game.
We no longer want this as it increases startup time unnecesarily.
The way forward is to setup the debugger agent as client instead of server.
This way it's the game that connect to the debugger, not the other way around.
If server mode is still desired, suspend=y can be used to indefinitely wait
for the debugger to attach. This all can be specified with the environment
variable 'GODOT_MONO_DEBUGGER_AGENT' when launching the game.
2019-12-19 17:07:20 +01:00
Ignacio Etcheverry 98dc07f25f Mono/C#: Fix Variant -> MonoString* when type is Variant:NIL
`Variant::operator String()` returns "Null" if the type is `Variant:NIL`.
We must consider that and return a null `MonoString*` instead when marshalling.
This was also causing a "Null" error to be displayed when exporting a game
because null string members would be set to "Null" during hot-reload.
2019-12-19 16:51:32 +01:00
Rémi Verschelde 1c6b9bfdff Mono: Copy native and btls libs on macOS 2019-12-18 08:39:37 +01:00
Ignacio Etcheverry 20d7013c60 Mono/C#: Fix project export and fix FindLast/GetFile regression
d09193b08a introduced a regression in
StringExtensions.FindLast. StringExtensions.GetFile was also affected as it
relies on FindLast. This in turn broke the project exporter as it uses GetFile.
The cause of the regression is that now FindLast is calling LastIndexOf
with 'startIndex: 0'. This should be 'startIndex: str.Length - 1' instead.

Also fixed another regression in the project exporter:
de7c2ad21b moved 'GodotTools/GodotSharpExport.cs'
to 'GodotTools/Export/ExportPlugin.cs' and in doing so accidently reverted
the changes from commit e439581198.
2019-12-17 13:06:41 +01:00
Haoyu Qiu 9adeec789c Fixes size of create function dialog 2019-12-17 09:04:30 +08:00
Rémi Verschelde c3ea4ea9b7
Merge pull request #34382 from van800/profiler
Allow attaching any external profiler, including JetBrains dotTrace
2019-12-16 22:00:36 +01:00
Ivan Shakhov 7c64779516 Allow attaching any external profiler, including JetBrains dotTrace 2019-12-16 20:34:30 +01:00
Rémi Verschelde a866028a7a Mono: Enable threads suspend workaround on Windows
This appears to be necessary for current official builds cross-compiled
with MinGW from Linux, using Mono 6.6.0.160.

Follow-up to #31784, see #29812 for details.
2019-12-16 15:40:26 +01:00
Rémi Verschelde d4601776db
Merge pull request #34377 from timothyqiu/i18n
Makes more strings in editor translatable
2019-12-16 09:56:23 +01:00
Haoyu Qiu 7a9c337dfe Makes more strings in editor translatable
* File type names in file dialogs
* Layout option names
* Visual shader editor UI
2019-12-16 16:41:07 +08:00
Rémi Verschelde 74977277fa
Merge pull request #34280 from zaksnet/fix-yield-documentation
Fix documentation for yield
2019-12-16 08:49:32 +01:00
Haoyu Qiu 468fcd80bb Updates docs for GDScript built-in functions
* Adds description for `ord()`
* Adds relationship description between `char()` and `ord()`
* Describes the argument of `char()` as Unicode code point instead of ASCII code
* Fixes wrong interval notation in `randi()` description
2019-12-15 19:06:29 +08:00
Rémi Verschelde 12ee35737f
Merge pull request #34334 from neikeq/issue-33503
Mono/C#: Fix class parser bug with 'where T : struct'
2019-12-13 20:13:28 +01:00
Rémi Verschelde e65db6a16b
Merge pull request #34333 from vnen/gdscript-assign-op
Fix some cases where typed assignment gets invalid
2019-12-13 20:13:12 +01:00
Ignacio Etcheverry f2a2293709 Mono/C#: Fix class parser incorrectly handling nested namespaces
It would incorrectly error thinking the nested namespace is being declared inside a struct/class. This was because of an incorrect nesting level being used for classes and structs.
2019-12-13 19:55:32 +01:00
Ignacio Etcheverry c1ab956dd0 Mono/C#: Fix class parser bug with 'where T : struct'
The struct decl parsing was outdated. Make both struct decl and class declparsing share the same code.
2019-12-13 19:50:42 +01:00
George Marques cb887324e6
GDScript: Convert values when setting member variables
This allows doing: self.x = 1 even if self.x is declared as float.
2019-12-13 12:51:53 -03:00
George Marques 475d7f0e52
GDScript: Fix type conversion in assignment with operation 2019-12-13 12:51:08 -03:00
Rémi Verschelde 9f68626fb2 doc: Sync classref with current source
Also apply clang-format.
2019-12-13 10:41:06 +01:00
Zak 0fd7186971 Fix documentation for yield
#33872 PR was misleading as i though inheritance from GDScriptFunctionState was optional.
2019-12-13 11:17:12 +02:00
Rémi Verschelde d39284a65f
Merge pull request #34295 from aaronfranke/potato-knishes
[Mono] Fix string Find methods having reversed case sensitivity
2019-12-13 08:47:26 +01:00
Rémi Verschelde f065b34e96
Merge pull request #34286 from bojidar-bg/31818-cast-autocomplete
Fix GDScript autocompletion with "as" or typed variables
2019-12-12 14:53:38 +01:00
Aaron Franke d09193b08a
Fix string Find methods having reversed case sensitivity 2019-12-12 02:21:16 -05:00
Bojidar Marinov a665b3878b
Fix GDScript autocompletion with `as` or typed variables
Fixes #31818, fixes #33434
2019-12-12 01:16:23 +02:00
Aaron Franke 5771f9959c
Mono formatting
No space for casting, add spaces inside braces, 4 space indentation, remove trailing indentation, remove BOM.
2019-12-11 16:32:47 -05:00
Michael Alexsander 6cc3bb2d9b Add note in 'load()' docs that the path must be absolute 2019-12-11 17:14:58 -03:00
Rémi Verschelde 98c3990f7d
Merge pull request #34271 from vnen/gdscript-unused-class-variable-disable
Disable GDScript warning for unused class variable by default
2019-12-11 16:27:42 +01:00
Rémi Verschelde 70a8c37957
Merge pull request #34227 from akien-mga/scons-mingw-split-libmodules
SCons: Add 'split_libmodules' option to workaround linker issue
2019-12-11 16:21:16 +01:00
Rémi Verschelde c320a82213 SCons: Add 'split_libmodules' option to workaround linker issue
The new 'split_libmodules=yes' option is useful to work around linker
command line size limitations when linking a huge number of objects.
We're currently over 64k chars when linking libmodules.a on Windows
with MinGW, which triggers issues as seen in #30892.

Even on Linux, we can also reach linker command line size limitations
by adding more custom modules.

We force this option to True for MinGW on Windows, which fixes #30892.

Additional changes to lib splitting:

- Fix linking of the split module libs with interdependent symbols,
  hacking our way into LINKCOM and SHLINKCOM to set the `--start-group`
  and `--end-group` flags.
- Fix Python 3 compatibility in `methods.split_lib()`.
- Drop seemingly obsolete condition for 'msys' on 'posix'.
- Drop the unnecessary 'split_drivers' as the drivers lib is no longer
  too big since we moved all thirdparty builds to modules.

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2019-12-11 15:40:28 +01:00
Rémi Verschelde df2e3e3f7f
Merge pull request #33018 from Xrayez/fix-inst2dict-getters
Fix `inst2dict` calling to getters to retrieve value
2019-12-11 15:06:38 +01:00
George Marques cbf5641a74
Disable GDScript warning for unused class variable by default 2019-12-11 11:02:07 -03:00
Rémi Verschelde cd9d513285
Merge pull request #34181 from van800/rider
Support Rider as external editor for Godot mono version
2019-12-11 09:20:31 +01:00
Ivan Shakhov 8fbc9d33fd Support Rider as External Editor 2019-12-11 08:39:04 +01:00
Rémi Verschelde 2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Marcel Admiraal e0d252311e Add check for zero length motion at beginning of each sweep test loop
in SpaceBullet::test_body_motion.
2019-12-10 08:16:32 +01:00
Rafał Mikrut ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Marcel Admiraal 78055cbdaf Check that motion is not zero before doing a sweep test.
Fixes #25476.
2019-12-09 09:21:38 +01:00
Rémi Verschelde 4eff13d768 doc: Markup fixes for enums and constants 2019-12-06 23:09:20 +01:00
Jonas 11258db001
Fix missing null checks in Mono Binding of GD
The print methods of mono binding was missing null checks for the params
2019-12-06 11:56:50 +01:00
Ignacio Roldán Etcheverry 6544a0e908
Merge pull request #34018 from dsge/show-template-directory-path-in-error-message
Make sure to include the path in the "Data template directory not found" error message
2019-12-05 14:17:23 +01:00
codecustard 601d870ae9 Fixes wrong position when adding node in VS editor
When adding a node in the visual script editor while zoomed in, the position of the newly added node would be wrong.
2019-12-04 17:12:01 -08:00
Ignacio Etcheverry 066ae9d83b Mono/C#: Several android fixes
- Added correct config file for android dllmaps.
- Fix __Internal DllImports with a dlopen fallback.
- Add missing P/Invoke functions and internal calls expected by the monodroid BCL and our custom version of the 'Android.Runtime.AndroidEnvironment' class (this last one can be found in the godot-mono-builds repo).
- Make sure to set 'btls' instead of 'legacy' as the default TLS provider on Android.
2019-12-04 19:03:42 +01:00
Ignacio Etcheverry 3797f19926 C#: Add Duplicate method to the Array and Dictionary bindings 2019-12-04 15:22:30 +01:00
Rémi Verschelde fc8bbaa8e9
Merge pull request #34094 from volzhs/compile-windows-on-linux
Fix compile error for Windows on Linux
2019-12-04 07:08:23 +01:00
Rémi Verschelde f326913f4d
Merge pull request #34067 from bojidar-bg/32370-retype-message
Make error when accidentially redeclaring a variable's type clearer
2019-12-04 06:52:22 +01:00
volzhs d1270f3d4c Fix compile error for Windows on Linux 2019-12-04 08:06:07 +09:00
Hugo Locurcio 1fcdeaee39
Mention that `int()` can be used as an alternative to `floor()` 2019-12-03 08:43:24 +01:00
Bojidar Marinov 79c26344e8
Make error when accidentially redeclaring a variable's type clearer
Fixes #32370
2019-12-02 22:26:05 +02:00
Rémi Verschelde e64a663c59
Merge pull request #33992 from bruvzg/ios_modular_build
iOS modular build and export implementation.
2019-12-01 22:35:45 +01:00
bruvzg 2ef8c5fac5
iOS modular build and export implementation. 2019-12-01 21:57:18 +02:00
Emmanuel Leblond fb9b010384
Add missing on error manifest struct destroy in pluginscript script init 2019-12-01 16:15:31 +01:00
Rémi Verschelde ea7f3037da
Merge pull request #34002 from KoBeWi/crashonat
Don't try to initialize empty NativeLibrary
2019-12-01 11:53:19 +01:00
Rémi Verschelde 7140d766a2
Merge pull request #33997 from akien-mga/doc-makerst-escape
makerst: Escape default values using reST markup
2019-12-01 11:52:20 +01:00
Aaron Franke 3231fca934
Add docs for is_equal_approx on structures 2019-11-30 16:52:27 -05:00
miere43 d747c61187 Fixed typo in docs for Script and GDScript classes ("exends" -> "extends") 2019-11-30 21:16:11 +03:00
dsge 81cae314b4 Make sure to include the path in the "Data template directory not found" error message 2019-11-30 15:44:18 +01:00
Rémi Verschelde 52e3944846
Merge pull request #34009 from flyingpimonster/gridmap-docs
Docs: GridMap and MeshLibrary
2019-11-30 11:13:42 +01:00
James Westman 7ef16ca136 Docs: GridMap and MeshLibrary
The only methods left to document are resource_changed, set_clip, and
the methods dealing with baked meshes.
2019-11-29 18:21:34 -06:00
Tomasz Chabora f4a1a79d01 Don't try to initialize empty NativeLibrary 2019-11-29 21:10:20 +01:00
Rémi Verschelde 55676b16da makerst: Escape default values using reST markup
Otherwise the docs would complain about values like "godot_"
which reST tries to interpret as an identifier.
2019-11-29 14:25:37 +01:00
Rémi Verschelde fa0e682027
Merge pull request #33982 from neikeq/issue-29349
Mono/C#: Add option to export assemblies outside of PCK
2019-11-29 11:37:18 +01:00