Giter Site home page Giter Site logo

godotsharp's People

Contributors

27thliz avatar nathanwarden avatar neikeq avatar terahlunah avatar valentactive avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godotsharp's Issues

C# scripts not running

I'm probably missing something obvious but when I attach a C# script to a node and run the project, it doesn't look like the script is actually being run. I tried adding GD.print statements in _Ready and tried calling Rotate on a root Spatial etc but so far I haven't see any effect.

TextureImage or Image not created properly?

When creating an Image and ImageTexture dynamically through code, the example project only works in GDScript and not C#.

I could be wrong, but I think the real issue might be that the texture doesn't actually get created internally via whatever the "ImageTexture.new()" or "Image.new()" do in GDScript. I've also tried using the "Call" method on each item instead of calling it directly. IE. I've used "dynImage.Call("create",256,256,false,Image.FORMAT_RGB8);" instead of "dynImage.Create(256,256,false,Image.FORMAT_RGB8);" If done in GDScript they work as expected. I'm not sure if they work properly in C# though as, again, I'm not sure the image or texture are created properly via the equivalent "new()" function from GDScript.

What should happen in this example is that there should be two red textures created, one in GDScript and the other in C#. Only the GDScript one works, however.

TextureBug.zip

I'll add more below if I find out more.

More comprehensive build instructions

It would be nice to be able to build and provide feedback to this module (I've been waiting for C# for quite a while and am excited to help out!). The issue is the build instructions are a bit unclear as to what version of Godot this will work with, where projects should go, paths, etc...

Could we get a more comprehensive set of build instructions (hopefully targeting windows as its the most common game dev platform at the moment)? I'd be happy to answer any requirement questions you may have.

Thanks,
Rob

The behaviour of Vector3.rotated() is different in C# than in GDScript

C# code:

var test = new Vector3(100, 100, 100);
GD.print("CSharp: " + test.rotated(new Vector3(0, 1, 0), Mathf.deg2rad(60)));

GDScript code:

var test = Vector3(100,100,100)
print("GD: %s" % test.rotated(Vector3(0,1,0), deg2rad(60)))

Result:

GD: (136.602539, 100, -36.602551)
CSharp: (-36.60255, 100, 136.6025)

Vector2.rotated inconsistent behavior

The rotated method in C# is behaving differently from the rotated method in GDScript.

new Vector2(0, 1).rotated(Mathf.PI / 2) -> (0, -1)

Rotating 90 degrees is behaving as a 180 degree rotation.

Error when building Godot.

[Initial build] Compiling ==> modules\mono\build_config.cpp
build_config.cpp
[Initial build] Compiling ==> modules\mono\csharp_script.cpp
csharp_script.cpp
[Initial build] Compiling ==> modules\mono\il_opcode_parser.cpp
il_opcode_parser.cpp
modules\mono\il_opcode_parser.cpp(51): error C2131: expression did not evaluate to a constant
modules\mono\il_opcode_parser.cpp(51): note: failure was caused by a read of a variable outside its lifetime
modules\mono\il_opcode_parser.cpp(51): note: see usage of 'p_locals'
modules\mono\il_opcode_parser.cpp(62): error C2131: expression did not evaluate to a constant
modules\mono\il_opcode_parser.cpp(62): note: failure was caused by a read of a variable outside its lifetime
modules\mono\il_opcode_parser.cpp(62): note: see usage of 'max_size'
scons: *** [modules\mono\il_opcode_parser.windows.tools.64.obj] Error 2
scons: building terminated because of errors.

Not sure what I did wrong. I'm using the latest source from both godot and godotsharp.

Make C# methods callable via Object.call too

It's possible to call methods in other scripting langauges with the Object API. But it's not possible to do that with a C# script.

Example: I'm writing a level loading system, I want the game to be moddable so GDScript should be supported -> Object.call(). I can't use the same interface to use levels scripted in C# though.

Error Compiling gd_mono_class.cpp, varible-sized object may not be initialized

[ 15%] Compiling ==> modules/mono/mono_wrapper/gd_mono_class.cpp
modules/mono/mono_wrapper/gd_mono_class.cpp:351:33: error: 
      variable-sized object may not be initialized
  ...GDMonoMethod *deleted_methods[methods.size()] = { NULL };
                                   ^~~~~~~~~~~~~~
1 error generated.
scons: *** [modules/mono/mono_wrapper/gd_mono_class.x11.tools.64.llvm.o] Error 1
scons: building terminated because of errors.

Non-C# projects can't be run

The editor complains about not having a C# solution when you try to run a game which doesn't contain any C# code.

Use 3.0 naming.

It would be nice to have Godot 3.0 method names here, so C# scripts will be compatibile between 2.2 and 3.0.

Make solution name a static name instead of it being the project name

@neikeq What do you think about the primary project name being something like GodotProject.sln for every game?

This way if the user changes the name of their project they don't have to change the name of their solution. It will always look for GodotProject.sln no matter what.

I can see many people running into the issue where their game suddenly stops working and they don't realize it has to do with them changing their project name.

Thanks... just a thought :)

Node Instance Issue

I'm trying to instance a node I created. The node 'BaseBall' is a within it's own scene and has a sprite.

On a new scene I'm trying to instance a ball (I'll want to have a few of these balls all over the place eventually).

public override void _Ready()
{
    GD.print("Setup New Node");
    // var myNode = GetNode("res://BaseBall") as BaseBall;
    // var myNode = GetNode("/root/BaseBall") as BaseBall;
    // var myNode = GetNode("res://root/BaseBall") as BaseBall;
    var myNode = GetNode("BaseBall") as BaseBall;
    if(myNode == null) 
    {
        GD.print("Node is NULL!");
    } 
}

I always get node as NULL.

As you can see from comments I've tried a few different versions.

How to debug

Is it currently possible to debug the C# code? I assume we need to make a plugin for Visual Studio like Unity did, because it can't debug Mono apps out of the box as far as I'm aware. I tried using Visual Studio, MonoDevelop and Rider, all with no luck, but maybe I just don't know how to set things up properly. Did someone have any luck getting debugging to work in any IDE?

Thanks for making this by the way!

ironpython support

i've tried using IronPython, but seems like engine fails to execute the class.

so i've added a script to a node with class name 'Test'.
then i've created a python file with same class inside
i've also referenced the api assembly too
then i've compiled that file into dll assembly

i assumed that engine will pick the right code by class name in assembly, but nothing happens when i run the game.. i've even created a c# solution (because you've wrote that engine searches for it).

in terminal there is written that api assembly and my project's assembly, have no entry point. that's the same output as in working c# test project, so i think that engine loads my assembly, but gets no code executed from it.

what can i do to make IronPython work with godot?

Transform, Basis, Quat changes

There's been compatibility breaking changes/fixed in these classes in Godot, so corresponding C# code will also need to be updated.

Properly support namespaces.

C# does not have a class-file relation, so the script file and its class must share the same name to allow us locate the class. The problem comes when dealing with scripts whose classes are placed in namespaces. Right now, we iterate through all the classes in an assembly and pick the first one that matches the script name. This means one cannot have more than one script with the same name in a project, no matter what namespace its class belongs to.

In order to properly support namespaces, we must either find a way to detect the script namespace or make its class have a knowledge of its path.

Editor Crash on second run (F5/F6)

Each initial time I run Godot using F5 or F6 the run is successful. The second time I hit F5 or F6 it crashes.

Steps to reproduce:

  1. Open Godot with GodotSharp (of course)
  2. Create a scene and attach a C# script to an object.
  3. Run the scene with F5 or F6
  4. Runs fine
  5. Hit F8 to quit the process
  6. Run the scene again with F5 or F6
  7. Crashes the process and the entire editor

On some very rare occasions it will run the second time, but this is very rare... maybe 1/20 times.

Thanks! :)


Stack Trace from Terminal

Stacktrace:

/proc/self/maps:
40627000-40637000 rwxp 00000000 00:00 0 
4091e000-40920000 r-xs 00000000 00:2b 19159                              /tmp/.glPOfwzv (deleted)
409c2000-409d2000 rwxp 00000000 00:00 0 
41625000-416c5000 rw-p 00000000 00:00 0 
416c5000-416d5000 rwxp 00000000 00:00 0 
41b0f000-41b7f000 rwxp 00000000 00:00 0 
55744dae5000-557450e3d000 r-xp 00000000 00:2f 2858393                    /home/nathan/data/home_data/Projects/OpenSource/godot_mono/bin/godot.x11.tools.64
55745103d000-5574510cb000 r--p 03358000 00:2f 2858393                    /home/nathan/data/home_data/Projects/OpenSource/godot_mono/bin/godot.x11.tools.64
5574510cb000-5574510ef000 rw-p 033e6000 00:2f 2858393                    /home/nathan/data/home_data/Projects/OpenSource/godot_mono/bin/godot.x11.tools.64
5574510ef000-557451103000 rw-p 00000000 00:00 0 
55745131e000-55745e773000 rw-p 00000000 00:00 0                          [heap]
7f2bd8000000-7f2bd8021000 rw-p 00000000 00:00 0 
7f2bd8021000-7f2bdc000000 ---p 00000000 00:00 0 
7f2bdddda000-7f2be8000000 rw-p 00000000 00:00 0 
7f2be8000000-7f2be803e000 rw-p 00000000 00:00 0 
7f2be803e000-7f2bec000000 ---p 00000000 00:00 0 
7f2bec000000-7f2bec021000 rw-p 00000000 00:00 0 
7f2bec021000-7f2bf0000000 ---p 00000000 00:00 0 
7f2bf054c000-7f2bf094c000 rw-s 3695ab000 00:06 598                       /dev/nvidiactl
7f2bf094c000-7f2bf0d4c000 rw-s 2039cd000 00:06 598                       /dev/nvidiactl
7f2bf0d4c000-7f2bf114c000 rw-s 203c4f000 00:06 598                       /dev/nvidiactl
7f2bf114c000-7f2bf374f000 rw-p 00000000 00:00 0 
7f2bf374f000-7f2bf3b4f000 rw-s 1ff25c000 00:06 598                       /dev/nvidiactl
7f2bf4000000-7f2bf402b000 rw-p 00000000 00:00 0 
7f2bf402b000-7f2bf8000000 ---p 00000000 00:00 0 
7f2bf8728000-7f2bfbdfe000 rw-p 00000000 00:00 0 
7f2bfbdfe000-7f2bfbdff000 ---p 00000000 00:00 0 
7f2bfbdff000-7f2c00000000 rw-p 00000000 00:00 0 
7f2c00000000-7f2c00021000 rw-p 00000000 00:00 0 
7f2c00021000-7f2c04000000 ---p 00000000 00:00 0 
7f2c0407c000-7f2c0417c000 rw-s 53a2c5000 00:06 598                       /dev/nvidiactl
7f2c0417c000-7f2c0417d000 ---p 00000000 00:00 0 
7f2c0417d000-7f2c041bd000 rw-p 00000000 00:00 0 
7f2c041bd000-7f2c041be000 ---p 00000000 00:00 0 
7f2c041be000-7f2c041fe000 rw-p 00000000 00:00 0 
7f2c041fe000-7f2c04207000 ---p 00000000 00:00 0 
7f2c04207000-7f2c053ff000 rw-p 00000000 00:00 0 
7f2c053ff000-7f2c05400000 ---p 00000000 00:00 0 
7f2c05400000-7f2c06000000 rw-p 00000000 00:00 0 
7f2c06016000-7f2c06017000 ---p 00000000 00:00 0 
7f2c06017000-7f2c06057000 rw-p 00000000 00:00 0 
7f2c06057000-7f2c06058000 ---p 00000000 00:00 0 
7f2c06058000-7f2c06098000 rw-p 00000000 00:00 0 
7f2c060a0000-7f2c060a4000 rw-p 00000000 00:00 0 
7f2c060b4000-7f2c060c8000 rw-p 00000000 00:00 0 
7f2c060d8000-7f2c060e8000 rw-p 00000000 00:00 0 
7f2c060f8000-7f2c06118000 rw-p 00000000 00:00 0 
7f2c06119000-7f2c0631a000 rw-p 00000000 00:00 0 
7f2c0631a000-7f2c0651a000 rw-s 203bd7000 00:06 598                       /dev/nvidiactl
7f2c0651a000-7f2c0671a000 rw-s 53a2ee000 00:06 598                       /dev/nvidiactl
7f2c06749000-7f2c08000000 rw-p 00000000 00:00 0 
7f2c08000000-7f2c0c000000 rw-s 00000000 00:05 810744                     /memfd:pulseaudio (deleted)
7f2c0c000000-7f2c10000000 rw-s 00000000 00:05 19499                      /memfd:pulseaudio (deleted)
7f2c10000000-7f2c14000000 rw-s 00000000 00:05 814546                     /memfd:pulseaudio (deleted)
7f2c14000000-7f2c14021000 rw-p 00000000 00:00 0 
7f2c14021000-7f2c18000000 ---p 00000000 00:00 0 
7f2c1802b000-7f2c1802c000 rw-p 00000000 00:00 0 
7f2c1802c000-7f2c1808b000 ---p 00000000 00:00 0 
7f2c1808b000-7f2c1808c000 ---p 00000000 00:00 0 
7f2c1808c000-7f2c18b4f000 rw-p 00000000 00:00 0 
7f2c18b4f000-7f2c18b50000 ---p 00000000 00:00 0 
7f2c18b50000-7f2c18b90000 rw-p 00000000 00:00 0 
7f2c18b90000-7f2c18b91000 ---p 00000000 00:00 0 
7f2c18b91000-7f2c19391000 rw-p 00000000 00:00 0 
7f2c19391000-7f2c1d391000 rw-s 00000000 00:05 814546                     /memfd:pulseaudio (deleted)
7f2c1d391000-7f2c1d392000 ---p 00000000 00:00 0 
7f2c1d392000-7f2c1d4eb000 rw-p 00000000 00:00 0 
7f2c1d4eb000-7f2c1d56b000 rw-s 2038dd000 00:06 598                       /dev/nvidiactl
7f2c1d5eb000-7f2c1d66b000 rw-s 24c640000 00:06 598                       /dev/nvidiactl
7f2c1d758000-7f2c1d760000 rw-p 00000000 00:00 0 
7f2c1d76b000-7f2c1d78b000 rw-s c0d20000 00:06 599                        /dev/nvidia0
7f2c1d78b000-7f2c1d7cb000 rw-s 203d3a000 00:06 598                       /dev/nvidiactl
7f2c1d7cb000-7f2c1d80b000 rw-s 297581000 00:06 598                       /dev/nvidiactl
7f2c1d80b000-7f2c1d90f000 rw-s 82a50f000 00:06 598                       /dev/nvidiactl
7f2c1d90f000-7f2c1f0e5000 r-xp 00000000 00:14 1084509                    /usr/lib/libnvidia-glcore.so.375.82
7f2c1f0e5000-7f2c1f2e5000 ---p 017d6000 00:14 1084509                    /usr/lib/libnvidia-glcore.so.375.82
7f2c1f2e5000-7f2c1f6cc000 rw-p 017d6000 00:14 1084509                    /usr/lib/libnvidia-glcore.so.375.82
7f2c1f6cc000-7f2c1f6e4000 rw-p 00000000 00:00 0 
7f2c1f6e4000-7f2c1f6e7000 r-xp 00000000 00:14 1084524                    /usr/lib/tls/libnvidia-tls.so.375.82
7f2c1f6e7000-7f2c1f8e7000 ---p 00003000 00:14 1084524                    /usr/lib/tls/libnvidia-tls.so.375.82
7f2c1f8e7000-7f2c1f8e8000 rw-p 00003000 00:14 1084524                    /usr/lib/tls/libnvidia-tls.so.375.82
7f2c1f8e8000-7f2c1f9f9000 r-xp 00000000 00:14 1084492                    /usr/lib/libGLX_nvidia.so.375.82
7f2c1f9f9000-7f2c1fbf8000 ---p 00111000 00:14 1084492                    /usr/lib/libGLX_nvidia.so.375.82
7f2c1fbf8000-7f2c1fc20000 rw-p 00110000 00:14 1084492                    /usr/lib/libGLX_nvidia.so.375.82
7f2c1fc20000-7f2c1fc27000 rw-p 00000000 00:00 0 
7f2c1fc27000-7f2c1fc9b000 rw-p 00000000 00:00 0 
7f2c1fcb5000-7f2c1fcd5000 rw-s 204812000 00:06 598                       /dev/nvidiactl
7f2c1fcd5000-7f2c1fcf5000 rw-s 2004a1000 00:06 598                       /dev/nvidiactl
7f2c1fcf5000-7f2c1fd35000 rw-s 1ff67b000 00:06 598                       /dev/nvidiactl
7f2c1fd3f000-7f2c1fd43000 rw-p 00000000 00:00 0 
7f2c1fd44000-7f2c1fd46000 rw-p 00000000 00:00 0 
7f2c1fd47000-7f2c1fd55000 rw-p 00000000 00:00 0 
7f2c1fd55000-7f2c1fd75000 rw-s 00000000 00:14 2239193                    /home/nathan/#2239193 (deleted)
7f2c1fd75000-7f2c1fe76000 rw-p 00000000 00:00 0 
7f2c1fe76000-7f2c1fe77000 ---p 00000000 00:00 0 
7f2c1fe77000-7f2c20138000 rw-p 00000000 00:00 0 
7f2c20138000-7f2c2014c000 r-xp 00000000 00:14 7047                       /usr/lib/libgpg-error.so.0.22.0
7f2c2014c000-7f2c2034b000 ---p 00014000 00:14 7047                       /usr/lib/libgpg-error.so.0.22.0
7f2c2034b000-7f2c2034c000 r--p 00013000 00:14 7047                       /usr/lib/libgpg-error.so.0.22.0
7f2c2034c000-7f2c2034d000 rw-p 00014000 00:14 7047                       /usr/lib/libgpg-error.so.0.22.0
7f2c2034d000-7f2c20360000 r-xp 00000000 00:14 633455                     /usr/lib/libresolv-2.25.so
7f2c20360000-7f2c2055f000 ---p 00013000 00:14 633455                     /usr/lib/libresolv-2.25.so
7f2c2055f000-7f2c20560000 r--p 00012000 00:14 633455                     /usr/lib/libresolv-2.25.so
7f2c20560000-7f2c20561000 rw-p 00013000 00:14 633455                     /usr/lib/libresolv-2.25.so
7f2c20561000-7f2c20563000 rw-p 00000000 00:00 0 
7f2c20563000-7f2c205f4000 r-xp 00000000 00:14 70092                      /usr/lib/libvorbisenc.so.2.0.11
7f2c205f4000-7f2c207f3000 ---p 00091000 00:14 70092                      /usr/lib/libvorbisenc.so.2.0.11
7f2c207f3000-7f2c20815000 r--p 00090000 00:14 70092                      /usr/lib/libvorbisenc.so.2.0.11
7f2c20815000-7f2c20816000 rw-p 000b2000 00:14 70092                      /usr/lib/libvorbisenc.so.2.0.11
7f2c20816000-7f2c20841000 r-xp 00000000 00:14 70091                      /usr/lib/libvorbis.so.0.4.8
7f2c20841000-7f2c20a41000 ---p 0002b000 00:14 70091                      /usr/lib/libvorbis.so.0.4.8
7f2c20a41000-7f2c20a42000 r--p 0002b000 00:14 70091                      /usr/lib/libvorbis.so.0.4.8
7f2c20a42000-7f2c20a43000 rw-p 0002c000 00:14 70091                      /usr/lib/libvorbis.so.0.4.8
7f2c20a43000-7f2c20a49000 r-xp 00000000 00:14 69893                      /usr/lib/libogg.so.0.8.2
7f2c20a49000-7f2c20c48000 ---p 00006000 00:14 69893                      /usr/lib/libogg.so.0.8.2
7f2c20c48000-7f2c20c49000 r--p 00005000 00:14 69893                      /usr/lib/libogg.so.0.8.2
7f2c20c49000-7f2c20c4a000 rw-p 00006000 00:14 69893                      /usr/lib/libogg.so.0.8.2
7f2c20c4a000-7f2c20cc0000 r-xp 00000000 00:14 69336                      /usr/lib/libFLAC.so.8.3.0
7f2c20cc0000-7f2c20ec0000 ---p 00076000 00:14 69336                      /usr/lib/libFLAC.so.8.3.0
7f2c20ec0000-7f2c20ec1000 r--p 00076000 00:14 69336                      /usr/lib/libFLAC.so.8.3.0
7f2c20ec1000-7f2c20ec2000 rw-p 00077000 00:14 69336                      /usr/lib/libFLAC.so.8.3.0
7f2c20ec2000-7f2c20ed6000 r-xp 00000000 00:14 1720721                    /usr/lib/liblz4.so.1.8.0
7f2c20ed6000-7f2c210d5000 ---p 00014000 00:14 1720721                    /usr/lib/liblz4.so.1.8.0
7f2c210d5000-7f2c210d6000 r--p 00013000 00:14 1720721                    /usr/lib/liblz4.so.1.8.0
7f2c210d6000-7f2c210d7000 rw-p 00014000 00:14 1720721                    /usr/lib/liblz4.so.1.8.0
7f2c210d7000-7f2c210fc000 r-xp 00000000 00:14 7091                       /usr/lib/liblzma.so.5.2.3
7f2c210fc000-7f2c212fb000 ---p 00025000 00:14 7091                       /usr/lib/liblzma.so.5.2.3
7f2c212fb000-7f2c212fc000 r--p 00024000 00:14 7091                       /usr/lib/liblzma.so.5.2.3
7f2c212fc000-7f2c212fd000 rw-p 00025000 00:14 7091                       /usr/lib/liblzma.so.5.2.3
7f2c212fd000-7f2c21412000 r-xp 00000000 00:14 1928070                    /usr/lib/libgcrypt.so.20.2.1
7f2c21412000-7f2c21611000 ---p 00115000 00:14 1928070                    /usr/lib/libgcrypt.so.20.2.1
7f2c21611000-7f2c21613000 r--p 00114000 00:14 1928070                    /usr/lib/libgcrypt.so.20.2.1
7f2c21613000-7f2c21618000 rw-p 00116000 00:14 1928070                    /usr/lib/libgcrypt.so.20.2.1
7f2c21618000-7f2c21619000 rw-p 00000000 00:00 0 
7f2c21619000-7f2c2168a000 r-xp 00000000 00:14 638215                     /usr/lib/libpcre.so.1.2.9
7f2c2168a000-7f2c2188a000 ---p 00071000 00:14 638215                     /usr/lib/libpcre.so.1.2.9
7f2c2188a000-7f2c2188b000 r--p 00071000 00:14 638215                     /usr/lib/libpcre.so.1.2.9
7f2c2188b000-7f2c2188c000 rw-p 00072000 00:14 638215                     /usr/lib/libpcre.so.1.2.9
7f2c2188c000-7f2c21891000 r-xp 00000000 00:14 69492                      /usr/lib/libasyncns.so.0.3.1
7f2c21891000-7f2c21a90000 ---p 00005000 00:14 69492                      /usr/lib/libasyncns.so.0.3.1
7f2c21a90000-7f2c21a91000 r--p 00004000 00:14 69492                      /usr/lib/libasyncns.so.0.3.1
7f2c21a91000-7f2c21a92000 rw-p 00005000 00:14 69492                      /usr/lib/libasyncns.so.0.3.1
7f2c21a92000-7f2c21b05000 r-xp 00000000 00:14 248673                     /usr/lib/libsndfile.so.1.0.28
7f2c21b05000-7f2c21d04000 ---p 00073000 00:14 248673                     /usr/lib/libsndfile.so.1.0.28
7f2c21d04000-7f2c21d07000 r--p 00072000 00:14 248673                     /usr/lib/libsndfile.so.1.0.28
7f2c21d07000-7f2c21d08000 rw-p 00075000 00:14 248673                     /usr/lib/libsndfile.so.1.0.28
7f2c21d08000-7f2c21d0a000 rw-p 00000000 00:00 0 
7f2c21d0a000-7f2c21d8d000 r-xp 00000000 00:14 1656258                    /usr/lib/libsystemd.so.0.19.0
7f2c21d8d000-7f2c21f8c000 ---p 00083000 00:14 1656258                    /usr/lib/libsystemd.so.0.19.0
7f2c21f8c000-7f2c21f8f000 r--p 00082000 00:14 1656258                    /usr/lib/libsystemd.so.0.19.0
7f2c21f8f000-7f2c21f90000 rw-p 00085000 00:14 1656258                    /usr/lib/libsystemd.so.0.19.0
7f2c21f90000-7f2c21f91000 rw-p 00000000 00:00 0 
7f2c21f91000-7f2c21fbb000 r-xp 00000000 00:14 241673                     /usr/lib/libgraphite2.so.3.0.1
7f2c21fbb000-7f2c221ba000 ---p 0002a000 00:14 241673                     /usr/lib/libgraphite2.so.3.0.1
7f2c221ba000-7f2c221bc000 r--p 00029000 00:14 241673                     /usr/lib/libgraphite2.so.3.0.1
7f2c221bc000-7f2c221bd000 rw-p 0002b000 00:14 241673                     /usr/lib/libgraphite2.so.3.0.1
7f2c221bd000-7f2c222ce000 r-xp 00000000 00:14 639093                     /usr/lib/libglib-2.0.so.0.5200.3
7f2c222ce000-7f2c224cd000 ---p 00111000 00:14 639093                     /usr/lib/libglib-2.0.so.0.5200.3
7f2c224cd000-7f2c224ce000 r--p 00110000 00:14 639093                     /usr/lib/libglib-2.0.so.0.5200.3
7f2c224ce000-7f2c224cf000 rw-p 00111000 00:14 639093                     /usr/lib/libglib-2.0.so.0.5200.3
7f2c224cf000-7f2c224d0000 rw-p 00000000 00:00 0 
7f2c224d0000-7f2c224d5000 r-xp 00000000 00:14 6942                       /usr/lib/libXdmcp.so.6.0.0
7f2c224d5000-7f2c226d4000 ---p 00005000 00:14 6942                       /usr/lib/libXdmcp.so.6.0.0
7f2c226d4000-7f2c226d5000 r--p 00004000 00:14 6942                       /usr/lib/libXdmcp.so.6.0.0
7f2c226d5000-7f2c226d6000 rw-p 00005000 00:14 6942                       /usr/lib/libXdmcp.so.6.0.0
7f2c226d6000-7f2c226d8000 r-xp 00000000 00:14 6940                       /usr/lib/libXau.so.6.0.0
7f2c226d8000-7f2c228d8000 ---p 00002000 00:14 6940                       /usr/lib/libXau.so.6.0.0
7f2c228d8000-7f2c228d9000 r--p 00002000 00:14 6940                       /usr/lib/libXau.so.6.0.0
7f2c228d9000-7f2c228da000 rw-p 00003000 00:14 6940                       /usr/lib/libXau.so.6.0.0
7f2c228da000-7f2c2291c000 r-xp 00000000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c2291c000-7f2c22935000 r-xp 00042000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c22935000-7f2c22948000 r-xp 0005b000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c22948000-7f2c22b47000 ---p 0006e000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c22b47000-7f2c22b6f000 r--p 0006d000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c22b6f000-7f2c22b70000 rw-p 00095000 00:14 6932                       /usr/lib/libGLdispatch.so.0.0.0
7f2c22b70000-7f2c22b90000 rw-p 00000000 00:00 0 
7f2c22b90000-7f2c22ba0000 r-xp 00000000 00:14 6930                       /usr/lib/libGLX.so.0.0.0
7f2c22ba0000-7f2c22da0000 ---p 00010000 00:14 6930                       /usr/lib/libGLX.so.0.0.0
7f2c22da0000-7f2c22da1000 r--p 00010000 00:14 6930                       /usr/lib/libGLX.so.0.0.0
7f2c22da1000-7f2c22da2000 rw-p 00011000 00:14 6930                       /usr/lib/libGLX.so.0.0.0
7f2c22da2000-7f2c22dc2000 rw-p 00000000 00:00 0 
7f2c22dc2000-7f2c22e0f000 r-xp 00000000 00:14 1313796                    /usr/lib/libdbus-1.so.3.14.13
7f2c22e0f000-7f2c2300e000 ---p 0004d000 00:14 1313796                    /usr/lib/libdbus-1.so.3.14.13
7f2c2300e000-7f2c23010000 r--p 0004c000 00:14 1313796                    /usr/lib/libdbus-1.so.3.14.13
7f2c23010000-7f2c23011000 rw-p 0004e000 00:14 1313796                    /usr/lib/libdbus-1.so.3.14.13
7f2c23011000-7f2c23092000 r-xp 00000000 00:14 2114266                    /usr/lib/pulseaudio/libpulsecommon-11.0.so
7f2c23092000-7f2c23292000 ---p 00081000 00:14 2114266                    /usr/lib/pulseaudio/libpulsecommon-11.0.so
7f2c23292000-7f2c23294000 r--p 00081000 00:14 2114266                    /usr/lib/pulseaudio/libpulsecommon-11.0.so
7f2c23294000-7f2c23295000 rw-p 00083000 00:14 2114266                    /usr/lib/pulseaudio/libpulsecommon-11.0.so
7f2c23295000-7f2c2332c000 r-xp 00000000 00:14 1927957                    /usr/lib/libharfbuzz.so.0.10500.0
7f2c2332c000-7f2c2352c000 ---p 00097000 00:14 1927957                    /usr/lib/libharfbuzz.so.0.10500.0
7f2c2352c000-7f2c2352e000 r--p 00097000 00:14 1927957                    /usr/lib/libharfbuzz.so.0.10500.0
7f2c2352e000-7f2c2352f000 rw-p 00099000 00:14 1927957                    /usr/lib/libharfbuzz.so.0.10500.0
7f2c2352f000-7f2c2353e000 r-xp 00000000 00:14 6962                       /usr/lib/libbz2.so.1.0.6
7f2c2353e000-7f2c2373d000 ---p 0000f000 00:14 6962                       /usr/lib/libbz2.so.1.0.6
7f2c2373d000-7f2c2373e000 r--p 0000e000 00:14 6962                       /usr/lib/libbz2.so.1.0.6
7f2c2373e000-7f2c2373f000 rw-p 0000f000 00:14 6962                       /usr/lib/libbz2.so.1.0.6
7f2c2373f000-7f2c23750000 r-xp 00000000 00:14 6943                       /usr/lib/libXext.so.6.4.0
7f2c23750000-7f2c2394f000 ---p 00011000 00:14 6943                       /usr/lib/libXext.so.6.4.0
7f2c2394f000-7f2c23950000 r--p 00010000 00:14 6943                       /usr/lib/libXext.so.6.4.0
7f2c23950000-7f2c23951000 rw-p 00011000 00:14 6943                       /usr/lib/libXext.so.6.4.0
7f2c23951000-7f2c23956000 r-xp 00000000 00:14 6944                       /usr/lib/libXfixes.so.3.1.0
7f2c23956000-7f2c23b55000 ---p 00005000 00:14 6944                       /usr/lib/libXfixes.so.3.1.0
7f2c23b55000-7f2c23b56000 r--p 00004000 00:14 6944                       /usr/lib/libXfixes.so.3.1.0
7f2c23b56000-7f2c23b57000 rw-p 00005000 00:14 6944                       /usr/lib/libXfixes.so.3.1.0
7f2c23b57000-7f2c23b60000 r-xp 00000000 00:14 69475                      /usr/lib/libXrender.so.1.3.0
7f2c23b60000-7f2c23d60000 ---p 00009000 00:14 69475                      /usr/lib/libXrender.so.1.3.0
7f2c23d60000-7f2c23d61000 r--p 00009000 00:14 69475                      /usr/lib/libXrender.so.1.3.0
7f2c23d61000-7f2c23d62000 rw-p 0000a000 00:14 69475                      /usr/lib/libXrender.so.1.3.0
7f2c23d62000-7f2c23d8a000 r-xp 00000000 00:14 7249                       /usr/lib/libxcb.so.1.1.0
7f2c23d8a000-7f2c23f89000 ---p 00028000 00:14 7249                       /usr/lib/libxcb.so.1.1.0
7f2c23f89000-7f2c23f8a000 r--p 00027000 00:14 7249                       /usr/lib/libxcb.so.1.1.0
7f2c23f8a000-7f2c23f8b000 rw-p 00028000 00:14 7249                       /usr/lib/libxcb.so.1.1.0
7f2c23f8b000-7f2c24128000 r-xp 00000000 00:14 633454                     /usr/lib/libc-2.25.so
7f2c24128000-7f2c24327000 ---p 0019d000 00:14 633454                     /usr/lib/libc-2.25.so
7f2c24327000-7f2c2432b000 r--p 0019c000 00:14 633454                     /usr/lib/libc-2.25.so
7f2c2432b000-7f2c2432d000 rw-p 001a0000 00:14 633454                     /usr/lib/libc-2.25.so
7f2c2432d000-7f2c24331000 rw-p 00000000 00:00 0 
7f2c24331000-7f2c24347000 r-xp 00000000 00:14 634888                     /usr/lib/libgcc_s.so.1
7f2c24347000-7f2c24546000 ---p 00016000 00:14 634888                     /usr/lib/libgcc_s.so.1
7f2c24546000-7f2c24547000 r--p 00015000 00:14 634888                     /usr/lib/libgcc_s.so.1
7f2c24547000-7f2c24548000 rw-p 00016000 00:14 634888                     /usr/lib/libgcc_s.so.1
7f2c24548000-7f2c24659000 r-xp 00000000 00:14 633495                     /usr/lib/libm-2.25.so
7f2c24659000-7f2c24858000 ---p 00111000 00:14 633495                     /usr/lib/libm-2.25.so
7f2c24858000-7f2c24859000 r--p 00110000 00:14 633495                     /usr/lib/libm-2.25.so
7f2c24859000-7f2c2485a000 rw-p 00111000 00:14 633495                     /usr/lib/libm-2.25.so
7f2c2485a000-7f2c249d4000 r-xp 00000000 00:14 634865                     /usr/lib/libstdc++.so.6.0.24
7f2c249d4000-7f2c24bd3000 ---p 0017a000 00:14 634865                     /usr/lib/libstdc++.so.6.0.24
7f2c24bd3000-7f2c24bdd000 r--p 00179000 00:14 634865                     /usr/lib/libstdc++.so.6.0.24
7f2c24bdd000-7f2c24bdf000 rw-p 00183000 00:14 634865                     /usr/lib/libstdc++.so.6.0.24
7f2c24bdf000-7f2c24be2000 rw-p 00000000 00:00 0 
7f2c24be2000-7f2c24bfb000 r-xp 00000000 00:14 633426                     /usr/lib/libpthread-2.25.so
7f2c24bfb000-7f2c24dfa000 ---p 00019000 00:14 633426                     /usr/lib/libpthread-2.25.so
7f2c24dfa000-7f2c24dfb000 r--p 00018000 00:14 633426                     /usr/lib/libpthread-2.25.so
7f2c24dfb000-7f2c24dfc000 rw-p 00019000 00:14 633426                     /usr/lib/libpthread-2.25.so
7f2c24dfc000-7f2c24e00000 rw-p 00000000 00:00 0 
7f2c24e00000-7f2c24e03000 r-xp 00000000 00:14 633488                     /usr/lib/libdl-2.25.so
7f2c24e03000-7f2c25002000 ---p 00003000 00:14 633488                     /usr/lib/libdl-2.25.so
7f2c25002000-7f2c25003000 r--p 00002000 00:14 633488                     /usr/lib/libdl-2.25.so
7f2c25003000-7f2c25004000 rw-p 00003000 00:14 633488                     /usr/lib/libdl-2.25.so
7f2c25004000-7f2c2500b000 r-xp 00000000 00:14 633424                     /usr/lib/librt-2.25.so
7f2c2500b000-7f2c2520a000 ---p 00007000 00:14 633424                     /usr/lib/librt-2.25.so
7f2c2520a000-7f2c2520b000 r--p 00006000 00:14 633424                     /usr/lib/librt-2.25.so
7f2c2520b000-7f2c2520c000 rw-p 00007000 00:14 633424                     /usr/lib/librt-2.25.so
7f2c2520c000-7f2c255dc000 r-xp 00000000 00:14 763825                     /usr/lib/libmonosgen-2.0.so.1.0.0
7f2c255dc000-7f2c257db000 ---p 003d0000 00:14 763825                     /usr/lib/libmonosgen-2.0.so.1.0.0
7f2c257db000-7f2c257e2000 r--p 003cf000 00:14 763825                     /usr/lib/libmonosgen-2.0.so.1.0.0
7f2c257e2000-7f2c257e4000 rw-p 003d6000 00:14 763825                     /usr/lib/libmonosgen-2.0.so.1.0.0
7f2c257e4000-7f2c25818000 rw-p 00000000 00:00 0 
7f2c25818000-7f2c2585b000 r-xp 00000000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c2585b000-7f2c25874000 r-xp 00043000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c25874000-7f2c25888000 r-xp 0005c000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c25888000-7f2c25a87000 ---p 00070000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c25a87000-7f2c25aa1000 r--p 0006f000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c25aa1000-7f2c25aa2000 rw-p 00089000 00:14 6927                       /usr/lib/libGL.so.1.0.0
7f2c25aa2000-7f2c25aa3000 rw-p 00000000 00:00 0 
7f2c25aa3000-7f2c25ab9000 r-xp 00000000 00:14 634450                     /usr/lib/libz.so.1.2.11
7f2c25ab9000-7f2c25cb8000 ---p 00016000 00:14 634450                     /usr/lib/libz.so.1.2.11
7f2c25cb8000-7f2c25cb9000 r--p 00015000 00:14 634450                     /usr/lib/libz.so.1.2.11
7f2c25cb9000-7f2c25cba000 rw-p 00016000 00:14 634450                     /usr/lib/libz.so.1.2.11
7f2c25cba000-7f2c25d09000 r-xp 00000000 00:14 2114256                    /usr/lib/libpulse.so.0.20.2
7f2c25d09000-7f2c25f09000 ---p 0004f000 00:14 2114256                    /usr/lib/libpulse.so.0.20.2
7f2c25f09000-7f2c25f0b000 r--p 0004f000 00:14 2114256                    /usr/lib/libpulse.so.0.20.2
7f2c25f0b000-7f2c25f0c000 rw-p 00051000 00:14 2114256                    /usr/lib/libpulse.so.0.20.2
7f2c25f0c000-7f2c25f0f000 r-xp 00000000 00:14 2114257                    /usr/lib/libpulse-simple.so.0.1.1
7f2c25f0f000-7f2c2610f000 ---p 00003000 00:14 2114257                    /usr/lib/libpulse-simple.so.0.1.1
7f2c2610f000-7f2c26110000 r--p 00003000 00:14 2114257                    /usr/lib/libpulse-simple.so.0.1.1
7f2c26110000-7f2c26111000 rw-p 00004000 00:14 2114257                    /usr/lib/libpulse-simple.so.0.1.1
7f2c26111000-7f2c26218000 r-xp 00000000 00:14 248568                     /usr/lib/libasound.so.2.0.0
7f2c26218000-7f2c26418000 ---p 00107000 00:14 248568                     /usr/lib/libasound.so.2.0.0
7f2c26418000-7f2c2641f000 r--p 00107000 00:14 248568                     /usr/lib/libasound.so.2.0.0
7f2c2641f000-7f2c26421000 rw-p 0010e000 00:14 248568                     /usr/lib/libasound.so.2.0.0
7f2c26421000-7f2c26456000 r-xp 00000000 00:14 1927940                    /usr/lib/libpng16.so.16.32.0
7f2c26456000-7f2c26656000 ---p 00035000 00:14 1927940                    /usr/lib/libpng16.so.16.32.0
7f2c26656000-7f2c26657000 r--p 00035000 00:14 1927940                    /usr/lib/libpng16.so.16.32.0
7f2c26657000-7f2c26658000 rw-p 00036000 00:14 1927940                    /usr/lib/libpng16.so.16.32.0
7f2c26658000-7f2c26717000 r-xp 00000000 00:14 241396                     /usr/lib/libfreetype.so.6.14.0
7f2c26717000-7f2c26917000 ---p 000bf000 00:14 241396                     /usr/lib/libfreetype.so.6.14.0
7f2c26917000-7f2c2691e000 r--p 000bf000 00:14 241396                     /usr/lib/libfreetype.so.6.14.0
7f2c2691e000-7f2c2691f000 rw-p 000c6000 00:14 241396                     /usr/lib/libfreetype.so.6.14.0
7f2c2691f000-7f2c26929000 r-xp 00000000 00:14 69474                      /usr/lib/libXrandr.so.2.2.0
7f2c26929000-7f2c26b28000 ---p 0000a000 00:14 69474                      /usr/lib/libXrandr.so.2.2.0
7f2c26b28000-7f2c26b29000 r--p 00009000 00:14 69474                      /usr/lib/libXrandr.so.2.2.0
7f2c26b29000-7f2c26b2a000 rw-p 0000a000 00:14 69474                      /usr/lib/libXrandr.so.2.2.0
7f2c26b2a000-7f2c26b2c000 r-xp 00000000 00:14 69470                      /usr/lib/libXinerama.so.1.0.0
7f2c26b2c000-7f2c26d2b000 ---p 00002000 00:14 69470                      /usr/lib/libXinerama.so.1.0.0
7f2c26d2b000-7f2c26d2c000 r--p 00001000 00:14 69470                      /usr/lib/libXinerama.so.1.0.0
7f2c26d2c000-7f2c26d2d000 rw-p 00002000 00:14 69470                      /usr/lib/libXinerama.so.1.0.0
7f2c26d2d000-7f2c26d37000 r-xp 00000000 00:14 69465                      /usr/lib/libXcursor.so.1.0.2
7f2c26d37000-7f2c26f36000 ---p 0000a000 00:14 69465                      /usr/lib/libXcursor.so.1.0.2
7f2c26f36000-7f2c26f37000 r--p 00009000 00:14 69465                      /usr/lib/libXcursor.so.1.0.2
7f2c26f37000-7f2c26f38000 rw-p 0000a000 00:14 69465                      /usr/lib/libXcursor.so.1.0.2
7f2c26f38000-7f2c27071000 r-xp 00000000 00:14 6939                       /usr/lib/libX11.so.6.3.0
7f2c27071000-7f2c27271000 ---p 00139000 00:14 6939                       /usr/lib/libX11.so.6.3.0
7f2c27271000-7f2c27272000 r--p 00139000 00:14 6939                       /usr/lib/libX11.so.6.3.0
7f2c27272000-7f2c27277000 rw-p 0013a000 00:14 6939                       /usr/lib/libX11.so.6.3.0
7f2c27277000-7f2c2729a000 r-xp 00000000 00:14 633444                     /usr/lib/ld-2.25.so
7f2c2729a000-7f2c2729b000 rw-p 00000000 00:00 0 
7f2c2729c000-7f2c272af000 rw-s 6cd9d7000 00:06 598                       /dev/nvidiactl
7f2c272af000-7f2c27448000 r--p 00000000 00:14 634372                     /usr/lib/locale/locale-archive
7f2c27448000-7f2c27461000 rw-p 00000000 00:00 0 
7f2c27461000-7f2c27462000 rw-p 00000000 00:00 0 
7f2c27462000-7f2c27463000 rw-s 00000000 00:19 13                         /dev/shm/mono.8716
7f2c27463000-7f2c2746e000 rw-p 00000000 00:00 0 
7f2c2746e000-7f2c27470000 rw-s 00000000 00:2b 19159                      /tmp/.glPOfwzv (deleted)
7f2c27470000-7f2c27471000 rw-s 6cd9d6000 00:06 598                       /dev/nvidiactl
7f2c27471000-7f2c27475000 rw-s 6cd9d2000 00:06 598                       /dev/nvidiactl
7f2c27475000-7f2c27476000 rw-s cfde9000 00:06 599                        /dev/nvidia0
7f2c27476000-7f2c27477000 rw-s cfde9000 00:06 599                        /dev/nvidia0
7f2c27477000-7f2c27478000 rw-s cfde9000 00:06 599                        /dev/nvidia0
7f2c27478000-7f2c27479000 rw-s 399f44000 00:06 598                       /dev/nvidiactl
7f2c27479000-7f2c2747a000 rw-s de060000 00:06 599                        /dev/nvidia0
7f2c2747a000-7f2c2749a000 r-xs 00000000 00:14 2239193                    /home/nathan/#2239193 (deleted)
7f2c2749a000-7f2c2749b000 r--p 00023000 00:14 633444                     /usr/lib/ld-2.25.so
7f2c2749b000-7f2c2749c000 rw-p 00024000 00:14 633444                     /usr/lib/ld-2.25.so
7f2c2749c000-7f2c2749d000 rw-p 00000000 00:00 0 
7ffeaaad7000-7ffeaaadf000 ---p 00000000 00:00 0 
7ffeab2ad000-7ffeab2d6000 rw-p 00000000 00:00 0                          [stack]
7ffeab35f000-7ffeab361000 r--p 00000000 00:00 0                          [vvar]
7ffeab361000-7ffeab363000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Native stacktrace:

	/usr/lib/libmonosgen-2.0.so.1(+0xd3ed0) [0x7f2c252dfed0]
	/usr/lib/libmonosgen-2.0.so.1(+0x13db01) [0x7f2c25349b01]
	/usr/lib/libmonosgen-2.0.so.1(mono_type_get_array_type+0) [0x7f2c253d2170]

Debug info from gdb:

(lldb) command source -s 0 '/tmp/mono-gdb-commands.WzAqhn'
Executing commands in '/tmp/mono-gdb-commands.WzAqhn'.
(lldb) process attach --pid 8716
Process 8716 stopped
* thread #1, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf30d7 libpthread.so.0`__waitpid + 87
libpthread.so.0`__waitpid:
->  0x7f2c24bf30d7 <+87>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bf30dd <+93>: ja     0x7f2c24bf310a            ; <+138>
    0x7f2c24bf30df <+95>: movl   %r8d, %edi
    0x7f2c24bf30e2 <+98>: movl   %eax, (%rsp)
  thread #2, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
libpthread.so.0`do_futex_wait.constprop.1:
->  0x7f2c24bf1b06 <+54>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bf1b0c <+60>: ja     0x7f2c24bf1b20            ; <+80>
    0x7f2c24bf1b0e <+62>: movl   %ebp, %edi
    0x7f2c24bf1b10 <+64>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #3, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
libpthread.so.0`do_futex_wait.constprop.1:
->  0x7f2c24bf1b06 <+54>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bf1b0c <+60>: ja     0x7f2c24bf1b20            ; <+80>
    0x7f2c24bf1b0e <+62>: movl   %ebp, %edi
    0x7f2c24bf1b10 <+64>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #4, name = 'threaded-ml', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c2406ee9d libc.so.6`__GI___poll + 45
libc.so.6`__GI___poll:
->  0x7f2c2406ee9d <+45>: movq   (%rsp), %rdi
    0x7f2c2406eea1 <+49>: movq   %rax, %rdx
    0x7f2c2406eea4 <+52>: callq  0x7f2c24085e70            ; __libc_disable_asynccancel
    0x7f2c2406eea9 <+57>: movq   %rdx, %rax
  thread #5, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509
libpthread.so.0`__pthread_cond_wait:
->  0x7f2c24bef1ad <+509>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bef1b3 <+515>: ja     0x7f2c24bef208            ; <+600>
    0x7f2c24bef1b5 <+517>: movl   %r8d, %edi
    0x7f2c24bef1b8 <+520>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #6, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24046bcd libc.so.6`__GI_nanosleep + 45
libc.so.6`__GI_nanosleep:
->  0x7f2c24046bcd <+45>: movq   (%rsp), %rdi
    0x7f2c24046bd1 <+49>: movq   %rax, %rdx
    0x7f2c24046bd4 <+52>: callq  0x7f2c24085e70            ; __libc_disable_asynccancel
    0x7f2c24046bd9 <+57>: movq   %rdx, %rax
  thread #7, name = 'SGen worker', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509
libpthread.so.0`__pthread_cond_wait:
->  0x7f2c24bef1ad <+509>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bef1b3 <+515>: ja     0x7f2c24bef208            ; <+600>
    0x7f2c24bef1b5 <+517>: movl   %r8d, %edi
    0x7f2c24bef1b8 <+520>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #8, name = 'Finalizer', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
libpthread.so.0`do_futex_wait.constprop.1:
->  0x7f2c24bf1b06 <+54>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bf1b0c <+60>: ja     0x7f2c24bf1b20            ; <+80>
    0x7f2c24bf1b0e <+62>: movl   %ebp, %edi
    0x7f2c24bf1b10 <+64>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #9, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45
libpthread.so.0`__GI___nanosleep:
->  0x7f2c24bf2d8d <+45>: movq   (%rsp), %rdi
    0x7f2c24bf2d91 <+49>: movq   %rax, %rdx
    0x7f2c24bf2d94 <+52>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
    0x7f2c24bf2d99 <+57>: movq   %rdx, %rax
  thread #10, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
libpthread.so.0`do_futex_wait.constprop.1:
->  0x7f2c24bf1b06 <+54>: cmpq   $-0x1000, %rax            ; imm = 0xF000 
    0x7f2c24bf1b0c <+60>: ja     0x7f2c24bf1b20            ; <+80>
    0x7f2c24bf1b0e <+62>: movl   %ebp, %edi
    0x7f2c24bf1b10 <+64>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
  thread #11, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45
libpthread.so.0`__GI___nanosleep:
->  0x7f2c24bf2d8d <+45>: movq   (%rsp), %rdi
    0x7f2c24bf2d91 <+49>: movq   %rax, %rdx
    0x7f2c24bf2d94 <+52>: callq  0x7f2c24bf24a0            ; __pthread_disable_asynccancel
    0x7f2c24bf2d99 <+57>: movq   %rdx, %rax

Executable module set to "/home/nathan/data/home_data/Projects/OpenSource/godot_mono/bin/godot.x11.tools.64".
Architecture set to: x86_64--linux.
(lldb) thread list
Process 8716 stopped
* thread #1: tid = 8716, 0x00007f2c24bf30d7 libpthread.so.0`__waitpid + 87, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #2: tid = 8717, 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #3: tid = 8719, 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #4: tid = 8720, 0x00007f2c2406ee9d libc.so.6`__GI___poll + 45, name = 'threaded-ml', stop reason = signal SIGSTOP
  thread #5: tid = 8721, 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #6: tid = 8722, 0x00007f2c24046bcd libc.so.6`__GI_nanosleep + 45, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #7: tid = 8723, 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509, name = 'SGen worker', stop reason = signal SIGSTOP
  thread #8: tid = 8724, 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54, name = 'Finalizer', stop reason = signal SIGSTOP
  thread #9: tid = 8726, 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #10: tid = 8727, 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  thread #11: tid = 8728, 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45, name = 'godot.x11.tools', stop reason = signal SIGSTOP
(lldb) thread backtrace all
* thread #1, name = 'godot.x11.tools', stop reason = signal SIGSTOP
  * frame #0: 0x00007f2c24bf30d7 libpthread.so.0`__waitpid + 87
    frame #1: 0x00007f2c252dff87 libmonosgen-2.0.so.1`___lldb_unnamed_symbol748$$libmonosgen-2.0.so.1 + 615
    frame #2: 0x00007f2c25349b01 libmonosgen-2.0.so.1`___lldb_unnamed_symbol1284$$libmonosgen-2.0.so.1 + 209
    frame #3: 0x00007f2c253d2170 libmonosgen-2.0.so.1
  thread #2, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
    frame #1: 0x00007f2c24bf1bf8 libpthread.so.0`__new_sem_wait_slow.constprop.0 + 152
    frame #2: godot.x11.tools.64`SemaphorePosix::wait(this=0x000055745139c630) at semaphore_posix.cpp:40
    frame #3: godot.x11.tools.64`_IP_ResolverPrivate::_thread_function(self=0x000055745139d110) at ip.cpp:99
    frame #4: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x000055745139d660) at thread_posix.cpp:69
    frame #5: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #6: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #3, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
    frame #1: 0x00007f2c24bf1bf8 libpthread.so.0`__new_sem_wait_slow.constprop.0 + 152
    frame #2: godot.x11.tools.64`SemaphorePosix::wait(this=0x00005574513fc900) at semaphore_posix.cpp:40
    frame #3: godot.x11.tools.64`VisualServerScene::_gi_probe_bake_thread(this=0x00007f2c1d3d2020) at visual_server_scene.cpp:2001
    frame #4: godot.x11.tools.64`VisualServerScene::_gi_probe_bake_threads(self=0x00007f2c1d3d2020) at visual_server_scene.cpp:1786
    frame #5: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x00005574517a8500) at thread_posix.cpp:69
    frame #6: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #7: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #4, name = 'threaded-ml', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c2406ee9d libc.so.6`__GI___poll + 45
    frame #1: 0x00007f2c25ced7c3 libpulse.so.0`___lldb_unnamed_symbol113$$libpulse.so.0 + 51
    frame #2: 0x00007f2c25cdec20 libpulse.so.0`pa_mainloop_poll + 224
    frame #3: 0x00007f2c25cdf2c1 libpulse.so.0`pa_mainloop_iterate + 81
    frame #4: 0x00007f2c25cdf351 libpulse.so.0`pa_mainloop_run + 33
    frame #5: 0x00007f2c25ced6fe libpulse.so.0`___lldb_unnamed_symbol112$$libpulse.so.0 + 110
    frame #6: 0x00007f2c2306688c libpulsecommon-11.0.so`___lldb_unnamed_symbol135$$libpulsecommon-11.0.so + 92
    frame #7: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #8: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #5, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509
    frame #1: 0x00007f2c25ceddd9 libpulse.so.0`pa_threaded_mainloop_wait + 41
    frame #2: 0x00007f2c25f0db07 libpulse-simple.so.0`pa_simple_write + 199
    frame #3: godot.x11.tools.64`AudioDriverPulseAudio::thread_func(p_udata=0x00007ffeab2d4928) at audio_driver_pulseaudio.cpp:135
    frame #4: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x00005574517fdea0) at thread_posix.cpp:69
    frame #5: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #6: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #6, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24046bcd libc.so.6`__GI_nanosleep + 45
    frame #1: 0x00007f2c24071854 libc.so.6`usleep + 68
    frame #2: godot.x11.tools.64`JoypadLinux::monitor_joypads(this=0x00005574522082c0) at joypad_linux.cpp:218
    frame #3: godot.x11.tools.64`JoypadLinux::run_joypad_thread(this=0x00005574522082c0) at joypad_linux.cpp:115
    frame #4: godot.x11.tools.64`JoypadLinux::joy_thread_func(p_user=0x00005574522082c0) at joypad_linux.cpp:102
    frame #5: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x00005574521fee10) at thread_posix.cpp:69
    frame #6: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #7: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #7, name = 'SGen worker', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bef1ad libpthread.so.0`__pthread_cond_wait + 509
    frame #1: 0x00007f2c254a0964 libmonosgen-2.0.so.1`___lldb_unnamed_symbol4818$$libmonosgen-2.0.so.1 + 900
    frame #2: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #3: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #8, name = 'Finalizer', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
    frame #1: 0x00007f2c24bf1bf8 libpthread.so.0`__new_sem_wait_slow.constprop.0 + 152
    frame #2: 0x00007f2c25428601 libmonosgen-2.0.so.1`___lldb_unnamed_symbol3638$$libmonosgen-2.0.so.1 + 833
    frame #3: 0x00007f2c253fe469 libmonosgen-2.0.so.1`___lldb_unnamed_symbol3271$$libmonosgen-2.0.so.1 + 345
    frame #4: 0x00007f2c254b73e9 libmonosgen-2.0.so.1`___lldb_unnamed_symbol5076$$libmonosgen-2.0.so.1 + 201
    frame #5: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #6: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #9, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45
    frame #1: godot.x11.tools.64`OS_Unix::delay_usec(this=0x00007ffeab2d45f0, p_usec=1000) const at os_unix.cpp:319
    frame #2: godot.x11.tools.64`EditorExportAndroid::_device_poll_thread(ud=0x0000557455356e30) at export.cpp:346
    frame #3: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x000055745535c3e0) at thread_posix.cpp:69
    frame #4: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #5: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #10, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf1b06 libpthread.so.0`do_futex_wait.constprop.1 + 54
    frame #1: 0x00007f2c24bf1bf8 libpthread.so.0`__new_sem_wait_slow.constprop.0 + 152
    frame #2: godot.x11.tools.64`SemaphorePosix::wait(this=0x000055745479dea0) at semaphore_posix.cpp:40
    frame #3: godot.x11.tools.64`EditorResourcePreview::_thread(this=0x0000557455b4ceb0) at editor_resource_preview.cpp:171
    frame #4: godot.x11.tools.64`EditorResourcePreview::_thread_func(ud=0x0000557455b4ceb0) at editor_resource_preview.cpp:84
    frame #5: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x0000557455b6a6a0) at thread_posix.cpp:69
    frame #6: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #7: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
  thread #11, name = 'godot.x11.tools', stop reason = signal SIGSTOP
    frame #0: 0x00007f2c24bf2d8d libpthread.so.0`__GI___nanosleep + 45
    frame #1: godot.x11.tools.64`OS_Unix::delay_usec(this=0x00007ffeab2d45f0, p_usec=100000) const at os_unix.cpp:319
    frame #2: godot.x11.tools.64`EditorFileServer::_thread_start(s=0x0000557456ba35a0) at editor_file_server.cpp:309
    frame #3: godot.x11.tools.64`ThreadPosix::thread_callback(userdata=0x0000557456ba3a00) at thread_posix.cpp:69
    frame #4: 0x00007f2c24be9049 libpthread.so.0`start_thread + 217
    frame #5: 0x00007f2c24078f0f libc.so.6`__GI___clone + 63
(lldb) detach
Process 8716 detached
(lldb) quit

#=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
#=================================================================

Error: Failed to build API solution

It looks like a lot of work has been done to improve the usability of C# in Godot! :)

When I try to run a project now I get the following error: "Failed to build API solution". Does anybody know what I'm doing wrong? Do I still need to tell Godot to generate a csharp project and all that stuff still before it'll work? I've done that and it doesn't seem to make a difference. It looks like it's all supposed to auto-generate via the .mono folder.

Thanks for any help! :)

Signals declaration

Support a simpler alternative to add_user_signal. GDScript has the signal keyword, making it easy to declare signals. It would be good to have something similar, if possible.

How and how to compile?

$ scons p=osx target=debug tools=yes mono_glue=no
scons: Reading SConscript files ...
Could not detect MinGW. Ensure its binaries are in your PATH or that MINGW32_PREFIX or MINGW64_PREFIX are properly defined.
Package mono-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `mono-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'mono-2' found
OSError: 'pkg-config mono-2 --cflags --libs' exited 1:
File "/Users/cjmxp/MyWork/godot/SConstruct", line 369:
config.configure(env)
File "./modules/mono/config.py", line 126:
env.ParseConfig('pkg-config mono-2 --cflags --libs')
File "/usr/local/lib/scons-2.3.0/SCons/Environment.py", line 1554:
return function(self, self.backtick(command))
File "/usr/local/lib/scons-2.3.0/SCons/Environment.py", line 596:
raise OSError("'%s' exited %d" % (command, status))

InputEvent contains garbage

When using void _input(InputEvent ev) the InputEvent contains no useful information. The .type is counting up (ID ?) and sometimes contains huuuge numbers.

I think there might be problems with the marshalling.

InputTest.zip

Exported variables

Implement the Export attribute including a PropertyUsage enum (Actually, the PROPERTY_USAGE_* constants will be exposed; preferable as enum constants) and a PropertyHint (PROPERTY_HINT_* constants will be exposed too) interface with its implementations classes.

There is range for improvement here in comparison with GDScript's keyword. C# is a statically typed language so the type does not need to be inferred or manually specified. C# supports enums, so the enum hint is unnecessary.

Can't build because of missing GodotSharpTools.dll

Fresh clone of Godot (6d233c651b21ecaef78fbb20d0365a22919b72b1), fresh clone of GodotSharp (073280a)

I cp'd the mono directory into modules/, it's correctly copied and all.

[karroffel@karroffel-pc Monot]$ scons p=x11 use_llvm=yes builtin_openssl=yes mono_glue=no -j 6
scons: Reading SConscript files ...
Enabling ALSA
Enabling PulseAudio
scons: done reading SConscript files.
scons: Building targets ...
[  0%] mono_build_solution(["bin/GodotSharpTools.dll"], ["modules/mono/editor/GodotSharpTools/GodotSharpTools.sln"])
[  2%] Compiling ==> platform/x11/godot_x11.cpp
[  2%] Compiling ==> platform/x11/context_gl_x11.cpp
[  4%] Compiling ==> platform/x11/os_x11.cpp
[  4%] Compiling ==> platform/x11/key_mapping_x11.cpp
[  4%] scons: *** [bin/GodotSharpTools.dll] No such file or directory
Compiling ==> platform/x11/joypad_linux.cpp
scons: building terminated because of errors.

Assembly reloading

Assembly reloading is needed for several features to work. Here are some of them:

  • Exported variables. The script properties need to be updated in the Inspector without restarting the editor.
  • Tool scripts. Every time the assemblies are built, the editor must detect if a script is can be used in tool mode.
  • Live script reloading. Pretty obvious.

Script doesn't inherit node.

Hi, just built this on the Godot master branch and I can't get it to work. I'm sure it's probably a syntax error or something small I'm overlooking so sorry in advance.

Startup class I'm using to test if I built it right or not.
`
using Godot;
using System;

public class Startup : Node
{
public override void _Ready(){
SetProcessInput(true);
}

public override void _Input(InputEvent ie) {
    if(Input.IsActionPressed("ui_cancel")) {
        GetTree().Quit();
    }
}

}
`

The message I get when I run
ERROR: start: Script does not inherit a Node: res://src/Startup.cs

Help would be appreciated, thanks.

Building on Windows

I'm following the linux example changing names where necessary. I have gotten to the glue stage.
"bin/godot.windows.tools.64 --generate-mono-glue modules/mono/glue"

I'm getting a whole bunch of errrs and warnings.

C:\godot> bin\godot.windows.tools.64.exe --generate-mono-glue modules/mono/glue
Couldn't open C:\godot\bin/godot.windows.tools.64.pck
Couldn't open godot.windows.tools.64.pck
Couldn't load/find C:/godot/project.godot or project.binary
Couldn't load/find C://project.godot or project.binary
Activated GL 3.3 contextOpenGL ES 3.0 Renderer: AMD Radeon HD 6800 Series
GLES3: max ubo light: 409
GLES3: max ubo reflections: 455, ubo size: 144
WARNING: not found: gdnative/singletons
Initializing mono...
Mono: Runtime initialized
Mono: EVERYTHING OK
WARNING: BindingsGenerator::_populate_object_type_interfaces: Name of method Popup is ambiguous with the name of its class Popup. Renaming method to Popup_
At: modules\mono\editor\bindings_generator.cpp:1640
WARNING: BindingsGenerator::_populate_object_type_interfaces: Name of method Reference is ambiguous with the name of its class Reference. Renaming method to Reference_
At: modules\mono\editor\bindings_generator.cpp:1640
Generating ARVRAnchor...
Generating ARVRCamera...
Generating ARVRController...
*** lots more generating goes here ***
Generating _Thread...
ERROR: No loader found for resource: res://modules/mono/glue
At: core\io\resource_loader.cpp:184
ERROR: Failed loading scene: res://modules/mono/glue
At: main\main.cpp:1515
Mono: Runtime cleanup...
debugger-agent: Unable to listen on 5576
WARNING: ObjectDB::cleanup: ObjectDB Instances still exist!
At: core\object.cpp:1858

If I ignore all those and build:
"scons p=windows target=release_debug tools=yes"
I build and run the application fine.

The problem comes the moment I try and add a c# script.
The whole app hangs on 'Generating solution' and 'building GodotSharp solution', I get no errors in the debug window.

Functions that get or set Vector3 don't recognize Z

I'm not sure why, but when using methods like get_translation/set_translation or get_rotation/set_rotation the z value is always returned or set as zero.

Below is some sample code where I'm rotating a MeshInstance around the Z. Note that if I use the X or Y axis then it works as expected. The same is true for translation methods and I'm assuming for all other methods where Vector3 parameters are used.

Thanks :)

C# doesn't work with the Z axis

using GodotEngine;

public class TestScript : Spatial
{
    float totalTime = 0.0f;

    void _process(float delta)
    {
        totalTime += delta;
        set_rotation(new Vector3(0, 0, totalTime));
    }
}

GDScript works with the Z axis

extends Spatial

var totalTime = 0.0

func _process(delta):
	totalTime = totalTime + delta
	set_rotation(Vector3(0,0,totalTime))

Unable to build android export templates

build of android export templates fails. I'm running the following after I have created a fully functioning godot app (ie: after following godotsharp build instructions).

command:
scons platform=android tools=no target=release_debug
error:
[ 11%] Compiling ==> mmodules\mono\csharp_script.cpp csharp_script.cpp modules\mono\csharp_script.cpp(482): error C2039: 'exports_invalidated': is not a member of 'CSharpScript' c:\godot\modules\mono\csharp_script.h(61): note: see declaration of 'CSharpScript' scons: *** [modules\mono\csharp_script.windows.opt.debug.64.obj] Error 2 cons: building terminated because of errors.

Missing godotsharp_builds.h causing compiling error

[ 14%] Compiling ==> modules/mono/csharp_script.cpp
In file included from modules/mono/csharp_script.cpp:40:
modules/mono/editor/godotsharp_editor.h:30:10: fatal error: 
      'godotsharp_builds.h' file not found
#include "godotsharp_builds.h"
         ^~~~~~~~~~~~~~~~~~~~~
1 error generated.
scons: *** [modules/mono/csharp_script.x11.tools.64.llvm.o] Error 1
scons: building terminated because of errors.

Is this a file you forgot to commit?

Support virtual methods like '_process' in sub classes.

I think it would be very beneficial to be able to place a Godot virtual method into a sub/base class.

For instance:

public class MyBaseClass : Spatial
{
    void _process(float delta)
    {
        GD.print("I will only be called if I'm the attached script!");
    }
}
public class MySubClass : MyBaseClass
{
    // _process will not be called on MyBaseClass
}

Tool scripts

Create Tool attribute and avoid usage of non-tool scripts in builds with TOOLS_ENABLED defined.

It will probably not be possible to prevent its usage from the managed side though.

Built-in types and global scope methods and constants

There is no global scope in .NET so those methods and constants will be implemented in classes. Check the the list of API differences.

Progress on built-in types:

  • AABB
  • Array
  • Color
  • ColorArray
  • Dictionary
  • Error
  • Image
  • InputEvent
  • InputEventAction
  • InputEventJoystickButton
  • InputEventJoystickMotion
  • InputEventKey
  • InputEventMouseButton
  • InputEventMouseMotion
  • InputEventScreenDrag
  • InputEventScreenTouch
  • IntArray
  • Matrix3
  • Matrix32
  • NodePath
  • Plane
  • Quat
  • RID
  • RawArray
  • RealArray
  • Rect2
  • String
    • Add extension methods for Godot's String methods missing in System.String.
  • StringArray
  • Transform
  • Variant (System.Object)
  • Vector2
  • Vector2Array
  • Vector3
  • Vector3Array

Some of these types may be unnecessary or implemented in a different way.

yield to signal

Will there be an equivalent of yielding to signal as in gdscript? I believe it works different than ordinary yield in C#.

I'm mainly trying to understand whether C# will provide a workaround for this issue or not.

Build fails with msbuild 15

Build fails with msbuild 15 on Arch Linux, with and error message about "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" not being found

Project "/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Release|Any CPU".
Project "/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.sln" (1) is building "/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj" (2) on node 1 (default targets).
/usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj]
Done Building Project "/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj" (default targets) -- FAILED.
Done Building Project "/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.sln" (default targets) -- FAILED.

Build FAILED.

"/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.sln" (default target) (1) ->
"/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj" (default target) (2) ->
  /usr/lib/mono/msbuild/15.0/bin/Microsoft.CSharp.CurrentVersion.targets(331,5): error MSB4019: The imported project "/usr/lib/mono/msbuild/15.0/bin/Roslyn/Microsoft.CSharp.Core.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [/home/user/godot/modules/mono/editor/GodotSharpTools/GodotSharpTools.csproj]

    0 Warning(s)
    1 Error(s)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.