Commit Graph

205 Commits

Author SHA1 Message Date
Ignacio Etcheverry 89e84185e8 Mono: Fix crash on script load if the scripts domain isn't loaded 2018-04-24 20:46:53 +02:00
Andreas Haas 700d07cf7c
Mono: Avoid invalid class names.
Disallow reserved keywords as class names and prefix base class with the Godot
namespace if it's the same as the class name.

Fixes #12483
2018-03-15 19:25:06 +01:00
Ignacio Etcheverry f37090ccf4 Mono: Better versioning and gracefully unloading of Godot API assemblies 2018-02-25 20:56:27 +01:00
Rémi Verschelde 08584b7e22
Merge pull request #16804 from Valentactive/fix_mono_template_compiling
fix template builds with mono
2018-02-25 10:11:10 +01:00
Michele Valente 3c7d9001bc fix release builds with mono
"_signals" and "signals_invalidated" were moved out of the
"TOOLS_ENABLED" directive. Updated also the two "update_signals" and
"_update_signals" methods so it makes sense.
2018-02-22 21:23:47 +01:00
Ignacio Etcheverry 9fd606c549 Mono: Add project export plugin 2018-02-22 13:39:41 +01:00
Paul Joannon cfbd7fd21e
implement signal related methods in csharp_script so signals can be used with emit 2018-02-17 19:37:02 +01:00
Paul Joannon efd52cd172
add a [Signal] attribute to CSharpScripts 2018-02-17 19:29:26 +01:00
Rémi Verschelde c460e38bf3
Merge pull request #16205 from neikeq/issue-15053
Mono: Remove automatic script multilevel calls
2018-02-01 14:51:12 +01:00
Nathan Warden 3dcf0567a1 Added async and await as C# keywords. 2018-01-30 21:18:48 -05:00
Ignacio Etcheverry 84437b4864 Mono: Remove automatic script multilevel calls 2018-01-30 18:53:00 +01:00
Ignacio Etcheverry 0c3bbcaa00 Mono: Fix build errors with tools=no and target=release 2018-01-27 18:44:04 +01:00
Ignacio Etcheverry e1ae7dffd3
Merge pull request #16016 from neikeq/issue-13316
Fix CSharpInstance::call not initializing CallError
2018-01-24 01:35:10 +01:00
Ignacio Etcheverry 8c33939ce6 Fix CSharpInstance::call not initializing CallError 2018-01-24 01:31:51 +01:00
Paul Joannon 1de5f7e70b
fix marshalling when a function is returning an object from c# 2018-01-18 10:31:36 +01:00
Ignacio Etcheverry bff9627dc4 Mono: Some StackTrace to StackInfo[] fixes
- Sometimes `StackFrame.GetMethod()` returns null (e.g.: latest frame of a `MissingMethodException`). Still not sure what to do with that frame (maybe skip it), but at least it no longer fails.
- Skip `CSharpLanguage::debug_get_current_stack_info()` if an error is printed from `GDMonoUtils::update_corlib_cache()`.
- Fix crash when calling `GDMonoUtils::print_unhandled_exception(exc)` if there is no ScriptDebugger attached.
2018-01-12 19:31:15 +01:00
Bojidar Marinov 9b8e8b2220
Bind many more properties to scripts
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
2018-01-12 00:58:14 +02:00
Ignacio Etcheverry f7de51b3a6 Mono: Some fixes for #15463 2018-01-09 22:27:55 +01:00
Ignacio Etcheverry 5be356b72f Mono: Implement stack info for errors and exceptions 2018-01-09 17:19:03 +01:00
Rémi Verschelde e4213e66b2 Add missing copyright headers and fix formatting
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Ignacio Etcheverry 119a910bc6 Mono: Add properties support in scripts 2018-01-04 21:16:22 +01:00
Rémi Verschelde b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Ignacio Etcheverry fe391393d4 Mono: Change BindingsGenerator singleton to avoid StringName leaks 2018-01-01 03:05:19 +01:00
Ignacio Etcheverry b271aa48e4 Mono: Script lifetime fixes
- alloc_language_binding: Use strong GC handle as well for references. Fixes #15138
- Set the native instance field of Godot.Object to IntPtr.Zero when it's freed.
- Create weak handles without tracking resurrection (that was causing trouble). This means we have to call notification predelete before queueing a native Object for deletion, and use the MonoObject* passed by the finalizer because the weak GC handle target will return NULL at this point.
2018-01-01 03:05:13 +01:00
Ignacio Etcheverry 0a0a44da8d Mono: Make the bindings generator output enums
- Switch to PascalCase for constants names
2017-12-24 04:20:41 +01:00
Rémi Verschelde 13c2ff9320 Style: Apply new clang-format 5.0 style to all files 2017-12-07 08:02:00 +01:00
Nathan Warden 0c22447ebe Exported variables now show in the correct order. 2017-12-02 21:01:58 -05:00
Ferenc Arn d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Ignacio Etcheverry 3c97a9543d
Merge pull request #12549 from neikeq/seriously-do-they
Mono cleanup fixes
2017-11-01 01:56:16 +01:00
Ignacio Etcheverry 06ea441564 Make sure gchandle bindings are released before cleanup 2017-11-01 01:48:47 +01:00
Andreas Haas f3218c24c7
Mono: support custom script templates.
Also fixes a bug that prevented methods like `duplicate()` from copying the source code. (Copied from GDScript implementation)
2017-10-31 15:46:30 +01:00
Ignacio Etcheverry 27b7fb8e66 Mono: Add build project button and reload interval 2017-10-29 05:57:38 +01:00
Unknown a2247d45fc Mono: Use "UnnamedProject" if application/config/name is empty 2017-10-27 21:22:54 +02:00
Rémi Verschelde d135008acf Merge pull request #12405 from Jerome67000/clean_getnodetype
Removes Script::get_node_type()

[ci skip]
2017-10-26 08:49:38 +02:00
Przmk 2ae23c9f97 Fix default C# script 2017-10-25 22:43:06 +02:00
Jerome67000 2609cc9ef4 Removes Script::get_node_type()
used before GDScript, with squirrel apparently
2017-10-25 20:11:30 +02:00
Rémi Verschelde 847c55bcb1 Merge pull request #12365 from neikeq/p
Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
2017-10-24 18:59:26 +02:00
Ignacio Etcheverry e218a13a64 Add ScriptLanguage::supports_builtin_mode and improve ScriptCreateDialog
- Make ScriptCreateDialog disable the built-in script checked button if the language does not support it.
- ScriptLanguage's get_template and make_template now receive the script path as class name if the the script language does not have named classes.
2017-10-24 15:48:58 +02:00
mhilbrunner ba779c1c0c Add _process(delta) to new script templates. Closes #11994. 2017-10-22 21:07:34 +02:00
Ignacio Etcheverry b1d106adb6 Mono: Fix warning about exported static fields 2017-10-18 08:34:17 +02:00
Ignacio Etcheverry fb63ee52fb Mono: Fix build with tools=no or target=release 2017-10-18 08:27:18 +02:00
Ignacio Etcheverry 6e6b455d1f Export attribute fixes and improvements
- Allow non-public fields to be exported as well (to avoid confusion).
- Set PROPERTY_HINT_RESOURCE_TYPE for resource derived fields.
- Support enums and automatically fill PROPERTY_HINT_ENUM's hint_string for enum fields.
2017-10-17 14:42:13 +02:00
Rémi Verschelde 8de1dc7e9a Merge pull request #12138 from neikeq/i
Avoid adding built-in script path to csproj
2017-10-16 10:19:16 +02:00
Ignacio Etcheverry 967335b969 Avoid adding built-in script path to csproj 2017-10-16 04:26:13 +02:00
Ignacio Etcheverry 8ed3247a63 Improve signature of signal target generated function 2017-10-16 04:19:36 +02:00
Ignacio Etcheverry 1a9efb417a Merge pull request #12135 from neikeq/g
Re-write SignalAwaiter implementation
2017-10-16 03:58:51 +02:00
Ignacio Etcheverry 63369ec306 Re-write SignalAwaiter implementation
Old implementation had issues where you could only await on the same signal of the same source once.
2017-10-16 03:54:23 +02:00
Ignacio Etcheverry 740ef3dc97 Merge pull request #11954 from neikeq/d
Added 'exposed' field to ClassInfo for registered classes
2017-10-11 13:54:34 +02:00
Ignacio Etcheverry 9b6f65af82 Mono: Make use of ClassInfo's exposed API
- BindingsGenerator only generates exposed classes.
- Fix creation of managed instances of non-exposed classes.
2017-10-09 23:50:06 +02:00
Ignacio Etcheverry ff28569d16 Fixed IntPtr unboxing (#11949)
- Fix boolean never reset to false
- Fix IntPtr unboxing and cleanup
2017-10-09 00:10:54 +02:00
Ignacio Etcheverry 85cc879382 Merge pull request #11894 from neikeq/pr-issue-11834
Mono: Make sure editor thread is attached on script reload
2017-10-07 00:47:13 +02:00
Ignacio Etcheverry fdc3de009c Mono: Make sure editor thread is attached on script reload 2017-10-07 00:43:02 +02:00
Carter Anderson 19df296351 get parent class fields when updating a CSharpScript's exports
This makes the fields viewable / editable in the inspector
2017-10-05 23:50:48 -07:00
Ignacio Etcheverry df22bbd7ed Add C# script to csproj when attaching it to an object 2017-10-05 00:10:51 +02:00
Ignacio Etcheverry e36fb95c50 Added mono module 2017-10-03 00:01:26 +02:00