Commit Graph

1110 Commits

Author SHA1 Message Date
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
dankan1890
51c601d2e3 [Mono]: the C# script icon is now visible in the editor. 2020-01-03 22:49:22 +01:00
Rémi Verschelde
399e53e8c3
Merge pull request 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
Aaron Franke
68ba2588b8
[Mono] Color arithmetic operators 2020-01-03 06:00:14 -05:00
Aaron Franke
0b3f1cc70a
[Mono] Make Sign methods consistent with GDScript and System.Math 2020-01-02 16:41:41 -05: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
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
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 from van800/godot-guid
Custom property for Godot generated project
2019-12-31 20:28:14 +01:00
Rémi Verschelde
edf2ed5e50
Merge pull request 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
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 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 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
Dan Kramer
097d1c9383 add suggested fix 2019-12-21 13:26:29 -05:00
Rémi Verschelde
a10449bbbc
Merge pull request 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
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
Rémi Verschelde
2a4c528d06
Merge pull request 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
Rémi Verschelde
c3ea4ea9b7
Merge pull request 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 , see  for details.
2019-12-16 15:40:26 +01:00
Rémi Verschelde
12ee35737f
Merge pull request from neikeq/issue-33503
Mono/C#: Fix class parser bug with 'where T : struct'
2019-12-13 20:13:28 +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
Rémi Verschelde
9f68626fb2 doc: Sync classref with current source
Also apply clang-format.
2019-12-13 10:41:06 +01:00
Rémi Verschelde
d39284a65f
Merge pull request from aaronfranke/potato-knishes
[Mono] Fix string Find methods having reversed case sensitivity
2019-12-13 08:47:26 +01:00
Aaron Franke
d09193b08a
Fix string Find methods having reversed case sensitivity 2019-12-12 02:21:16 -05: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
Rémi Verschelde
cd9d513285
Merge pull request 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
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 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
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
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
fa0e682027
Merge pull request from neikeq/issue-29349
Mono/C#: Add option to export assemblies outside of PCK
2019-11-29 11:37:18 +01:00
Ignacio Etcheverry
85d8c42763 Mono/C#: Fix crash on exported games that don't use C# 2019-11-29 01:35:46 +01:00
Ignacio Etcheverry
66de28eda8 Mono/C#: Add option to export assemblies outside of PCK
When using this options, assemblies will be saved in the Assemblies folder of the  data directory: 'data_AppName/Assemblies/'.
2019-11-29 00:36:05 +01:00
Rémi Verschelde
636bc5c32f
Merge pull request from neikeq/貴様
Mono/C#: Prevent SCons from building API solutions in parallel
2019-11-23 11:24:48 +01:00
Ignacio Etcheverry
ebdd2bc474 Mono/C#: Prevent SCons from building API solutions in parallel 2019-11-22 23:42:24 +01:00
Rémi Verschelde
c41c24562d Style: Add missing copyright headers 2019-11-22 08:37:09 +01:00
Ignacio Roldán Etcheverry
63b321dbbb
Merge pull request from neikeq/issue-33761
C#: Fix PathWhich on Windows when name already has extension
2019-11-21 21:34:12 +01:00
Ignacio Etcheverry
f91416d9ac C#: Fix PathWhich on Windows when name already has extension
Also make the Posix version of PathWhich check if the file has executable access.
2019-11-21 14:53:00 +01:00
Rémi Verschelde
73323a2838
Merge pull request from neikeq/issue-33725
Fix C# export error dialog showing up when it should not
2019-11-20 13:23:20 +01:00
Ignacio Etcheverry
d79aeca599 Fix C# export error dialog showing up when it should not 2019-11-20 13:07:26 +01:00
Ignacio Etcheverry
3f247ea507 Mono/C#: Bundle libmono-btls-shared.dll on Windows if it exists 2019-11-19 17:22:06 +01:00
Ignacio Etcheverry
008769aee9 C#: Throw NullReferenceException for null NodePath/RID params 2019-11-18 12:23:54 +01:00
Ignacio Etcheverry
8cbe4a3db4 Make C# internal calls return structs as ref parameters
The Mono IL interpreter's WebAssembly to native trampolines don't support passing structs by value, so we need to do it this way.

Also now we pass and return long, ulong, float and double as ref parameters as well. This is due to missing trampolines for float and long types. This is likely a temporary workaround that will be reverted in the future. The correct solution would be to patch 'mono/mini/m2n-gen.cs' when building the Mono runtime for WASM in order to generate the trampolines we need.
2019-11-15 03:22:25 +01:00
Ignacio Etcheverry
2b67924a0b Mono/C#: Initial exporter support for AOT compilation 2019-11-15 03:22:18 +01:00
Ignacio Etcheverry
de7c2ad21b Mono/C#: WebAssembly support 2019-11-13 21:41:11 +01:00
Ignacio Roldán Etcheverry
953f37f49b
Merge pull request from JoshLee0915/MonoHeadlessServer
Added missing server platform checks to template dir and shared lib copy in mono_configure.py
2019-11-12 14:57:29 +01:00
Rémi Verschelde
77816fea8b
Merge pull request from aaronfranke/equal-approx-separate
Make is_equal_approx separate and make == exact again
2019-11-07 14:54:15 +01:00
Aaron Franke
4922a48a9e
[Mono] Alphabetize Mathf 2019-10-29 10:10:24 -04:00
Rémi Verschelde
e96319c7f3
Merge pull request from aaronfranke/mono-plane
[Mono] Change Plane intersect methods to return nullable Vector3
2019-10-23 21:44:05 +02:00
JoshLee0915
cbd98d0fcf Added the server platform checks to template dir and shared lib copy 2019-10-21 20:47:24 -06:00
Aaron Franke
218f38c7ec
Expose is_equal_approx and restore == to be exact again
This commit changes behavior for GDScript and C#.

Also did some organizing of the order to logically group related methods, mostly for Rect2 and AABB.
2019-10-14 16:48:59 -04:00
Aaron Franke
86922ff70b
Make is_equal_approx separate for structures
This commit adds exposed behavior for C#
2019-10-14 16:46:54 -04:00
Ignacio Etcheverry
8a0c0371d4 C#: Fix regression from caused a crash on domain reload 2019-10-12 21:27:56 +02:00
Rémi Verschelde
3cc94b2c0b Mono: Fix template build after 2019-10-11 15:17:36 +02:00
Ignacio Etcheverry
8c438a2197 C#: Fix detection of outdated release Godot API assemblies 2019-10-11 01:46:06 +02:00
Aaron Franke
643874f8ca
[Mono] Change Plane intersect methods to return nullable Vector3 2019-10-08 22:47:22 -04:00
Rémi Verschelde
f3f2fdfbab Mono: Fix detection of MsBuild from Visual Studio
This was a wrong check as an exit code of 0 means success,
not failure. It used to be fine as blocking mode always returned
-2, but this was changed in  to return the exit code.

Fixes .
2019-10-03 14:13:41 +02:00
Ignacio Roldán Etcheverry
763a4d8402
Merge pull request from neikeq/Kisaama!
Mono: Don't compare API hashes on release builds
2019-09-28 03:31:37 +02:00
Ignacio Etcheverry
1509890dbc Mono: Don't compare API hashes on release builds
API hashes cannot be calculated on release builds, as bindings information is lacking. Therefore, we should not be comparing it with the generated glue hash as they will never match.
2019-09-28 01:07:57 +02:00
Rémi Verschelde
e067a54988
Merge pull request from neikeq/yamero
Mono: Improve API assembly load error message on exported games
2019-09-26 07:31:03 +02:00
Rémi Verschelde
0a10e07124
Merge pull request from neikeq/issue-32237
Mono: Don't use project settings for debugger agent on exported games
2019-09-26 07:29:25 +02:00
Ignacio Etcheverry
2325fb11a8 Mono: Improve API assembly load error message on exported games 2019-09-25 22:32:39 +02:00
Ignacio Etcheverry
5ff4e0516b Mono: Don't use project settings for debugger agent on exported games 2019-09-25 22:03:24 +02:00
Rémi Verschelde
dec10dd776
Merge pull request from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin
17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Ignacio Etcheverry
c4fa027614 Improve C# bindings generator errors for default param values 2019-09-24 15:09:54 +02:00
Rémi Verschelde
9c116f4f1d
Merge pull request from neikeq/cs_glue_version_fix
C#: Make sure cs_glue_version is present when building export templates
2019-09-20 17:46:34 +02:00
Ignacio Etcheverry
95c685143a C#: Make sure cs_glue_version is present when building export templates 2019-09-20 17:41:20 +02:00
Rémi Verschelde
f9db6ad8c5
Merge pull request from m4gr3d/use_aar_for_custom_build
Leverage Android archive (AAR) file for Godot custom build
2019-09-19 20:22:09 +02:00
Chaosus89
46bb523db7 [Mono] Corrected rectangle intersection 2019-09-16 09:49:04 +03:00
Rémi Verschelde
24e1039eb6
Merge pull request from neikeq/fix-cannot-create-mono-log-file
Mono: Fix unable to create log file due to str_format bug
2019-09-08 22:31:52 +02:00
Ignacio Etcheverry
3dcd7e54f4 Mono: Fix unable to create log file due to str_format bug 2019-09-08 19:40:17 +02:00
Ignacio Roldán Etcheverry
da2af72d73
Merge pull request from neikeq/fix-mono-export-windows-backslash
Mono: Fix PCK assembly paths when exporting from Windows
2019-09-07 21:39:27 +02:00
Ignacio Etcheverry
93897fb884 Fix missing method for internal_MonoWindowsInstallRoot 2019-09-07 02:31:01 +02:00
Ignacio Etcheverry
e439581198 Mono: Fix PCK assembly paths when exporting from Windows
Assembly paths were written to PCK files with backslash as path separator and PackedData only supports forward slash.
This would make exported games unable to find the assemblies.
2019-09-07 02:19:25 +02:00
fhuya
7fabfd402f Split the Android platform java logic into an Android library module (lib) and an application module (app).
The application module `app` serves double duties of providing the prebuilt Godot binaries ('android_debug.apk', 'android_release.apk') and the Godot custom build template ('android_source.zip').
2019-09-04 16:20:22 -07:00
iwek7
617797c47c Adds skip-breakpoints feature 2019-09-03 20:49:09 +02:00
Aaron Franke
f8b4cf0fc4
Check for exact equality before approximate equality 2019-09-01 14:02:14 -04:00
Ignacio Etcheverry
5a6070dde3 Mono: Force preemptive thread suspend mode as a temporary workaround 2019-08-30 01:33:50 +02:00
Rémi Verschelde
a5e0aa32d9
Merge pull request from neikeq/supercedes-31008
Fix GodotTools.ProjectEditor HintPaths for referenced packages
2019-08-29 21:16:49 +02:00
Ignacio Etcheverry
6d2883c9bf Fix GodotTools.ProjectEditor HintPaths for referenced packages 2019-08-29 18:19:01 +02:00
Rémi Verschelde
65d1b0b427
Merge pull request from aaronfranke/mono-color
[Mono] Various Color fixes and improvements
2019-08-28 21:29:47 +02:00
Rémi Verschelde
538328898b Style: Fix copyright headers in new files 2019-08-28 09:19:52 +02:00
Rémi Verschelde
185072015f
Merge pull request from toasteater/fix/nativescript-new-json-return-type
Fix the return type of NativeScript::new in API json
2019-08-28 09:15:40 +02:00
Aaron Franke
34ab6549b1
[Mono] Various Color improvements
I also slid in a fix to C++ Vector3 > and >=
2019-08-27 22:05:18 -04:00
Rémi Verschelde
92ead83913 Mono: Fix OSX build due to invalid function call 2019-08-27 09:48:54 +02:00
toasteater
e2121c97ae Make VarArg methods return types show up as Variant in API json
VarArg methods have the return type Object in the API json for GDNative. This
can cause undefined behavior in some language bindings due to lack of
documentation on VarArg methods' behavior.

This changes the MethodInfo of:

- CSharpScript::_new
- GDScript::_new
- PluginScript::_new
2019-08-26 16:36:51 +00:00
Ignacio Roldán Etcheverry
be99e7b68f
Merge pull request from neikeq/fix-android-gen-sources
Fix 'android_mono_config.gen.cpp' not compiled first time it's generated
2019-08-26 18:28:12 +02:00
Ignacio Etcheverry
aa805e2699 Fix 'android_mono_config.gen.cpp' not compiled first time it's generated 2019-08-26 17:46:57 +02:00
Rémi Verschelde
57afa90f0c
Merge pull request from Calinou/csharp-alpha-dialog-android
Mention Android support in the C# alpha dialog message
2019-08-26 10:18:27 +02:00
Ignacio Etcheverry
3af8bd071e Set C# 7 as LangVersion for GodotTools and Godot API projects
This will make it harder for someone to accidentally commit code that requires a newer version.
2019-08-25 15:53:47 +02:00
Hugo Locurcio
27f5ab2d7b
Mention Android support in the C# alpha dialog message 2019-08-25 15:08:32 +02:00
lamonte
1df0e88ae8 default is only supported by 7.1, reverted to support 7.0 out of the box (no conflict) 2019-08-25 06:48:37 -05:00
Rémi Verschelde
51d50e167d
Merge pull request from aaronfranke/vector-sign-mod-etc
Add Vector2/3 sign and posmod functions, axis, docs, misc additions
2019-08-23 09:07:47 +02:00
Ignacio Etcheverry
dae2a335c5 Make sure '.mono/metadata/' exists before creating file
Fixes 
2019-08-22 14:32:55 +02:00
Aaron Franke
092346d82b
Add Vector2/3 sign and posmod functions, misc additions
Also make the docs more consistent, add Axis enum to Vector2, add > and >=. and C# also gets % and an override for vector-vector mod.
2019-08-17 18:31:55 -04:00
Rémi Verschelde
8995d95da0
Merge pull request from neikeq/monodevelop-addin
C#: Add Ide Connection library and server for the editor
2019-08-14 11:39:41 +02:00
Hugo Locurcio
05daf5c78b
Always use lists for LIBS in SCons
This closes .
2019-08-12 22:31:55 +02:00
Ignacio Etcheverry
bda461c2b1 Add C# language editor icon 2019-08-12 18:57:26 +02:00
Ignacio Roldán Etcheverry
3c78837218
Merge pull request from neikeq/mono-gitignore-override-sln
Make git no longer ignore solution files inside the mono module
2019-08-12 16:50:18 +02:00
Ignacio Etcheverry
33c0d47273 Make git no longer ignore solution files inside the mono module 2019-08-12 15:59:06 +02:00
Aaron Franke
85f13a0d24
Add Basis constants and format Transform constants 2019-08-09 11:34:54 -07:00
Ignacio Etcheverry
c55ce204b3 Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in 'modules/mono'
And 'CRASH_*_MSG' as well.

Also make error messages puntuation and quotation more consistent.
2019-08-09 12:13:21 +02:00
Aaron Franke
50fd2deede
[Mono] Make all structs seralizable 2019-08-07 18:34:52 -07:00
Rémi Verschelde
ba541bceca
Merge pull request from qarmin/coverity_bugs
Change some code proposed by Coverity and Cppcheck
2019-08-07 13:49:33 +02:00
qarmin
e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Aaron Franke
a9c10450bd
[Core] [Mono] Optimize Wrap functions
Use is_zero_approx(), avoid a negative, and also rename "rng" to "range".
2019-08-04 20:38:38 -07:00
Ignacio Etcheverry
57fe284fe6 C#: Fix Color.ToHtml() 2019-08-04 05:04:39 +02:00
Ignacio Etcheverry
0b94203a79 C#: Add Ide Connection library and server for the editor
This will be used for communicating between the Godot editor and external IDEs/editors, for things like opening files, triggering hot-reload and running the game with a debugger attached.
2019-08-04 01:57:53 +02:00
Aaron Franke
7dbbb5eac7
[Mono] Deprecate Set methods
These silently fail, so they should be removed. I accidentally added most of these last year, trying to make everything else consistent with Quat, sorry!

Also, a few tiny nitpicking changes are included, like whitespace and misspellings.
2019-07-28 17:49:22 -04:00
Ignacio Etcheverry
d54df7b904 C#: Fix Transform2D.AffineInverse() 2019-07-27 02:15:29 +02:00
Ignacio Roldán Etcheverry
6697ad2c4f
Merge pull request from neikeq/fix-custom-props-msbuild
Mono: Fix custom defines for Mono's MSBuild; remove xbuild
2019-07-26 18:33:52 +02:00
Ignacio Etcheverry
8821569689 Mono: Fix custom defines for Mono's MSBuild; remove xbuild
Mono's MSBuild and System/VisualStudio's MSBuild expect a different format for surrounding property values with quotes on the command line.

xbuild does not seem to support semicolons in property values from the command line: https://xamarin.github.io/bugzilla-archives/16/16465/bug.html
It's a good time to just remove xbuild support entirely.
2019-07-26 17:17:17 +02:00
Ignacio Roldán Etcheverry
a82420fbe8
Merge pull request from neikeq/heya
Fix incorrectly updating csproj and not closing build issues file
2019-07-26 16:54:11 +02:00
Ignacio Etcheverry
4e84478f4e Fix incorrectly updating csproj and not closing build issues file 2019-07-25 21:06:40 +02:00
Ignacio Etcheverry
c9befa63d2 Mono: Don't try to update project assemblies from project manager
Previously, when running the project manager, we would try to load the API assemblies from the project and fail because we were not editing any project. This would make us try to copy the prebuilt API assemblies to the project. Since there is no project, it would try to copy them to the executable location. This would fail if Godot doesn't have permissions to write to that location.
This commit fixes that by instead trying to load the prebuilt API assemblies in the first place, if running the project manager.
2019-07-25 17:52:45 +02:00
Ignacio Etcheverry
c0cdbb7938 Mono: Fix regression: external editors not working on Windows 2019-07-24 23:19:24 +02:00
Ignacio Etcheverry
513cc78f85 Mono: Add option to keep running after unhandled exceptions
By default, an unhandled exception will cause the application to be terminated; but the project setting `mono/unhandled_exception_policy` was added to change this behaviour.
The editor is hard-coded to never terminate because of unhandled exceptions, as that would make writing editor plugins a painful task, and we cannot kill the editor because of a mistake in a thirdparty plugin.
2019-07-24 23:19:15 +02:00
Chaosus
080c0bb7fe Added count method to String 2019-07-23 18:55:54 +03:00
Ignacio Etcheverry
0197d86ab4 Mono: Fix editor API assembly not being updated
If both the core and editor API assemblies are missing or out of sync, Godot will only update the former and then abort when trying to load them again because the latter was not updated. Godot will update it correctly the next time it's started, but this should not be needed and it should work the first time. This commit fixes that.
2019-07-22 00:16:24 +02:00
Ignacio Roldán Etcheverry
4379395892
Merge pull request from neikeq/issue-30526
Fix mono module build errors for release templates
2019-07-20 16:20:49 +02:00
Ignacio Etcheverry
ec679dfffa Fix mono module build errors for release templates 2019-07-20 15:52:26 +02:00
Chaosus
6694c119d0 Added lerp_angles built-in function
Co-authored-by: Xrayez <https://github.com/Xrayez>
Co-authored-by: DleanJeans <https://github.com/DleanJeans>
2019-07-20 12:59:41 +03:00
Ignacio Roldán Etcheverry
7f3490c5e1
Merge pull request from neikeq/yatta
Mono: Better handling of missing/outdated API assemblies
2019-07-14 19:39:26 +02:00
Ignacio Etcheverry
e59ac40712 Mono: Better handling of missing/outdated API assemblies
Remove the old API assembly invalidation system. It's pretty simple since now the editor has a hard dependency on the API assemblies and SCons takes care of prebuilding them.
If we fail to load a project's API assembly because it was either missing or outdated, we just copy the prebuilt assemblies to the project and try again. We also do this when creating the solution and before building, just in case the user removed them from the disk after they were loaded.
This way the API assemblies will be always loaded successfully. If they are not, it's a bug.

Also fixed:

- EditorDef was behaving like GlobalDef in GodotTools.
- NullReferenceException because we can't serialize System.WeakReference yet. Use Godot.WeakRef in the mean time.
2019-07-14 19:17:07 +02:00
unknown
f236b460e5 Some small fixes to warnings in python scripts 2019-07-11 22:26:04 +05:30
Ignacio Etcheverry
4061e132ff Mono: Add old TTRs to GodotTools 2019-07-11 13:59:06 +02:00
Ignacio Roldán Etcheverry
2c6daf73f3
Merge pull request from neikeq/chotto-matte-kudasai
Mono: Fix Api HintPath and update old game projects
2019-07-10 22:36:06 +02:00
Ignacio Roldán Etcheverry
1700ab9bc6
Merge pull request from neikeq/dispose-godotsharpexport
Mono: Fix null dereference in EditorExportPlatformAndroid
2019-07-10 22:35:54 +02:00
Ignacio Etcheverry
9eb0729a05 Mono: Fix Api HintPath and update old game projects
Fixed Api assembly references with more than one HintPath.
Also made the editor update old C# projects use the new Api assembly HintPaths.
2019-07-10 22:00:31 +02:00
Ignacio Etcheverry
2a8294ff24 Mono: Fix null dereference in EditorExportPlatformAndroid
We need to dispose the GodotSharpExport export plugin before the editor destroys EditorSettings. Otherwise, if the GC disposes it at a later time, EditorExportPlatformAndroid will be freed after EditorSettings already was, and its device polling thread will try to access the EditorSettings singleton, resulting in null dereferencing.
2019-07-10 21:51:47 +02:00
Ignacio Roldán Etcheverry
c3da4f854d
Merge pull request from neikeq/fix-indexoutofbounds-msbuildfinder
Fix IndexOutOfBounds in FindMsBuildToolsPathOnWindows
2019-07-10 21:43:17 +02:00
Ignacio Roldán Etcheverry
8b778f6234
Merge pull request from neikeq/fix-nullexc-on-gengameproj
Mono: Fix null exception in GenerateGameProject
2019-07-10 15:40:25 +02:00
Ignacio Etcheverry
caf20492cf Mono: Fix null exception in GenerateGameProject
Also fix pdb files for GodotTools.*.dll assemblies not being copied to the output directory.
2019-07-10 15:03:05 +02:00
Ignacio Roldán Etcheverry
63c4d5af72
Merge pull request from neikeq/remove-frameworkpathoverride-from-scons
SCons no longer passes FrameworkPathOverride to MSBuild
2019-07-10 13:35:40 +02:00
Ignacio Etcheverry
ace0c6ce38 Fix IndexOutOfBounds in FindMsBuildToolsPathOnWindows 2019-07-10 13:30:03 +02:00
Ignacio Etcheverry
c0a4f12fcc SCons no longer passes FrameworkPathOverride to MSBuild 2019-07-10 13:19:52 +02:00
Ignacio Etcheverry
2da83a278b Mono: Add missing GodotTools.sln 2019-07-10 12:30:12 +02:00
Ignacio Etcheverry
d3f48f88bb Fix EditorNavigationMeshGenerator registered in Core API
Also added an option to output a json file with all the ClassDB registered classes and its members. This can be used to compare the API of two different builds by a simple diff.
2019-07-09 23:33:29 +02:00
Rémi Verschelde
d2e620b8fc
Merge pull request from neikeq/fix-search-dirs
Fix export templates ignoring assemblies in 'res://.mono/assemblies'
2019-07-09 21:59:32 +02:00
Ignacio Etcheverry
4af03e52bd Make SCons check for System MSBuild before Mono's 2019-07-09 16:49:06 +02:00
Ignacio Etcheverry
df6d1656fe Fix export templates ignoring assemblies in 'res://.mono/assemblies' 2019-07-09 16:49:02 +02:00
Rémi Verschelde
29ca79bd68
Merge pull request from neikeq/gitcheckout-b
Misc Mono Fixes
2019-07-09 08:26:48 +02:00
Ignacio Etcheverry
069af23bdb Mono: Fix build errors with tools=no 2019-07-08 18:07:20 +02:00
Ignacio Etcheverry
dd22cc7527 C#: Fix some crashes during assemblies reloading 2019-07-08 18:07:20 +02:00
Ignacio Etcheverry
aa3b8f7dbb Fix Godot.Object.ToString() infinite recursion
Should not be using Variant to String conversion as that would call ToString() again
2019-07-08 18:07:20 +02:00
Ignacio Etcheverry
5ed3d34cd9 Fix --generate-mono-glue bug when directory doesn't exist
DirAccess::get_full_path(path) only works if the path exists. Implement our own abspath function.
2019-07-08 18:07:15 +02:00
Ignacio Etcheverry
2c83255013 Fix C# bindings detection of abstract classes
ClassDB::can_instance was changed recently breaking our code, as the editor is not yet initialized. Check ClassInfo::creation_func directly.
2019-07-08 15:13:57 +02:00
Ignacio Etcheverry
b0cbf4e2b2 Fix InvalidCastException when loading script metadata
Old value wasn't string so we have to keep that in mind
2019-07-08 15:12:04 +02:00
qarmin
9a77d748c0 Fixes minor issues found by static analyzer 2019-07-07 23:08:51 +02:00
Ignacio Etcheverry
aa9908e4f6 Script API methods must return Ref<T> instead of Reference*
ptrcall assumes methods that return a Reference type do so with Ref<T>. Returning Reference* from a method exposed to the scripting API completely breaks ptrcalls to this method (it can be quite hard to debug!).
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
e4699aa047
Merge pull request from neikeq/issue-29734
Mono: Fix Array IndexOutOfRangeException not being thrown
2019-07-03 21:26:25 +02:00
Rémi Verschelde
e1478b7a87
Merge pull request from neikeq/android_fixes
Mono: Android build and shared libraries fixes
2019-07-03 21:26:12 +02:00
Ignacio Etcheverry
3abe6961dc Mono: Fix Array IndexOutOfRangeException not being thrown 2019-07-03 17:56:08 +02:00
Ignacio Etcheverry
9f1a8ce6a2 Mono: Android build and shared libraries fixes
Fix location of Mono's shared libraries.
Fix build failing if the directory 'platform/android/java/libs/{target}/{abi}' doesn't exist.
2019-07-03 17:48:12 +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
qarmin
3c154eb93b Remove unnecessary code and add some error explanations 2019-07-01 12:59:42 +02:00
qarmin
4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
JohnJLight
38d3bfe971 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +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
Rémi Verschelde
89ce9a6f46 Mono: Fix -Wduplicated-branches warning 2019-06-15 18:01:34 +02:00
Ignacio Roldán Etcheverry
abbbde87e2
Merge pull request from neikeq/remove-unneeded-mono-patches
Remove obsolete mono patch for pthread_mutexattr_setprotocol
2019-06-08 21:14:15 +02:00
Ignacio Etcheverry
26f9d907d4 Remove obsolete mono patch for pthread_mutexattr_setprotocol
This has already been fixed in Mono both master and 2019-06 (no other branch other than the skipped 2019-04 branch uses pthread_mutexattr_setprotocol).
2019-06-08 17:00:02 +02:00
Ignacio Etcheverry
ff0c863cb1 Mono: Fix SCons options added to the wrong environment 2019-06-04 16:15:00 +02:00
Ignacio Etcheverry
14df9e5cb2 Android build and export for the mono module 2019-06-03 17:09:24 +02:00
Rémi Verschelde
b9dc2e7e4d
Merge pull request from lupoDharkael/fix-completion
Fix code completion not working with class_name
2019-06-03 14:01:07 +02:00
Rémi Verschelde
3c4fab295b
Merge pull request from Giacom/move_towards
Added move_toward functions for float, Vector2 and Vector3
2019-06-01 12:05:18 +02:00
ShyRed
5dc50327cf Escape quote char for non-Windows OS
Quote char appears to be ignored by ProcessStartInfo on non-Windows operating systems, so it needs to be escaped.
2019-05-29 19:13:16 +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 from aaronfranke/basis-optimize
Optimize Basis constructor for Axis Angle
2019-05-27 17:42:43 +02:00
Ignacio Roldán Etcheverry
df17cf06d4
Merge pull request from aaronfranke/mono-tan-xy-yx
[Mono] Change Atan2 arguments to (y, x)
2019-05-26 17:15:29 +02:00
Aaron Franke
19786f77ef
[Mono] Change Atan2 arguments to Y X 2019-05-26 03:15:56 -04:00
ShyRed
60e711a115 Add Godot constants to Mono project builds
This adds constants to projects build via Godot Mono which allows project to conditionally react to different operating systems and 32/64 Bit architecture. Additionally .NET libraries could support multiple engines like Unity and Godot at the same time when compiled from Godot and reacting to definitions.
2019-05-26 08:07:55 +02:00
Ignacio Roldán Etcheverry
0d8f1ba6a9
Merge pull request from aaronfranke/mono-tuple
[Mono] Misc Basis and AABB improvements
2019-05-26 01:46:07 +02:00
Ignacio Etcheverry
04ebf294f3 C#: Implement ScriptInstance::to_string
Create a blacklist of methods that must not be generated. Includes: "to_string", "_to_string" and "_init".
2019-05-24 00:40:20 +02:00
Aaron Franke
7b6473fec5
[Mono] Misc Basis and AABB improvements 2019-05-22 15:23:51 -04:00
Ignacio Roldán Etcheverry
e2375f487c
Merge pull request from neikeq/oopsie
Fix C# build error in MarshalUtils debug code
2019-05-21 19:54:34 +02:00
Ignacio Roldán Etcheverry
9c45432309
Merge pull request from neikeq/fixes-28667------i-think
Replace call to 'mono_runtime_object_init' with manual ctor invoking
2019-05-21 19:15:32 +02:00
Ignacio Etcheverry
9b76c56098 Fix C# build error in MarshalUtils debug code 2019-05-21 19:09:00 +02:00
Ignacio Etcheverry
66b930a266 Replace call to 'mono_runtime_object_init' with manual ctor invoking 2019-05-21 00:06:04 +02: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
Ignacio Etcheverry
5a4bf4f369 C#: Marshalling support for IEnumerable<> and IDictionary<,>
Also fixed the hint string of exported members.
2019-05-18 19:39:56 +02:00
Aaron Franke
9ff708f008
Optimize Basis constructor for Axis Angle 2019-05-17 05:11:12 -04:00
ShyRed
77ab9ba252 Fix generation of Mono Glue for Visual Studio 2017+
vsnprintf definition should only be changed when MSC version is older than 2013. The version check and fix is taken from StringUtils.h of assimp.
2019-05-05 12:39:02 +02:00
marxin
cdf54d6c5f Ignore a warning in _get_socket_error (-Wlogical-op).
drivers/unix/net_socket_posix.cpp: In member function 'NetSocketPosix::NetError NetSocketPosix::_get_socket_error()':
drivers/unix/net_socket_posix.cpp:197:22: warning: logical 'or' of equal expressions [-Wlogical-op]
  197 |  if (errno == EAGAIN || errno == EWOULDBLOCK)
      |                      ^

and:

modules/mono/utils/string_utils.cpp: In function 'int {anonymous}::sfind(const String&, int)':
modules/mono/utils/string_utils.cpp:68:48: error: logical 'or' of collectively exhaustive tests is always true [-Werror=logical-op]
      found = src[read_pos] == 's' || (c >= '0' || c <= '4');
                                       ~~~~~~~~~^~~~~~~~~~~
2019-05-02 11:11:52 +02:00
Rémi Verschelde
8afc9c3938
Merge pull request from aaronfranke/decimal-functions
Make "decimal" functions more consistent
2019-05-01 08:16:10 +02:00
Rémi Verschelde
7ff0979747
Merge pull request from neikeq/issue-28540
Fix missing argument for vsnprintf_s
2019-05-01 07:18:31 +02:00
Ignacio Etcheverry
4eedb97802 Fix missing argument for vsnprintf_s 2019-04-30 23:15:25 +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 from akien-mga/scons-prepend-cpppath
SCons: Always use env.Prepend for CPPPATH
2019-04-30 18:23:38 +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
Ignacio Etcheverry
470b80cc55 C#: Support resource type hint in exported arrays
- Elements of types like PackedScene will display with the special editor for such type.
2019-04-29 21:20:05 +02:00
Rémi Verschelde
554c0ea90b
Merge pull request 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
18e88c8563
Merge pull request from aaronfranke/mono-equal-approx
[Core] [Mono] Improve and use approximate equality methods
2019-04-29 10:16:46 +02:00
Ignacio Etcheverry
3380565e4b C#: Generate the correct integer and floating point types 2019-04-27 01:30:46 +02:00
Ignacio Etcheverry
791e1294c3 Mono: Lazily load scripts metadata file
- Only load the scripts metadata file when it's really needed. This way we avoid false errors, when there is no C# project,  about missing scripts metadata file.
2019-04-26 19:53:44 +02:00
Ignacio Etcheverry
340252727b C#: Mark generated property accessor methods as Obsolete
- Methods that act as accessors for properties in the same class (like `GetPosition` and `SetPosition` are for `Position`) are now marked as obsolete. They will be made private in the future.
2019-04-25 20:34:35 +02:00
Ignacio Etcheverry
c20a3823a2 C# bindings generator cleanup
- Normal log messages are no longer warnings.
- BindingsGenerator is no longer a singleton.
- Added a log function.
2019-04-25 20:34:28 +02:00
Aaron Franke
c577ec6ae4
[Mono] Approximate equality 2019-04-25 13:20:29 -04:00
Ignacio Etcheverry
d93c354807 Fix invalid mono log file name on Windows 2019-04-24 18:52:03 +02:00
Rémi Verschelde
3610b4fd77
Merge pull request from neikeq/welp
Use StringBuilder in C# bindings generator
2019-04-22 11:52:30 +02:00
Ignacio Roldán Etcheverry
7be498499b
Merge pull request from ForLoveOfCats/master
Mono: Convert all items to string before printing
2019-04-20 04:12:22 +02:00
ForLoveOfCats
25f563c4c8 Mono: Convert all items to string before printing 2019-04-19 12:59:22 -04:00
Rémi Verschelde
b29df348e2
Merge pull request from akien-mga/doc-unused-demos
doc: Drop unused <demos> tag, sync classref
2019-04-19 12:50:42 +02:00
Rémi Verschelde
6af69f851a doc: Drop unused <demos> tag 2019-04-19 11:03:46 +02: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
Ignacio Roldán Etcheverry
392f1491e1
Merge pull request from neikeq/exception-hook-no-abort
Mono: Use exit(status) instead of abort() in exception hook
2019-04-18 16:26:54 +02:00
Ignacio Etcheverry
8759c0e31a Mono: Use exit(status) instead of abort() in exception hook 2019-04-18 15:01:50 +02:00
Ignacio Etcheverry
2b9557c920 C#: Add missing ToString() override methods
Godot.Object, Array, Dictionary and RID were missing ToString() override methods
2019-04-18 14:48:13 +02:00
Ignacio Etcheverry
20e5e2fec7 Mono: Logging improvements
- The default log level in debug builds is now 'info' instead of 'debug'.
- Add option to specify a different log level with the 'GODOT_MONO_LOG_LEVEL' environment variable.
- The name of log files is now a readable date and time.
- Always print the log file path (previously it was printed only it in verbose mode).
2019-04-17 23:03:32 +02:00
lupoDharkael
145a45fd3f Fix code completion not working with class_name 2019-04-16 22:27:13 +02:00
Ignacio Roldán Etcheverry
b7cf4c2050
Merge pull request from Nonnu42/contrib
Fixes  allowing C# to override _GetPropertyList
2019-04-12 16:43:27 +02:00
Nuno Cardoso
d011c8e109 Fixes allowing C# to override _GetPropertyList 2019-04-12 03:09:03 +01: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
Ignacio Roldán Etcheverry
9ab17b664d
Merge pull request from neikeq/github-pls
Workaround for syntax highlighting issue in GitHub
2019-04-08 22:13:13 +02:00
Ignacio Etcheverry
7a4cf6339d Workaround for syntax highlighting issue in GitHub 2019-04-08 14:52:01 +02:00
Rémi Verschelde
6a2b8a263e
Merge pull request from neikeq/mono-build-cleanup
Mono: Add CPPPATH only to env_mono and cleanup build scripts
2019-04-08 12:50:51 +02:00
Rémi Verschelde
918de768a5
Merge pull request 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
7f3373d79f
Merge pull request 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
d211aff777
Merge pull request from Chaosus/smoothstep
Added smoothstep built-in function
2019-04-08 10:03:42 +02:00
Ignacio Etcheverry
2873206aa6 Mono: Add compiler flags to env_mono instead of env
This way we avoid possible conflicts with other modules. Specially with include paths.
2019-04-07 19:03:13 +02:00
Ignacio Etcheverry
6bb29eb847 Mono: Reorganize build scripts
All build scripts, other than config.py and SCSub, are now located in the build_scripts subdirectory.
2019-04-07 19:03:09 +02:00
Chaosus
514a3fb96a Added smoothstep built-in function 2019-04-07 14:11:26 +03:00
Hendrikto
49a81308c0 Remove unused imports 2019-04-06 18:05:05 +02:00
Ignacio Etcheverry
2f3328a039 Fix wrong method binds and registered class 2019-04-06 16:12:59 +02:00
Ignacio Etcheverry
480d4c6fba C#: Support type hints for exported Arrays
Added the code for Dictionary as well, but it's not yet supported by the Godot inspector.
2019-04-06 12:14:43 +02:00
Ignacio Etcheverry
187e6ae26d C#: Add marshalling support for IEnumerable and IDictionary
Added constructor that takes IEnumerable for Array and IEnumerable<T> for Array<T>.
Added constructor that takes IDictionary for Dictionary and IDictionary<TKey, TValue> for Dictionary<TKey, TValue>.
2019-04-06 12:14:37 +02:00
Ignacio Etcheverry
92b02cb027 C#: Some important Array and Dictionary interface changes
Array now implements IList instead of IList<object, object>.
Dictionary now implements IDictionary instead of IDictionary<object, object>.
2019-04-06 11:00:40 +02:00
Ignacio Etcheverry
e82b2def8e Mono: Buildsystem support for finding MSBuild from VS2019 2019-04-06 01:32:41 +02:00
Ignacio Etcheverry
ad2127a3e8 Replace a few #if/#elif with #ifdef and "#elif defined" 2019-04-05 23:41:51 +02:00
Rémi Verschelde
a61ad365f5
Merge pull request from akien-mga/Wimplicit-fallthrough
Fix -Wimplicit-fallthrough warnings from GCC 8
2019-04-05 16:12:45 +02:00
Chaosus
55f3bd97a2 Added direction_to method to vectors 2019-04-05 17:09:57 +03:00
Rémi Verschelde
63d3a42f82
Merge pull request from neikeq/road-to-lang-agnostic-docs-is-going-to-be-tough
EditorHelp: Improve enum ref resolving and add constant ref support
2019-04-05 15:19:21 +02:00
Rémi Verschelde
fc370b3feb Fix -Wimplicit-fallthrough warnings from GCC 8
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.

The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.

Fixes .
2019-04-05 15:14:53 +02:00
ForLoveOfCats
444242a080 Mono: Make missing default constructor error more foolproof 2019-04-04 16:56:02 -04:00
ForLoveOfCats
46e79e6fad Mono: Makes GD.Convert take Variant.Type instead of int 2019-04-04 16:07:48 -04:00
Ignacio Etcheverry
0338e55a6e Fix memory leak introduced in bb6814a 2019-04-02 22:56:17 +02:00
Rémi Verschelde
e3bd84fa57
Merge pull request from Faless/io/encode_decode_safety_pr
Safer encode/decode variant.
2019-04-01 17:00:40 +02:00
Fabio Alessandrelli
393e62b98a Add object encoding param to serialization methods
Network peers get_var/put_var
File get_var/store_var
GDScript/Mono/VisualScript bytes2var/var2bytes
Add MultiplayerAPI.allow_object_decoding member which deprecates PacketPeer.allow_object_decoding.

Break ABI compatibaility (API compatibility for GDNative).
2019-04-01 15:53:19 +02:00
Rémi Verschelde
39c868171e doc: Bump version to 3.2 2019-04-01 12:33:56 +02:00
Ignacio Etcheverry
c8aa85189a EditorHelp, makerst: Improve enum ref resolving and constant ref support
Enum reference resolving will now search in the @GlobalScope if no class is specified and the enum cannot be resolved in the current class.
Added support for constant references in EditorHelp, e.g.: [constant KEY_ENTER] or [constant Control.FOCUS_CLICK]. It supports enum constants (the enum name must not be included).
2019-03-29 23:40:31 +01:00
Ignacio Etcheverry
bb6814aef0 C#: Add DynamicGodotObject class
Expands to Object.call, Object.set and Object.get for accessing members. This means it can also access members from scripts written in other languages, like GDScript.
2019-03-29 00:53:48 +01:00
Ignacio Roldán Etcheverry
e453934824
Merge pull request from neikeq/who-reads-docs-anyway
C#: Bindings generator now translates BBCode docs to XML comments
2019-03-23 20:49:59 +01:00
Ignacio Etcheverry
1ad16b3d4a C#: Bindings generator now translates BBCode docs to XML comments 2019-03-23 20:39:55 +01:00
Ignacio Roldán Etcheverry
96abb695f2
Merge pull request from shartte/fix-generics-parsing
Fix parsing of generic type declarations in C# source files
2019-03-20 18:34:28 +01:00
Sebastian Hartte
7440295ad1 Add support for new MSBuild directory naming introduced in VS 2019. 2019-03-20 17:57:20 +01:00
Sebastian Hartte
34366bc27f Fix parsing of generic type declarations in C# source files. 2019-03-20 17:23:11 +01:00
Rémi Verschelde
3b5a0f34d4
Merge pull request from neikeq/csharp-update-exports-only-in-editor
C#: Update exports only in the editor
2019-03-13 20:07:06 +01:00
Ignacio Etcheverry
5e354162f1 C#: Update exports only in the editor 2019-03-13 16:26:47 +01:00
Rémi Verschelde
4326fd5a7e Mono: Update welcome message with current state 2019-03-12 19:35:02 +01:00
Ignacio Etcheverry
e9e7aab8eb Mono: Some assembly referencing changes and cleanup
Apparently we don't need to call mono_debug_close_image ourselves and we can call mono_image_close right away as it's not our duty to keep that reference.
2019-03-10 18:55:31 +01:00
Ignacio Etcheverry
4299332ecc Mono: Fix assemblies path String incorrectly constructed from utf8
Also fixed a wrong ifdef that was causing Mono to never be initialized if mscorlib was not found (which was the case with the utf8 assemblies path bug this commit fixes).
This condition was meant for exported projects only, not for the editor only.
2019-03-09 23:00:03 +01:00
Ignacio Roldán Etcheverry
65487ed4ed
Merge pull request from shartte/godot-trace-listener
Add a custom TraceListener on Startup for Mono
2019-03-08 07:05:41 +01:00
Ignacio Etcheverry
a4825c2f8b Fix CSharpInstance::set not working with base classes 2019-03-08 00:12:19 +01:00
Rémi Verschelde
6ee3002237
Merge pull request from neikeq/issue-26628
Mono: Fix crash with exported field of custom Reference derived type
2019-03-07 22:54:03 +01:00
Ignacio Etcheverry
c5f8b0960a Mono: Fix crash with exported field of custom Reference derived type 2019-03-07 22:38:31 +01:00
Ignacio Etcheverry
17a55861f1
Merge pull request from neikeq/issue-26675
Mono: Partially implement some Godot debug api functions
2019-03-07 22:00:59 +01:00
Ignacio Etcheverry
47407ba2df
Merge pull request from Chaosus/fix_mono_wrap
Fix division by zero at wrap functions in mono
2019-03-07 21:34:03 +01:00
Ignacio Etcheverry
8e2e0795bb Mono: Partially implement some Godot debug api functions
Debug breaks sent with debug_break and debug_break_parse should display correctly in the Godot debugger now.
2019-03-07 21:02:57 +01:00
Sebastian Hartte
37d448fca7 Added a Godot TraceListener, which is automatically installed on startup. Fixes that Debug/Trace Assertions are simply swallowed by Godot. 2019-03-07 21:00:19 +01:00
Chaosus
752055ccba Fix division by zero at wrap functions in mono 2019-03-07 22:57:12 +03:00
Ignacio Etcheverry
4c0b0a6bdd
Merge pull request from neikeq/issue-25959
Mono: Fix crash when re-using script binding after domain reloading
2019-03-07 20:50:37 +01:00
Ignacio Etcheverry
e904f814c8 Mono: Fix crash when re-using script binding after domain reloading 2019-03-07 19:55:40 +01:00
Sebastian Hartte
f8a6a6c8a2 Update scripts exports even when normal script instances are created to better support tool scripts with exported variables. 2019-03-07 18:52:43 +01:00
Rémi Verschelde
64923ff277
Merge pull request from neikeq/print-msbuild-command
Print MSBuild command if also printing output
2019-03-06 18:22:57 +01:00
Ignacio Etcheverry
0b68677112 Print MSBuild command if also printing output 2019-03-06 17:10:14 +01:00
Ignacio Etcheverry
db7928849b
Merge pull request from neikeq/issue-26681
Mono: Make 'Build' button generate solution if it doesn't exist
2019-03-06 16:54:51 +01:00
Ignacio Etcheverry
c97db904a0 Mono: Make 'Build' button generate solution if it doesn't exist 2019-03-06 16:36:53 +01:00
Ignacio Etcheverry
6492de800f
Merge pull request from neikeq/issue-17601
Mono: Fix array field being assigned MonoArray** instead of MonoArray*
2019-03-05 23:03:25 +01:00
Ignacio Etcheverry
c6ac7333a6 Mono: Fix array field being assigned MonoArray** instead of MonoArray*
Fixes 
2019-03-05 21:46:55 +01:00
Rémi Verschelde
0a7de5472f
Merge pull request from neikeq/oi
Mono: Add option to print MSBuild output and improve out of sync error
2019-03-04 18:36:10 +01:00
Ignacio Etcheverry
8877b07f4c Mono: Add option to print MSBuild output and improve out of sync error 2019-03-04 16:05:08 +01:00
Carter Anderson
839ed2d092 Add mono log profiler support 2019-03-02 23:32:03 -08:00
Ignacio Etcheverry
42c57eef13 C#: Fix parsing of class full name when the base has generics
Also we no longer ignore base classes with generics, since we don't really care about that.
2019-03-01 00:23:23 +01:00
Ignacio Etcheverry
22b41ab2fe Mono: Fail on script instance creation if constructor was not found
Previously this would result in NULL dereferencing. Now we fail with an error.
2019-02-28 23:22:46 +01:00
Ignacio Etcheverry
5a4475fce3 Mono: Make sure the generated RootNamespace is a valid identifier 2019-02-28 22:26:15 +01:00
Ignacio Etcheverry
b69569415f
Merge pull request from neikeq/issue-26195
C#: Add Array.Resize(int) method
2019-02-28 18:53:14 +01:00
Ignacio Etcheverry
32cd8ba9bd C#: Add Array.Resize(int) method 2019-02-28 18:33:42 +01:00
Rémi Verschelde
372152220b
Merge pull request from marxin/fix-Wsuggest-attribute=format
Fix -Wsuggest-attribute=format warnings.
2019-02-27 09:23:26 +01:00
Rémi Verschelde
426a6fdc17
Merge pull request from marxin/fix-Wsign-compare
Fix -Wsign-compare warnings.
2019-02-27 09:22:47 +01:00
marxin
e5f665c718 Fix -Wsign-compare warnings.
I decided to modify code in a defensive way. Ideally functions
like size() or length() should return an unsigned type.
2019-02-27 07:45:57 +01:00
marxin
aff84ec55d Fix -Wsuggest-attribute=format warnings. 2019-02-27 06:56:50 +01:00
Ignacio Etcheverry
3e0846e65b Mono: Some editor usability improvements
- Move "Mono" popup menu from the top right corner to `Projects -> Tools` as a submenu.
- Add "Build solution" button to the top right corner. Makes it more visible and quicker to access.
- Fix build list in the bottom panel unselect an item when clicking on empty space. Previously it would hide the issues panel but the item would remain selected, making it impossible to display the issues panel again if there was only one item.
2019-02-27 02:45:21 +01:00
Ignacio Etcheverry
823fb59e10 Remove problematic VS Code hint path on Windows 2019-02-27 02:43:53 +01:00
Ignacio Etcheverry
da3776a40a C#: Fix Vector2.AngleToPoint
Fixes 
2019-02-23 23:28:31 +01:00
Rémi Verschelde
07fbc34195
Merge pull request from neikeq/csharp-basis
C#: Basis fixes and cleanup
2019-02-23 20:53:03 +01:00
Ignacio Etcheverry
2c26e7f174 C#: Basis fixes and cleanup
Fix Basis operator[int]. Now it returns columns instead of rows.
Fix Transform2D.AfficeInverse() mutating rather than returning a new Transform2D.
2019-02-23 18:22:30 +01:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes .
2019-02-20 19:44:12 +01:00
Ignacio Etcheverry
9421da57ad C#: Add 'Singleton' property to singleton wrapper class
This property returns an instance of the singleton.
The purpose of this is to allow using methods from the base class like 'Connect'.
Since all Godot singletons inherit Object, the type of the returned instance is Godot.Object.
2019-02-19 22:38:22 +01:00
Ignacio Etcheverry
aa5b99821b
Merge pull request from neikeq/csharp-fix-gd-range
C#: Make GD.Range return IEnumerable instead of array
2019-02-19 19:27:37 +01:00
Ignacio Etcheverry
0826b79035 C#: Make GD.Range return IEnumerable instead of array
- Make NodePath and RID sealed classes.
- Renamed rand_range to RandRange.
2019-02-19 18:46:18 +01:00
Ignacio Etcheverry
1174d10e3c
Merge pull request from neikeq/issue-25818
Fix Godot.Reference marshalling from MonoObject* to Variant
2019-02-19 15:05:05 +01:00
Ignacio Etcheverry
29fd942dd6
Merge pull request from neikeq/throw_objectdisposedexception
C#: Throw ObjectDisposedException from disposed wrapper classes
2019-02-19 01:02:20 +01:00
Ignacio Etcheverry
e1f01bf2ac
Merge pull request from neikeq/csharp_rand_funcs
C#: Add random functions to GD class
2019-02-19 00:52:01 +01:00
Ignacio Etcheverry
efd5d4bcf9 C#: Throw ObjectDisposedException from disposed wrapper classes 2019-02-19 00:37:15 +01:00
Ignacio Etcheverry
ce67808818 C#: Add random functions to GD class 2019-02-19 00:35:19 +01:00
RomanAkberov
041a7bbeba C#: fix Quat.Equals. 2019-02-19 01:01:05 +07:00
Ignacio Etcheverry
a8dfe9ff7f Don't print 'Cannot find Mono in the registry' if bundled with Godot
Closes 
2019-02-15 19:52:32 +01:00
Ignacio Etcheverry
d17ba9a140 Mono: Fix export template build errors
Fixes 
2019-02-15 19:52:22 +01:00
Ignacio Etcheverry
b41a793592 Fix Godot.Reference marshalling from MonoObject* to Variant
Need to cast Ref<T> to Variant instead of constructing Variant from Object*, otherwise the Variant won't hold a reference.
2019-02-14 22:54:15 +01:00
Rémi Verschelde
55ca2a7c88
Merge pull request from akien-mga/sync-class-and-filenames
Ensure classes match their header filename
2019-02-13 08:49:39 +01:00
Aaron Franke
f97eb6d881 [Mono] Fix Transform2D rotation and scale 2019-02-12 17:59:29 -05:00
Rémi Verschelde
fe7e11e008 Modules: Ensure classes match their header filename
Renamed:
- `modules/mono/mono_gd/gd_mono_class_member.h` -> `i_mono_class_member.h`
- `modules/upnp/upnpdevice.h` -> `upnp_device.h`
- `modules/websocket/websocket_multiplayer.h` -> `websocket_multiplayer_peer.h`
2019-02-12 22:59:56 +01:00
Rémi Verschelde
c4835c4345
Merge pull request from neikeq/ww
Use script instance binding for objects constructed from C#
2019-02-12 15:29:25 +01:00
Rémi Verschelde
b7cc2bb1e2 Core: Ensure classes match their header filename
Also drop some unused files.

Renamed:
- `core/dvector.h` -> `pool_vector.h`
- `core/io/resource_import.h` -> `resource_importer.h`
- `core/sort.h` -> `sort_array.h`
- `core/string_db.h` -> `string_name.h`

Dropped:
- `core/allocators.h`
- `core/os/shell.h`
- `core/variant_construct_string.cpp`
2019-02-12 13:34:25 +01:00
Carter Anderson
22bf89e970 Use "origin" instead of "o" in Transform2D.Rotation 2019-02-11 23:46:55 -08:00
Ignacio Etcheverry
be98a6ebbc
Merge pull request from aaronfranke/mono-transform
[Mono] Fix Transform2D origin
2019-02-11 22:27:49 +01:00
Ignacio Etcheverry
9115c6ab15
Merge pull request from neikeq/yy
Windows: Default to system MSBuild and add VSCode hint path
2019-02-11 22:25:11 +01:00
Ignacio Etcheverry
da00c338a3 Add VSCode hint path for Windows 2019-02-11 22:03:51 +01:00
Ignacio Etcheverry
9a08b90472 Default to MSBuild from VS Build Tools instead of Mono's
Don't pass FrameworkPathOverride to MSBuild. It's causing issues with some nuget packages.
2019-02-11 22:03:37 +01:00
Ignacio Etcheverry
eda4be193f
Merge pull request from neikeq/xx
Do not initialize Mono if 'res://.mono/' and mscorlib are missing
2019-02-10 19:08:28 +01:00
Ignacio Etcheverry
3afd9deded
Merge pull request from neikeq/fix-noreturn-attr-check
Fix check to determine if [[noreturn]] attribute is usable
2019-02-10 19:08:15 +01:00
Ignacio Etcheverry
b67955afca Fix check to determine if [[noreturn]] attribute is usable 2019-02-10 18:45:18 +01:00
Ignacio Etcheverry
7f596270f3 Fix exporting assemblies from wrong output path
This is the whole reason 'fill_search_dirs' was added for, yet somehow I forgot to pass the config parameter.
2019-02-10 18:37:42 +01:00
Ignacio Etcheverry
24a2ae7f3c Do not initialize Mono if 'res://.mono/' and mscorlib are missing
This is needed to avoid aborting due to missing mscorlib for projects that do not use C#.
If 'res://.mono/' exists, then we assume the project uses C#, in which case a missing mscorlib should still abort.
2019-02-10 18:34:37 +01:00
Aaron Franke
25a90bcf1a [Mono] Fix Transform2D origin 2019-02-09 14:56:14 -05:00
Ignacio Etcheverry
9df44c2d2c Use script instance binding for objects constructed from C#
Only possible if the object class is a "native type". If the object class is a user class (that derives a "native type") then a script is needed.
Since CSharpLanguage does cleanup of script instance bindings when finished, cases like  will no longer cause problems.

Fixed ~Object() trying to free script instance bindings after the language has already been removed, which would result in a NULL dereference.
2019-02-09 00:32:18 +01:00
Ignacio Etcheverry
5f8c30fbca Mono: Create player script metadata when building manually
Previously this was only done when building the script for running the game. This was a problem because the user could want to build the project manually with the "Build project" button, to then run the game from the command line or similar.
2019-02-08 22:49:27 +01:00
Ignacio Etcheverry
4aa4916b11 Mono: Workaround to fix 'flushing' errors when building at editor startup 2019-02-05 18:51:24 +01:00
Ignacio Etcheverry
919fa75803
Merge pull request from neikeq/ss
Mono: Lifetime fixes for CSharpInstance and instance binding data
2019-02-03 07:36:33 +01:00
Ignacio Etcheverry
d8593747e0 Mono: Fix default debugger agent argument never being used 2019-02-03 06:51:07 +01:00
Ignacio Etcheverry
3233083f63 Mono: Lifetime fixes for CSharpInstance and instance binding data
Avoid CSharpInstance from accessing its state after self destructing (by deleting the Reference owner).
It's now safe to replace the script instance without leaking or crashing.

Also fixed godot_icall_Object_weakref return reference being freed before returning.
2019-02-03 06:47:25 +01:00
Ignacio Etcheverry
4e4e889c75
Merge pull request from neikeq/rr
Mono: Fix MonoPosixHelper not being found
2019-02-03 06:31:52 +01:00
Ignacio Etcheverry
065828d159 Mono: Fix MonoPosixHelper not being found 2019-02-03 05:38:47 +01:00
Ignacio Etcheverry
d3c51a5dfb Mono: Cleanup 2019-02-03 05:38:40 +01:00
Rémi Verschelde
57c0082533 Mono: Test Windows binaries with lowercase extension
To help users writing good cross-platform code, Godot's
`FileAccessWindows:open()` will issue a warning on case mismatch, which
happens here with capitalized extensions given by `PATHEXT` compared to
actual file extensions which are lowercase 99% of the time.

Fixes .
2019-01-27 11:54:32 +01:00
Ignacio Etcheverry
bc8b61bb06 Mono: Fix hot reload build errors and cleanup 2019-01-22 18:33:36 +01:00
Ignacio Etcheverry
077e489773 Mono: Add assembly reloading to running games
Add environment variable to specify a custom --debugger-agent for mono.
2019-01-21 22:44:09 +01:00
Ignacio Etcheverry
0ac5be8368 Fix C# script metadata creation error due to missing directory 2019-01-21 00:57:03 +01:00
Ignacio Etcheverry
ca8100f29f Workaround for bug with Mono's MSBuild and BaseIntermediateOutputPath
BaseIntermediateOutputPath seems to be empty by default. The workaround is to explicitly set it.

Also fixed passing char instead of char[] to String.Split. Why was this even working with Mono?
2019-01-21 00:38:28 +01:00
Ignacio Etcheverry
ce36351065
Merge pull request from neikeq/mm-c
C# Bindings Generator: Fix vararg methods with custom return type
2019-01-18 01:30:43 +01:00
Ignacio Etcheverry
e8a1d4babd
Merge pull request from neikeq/mm-b
C#: Fix trying to build when there's no solution
2019-01-18 01:23:15 +01:00