summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--AUTHORS.md3
-rw-r--r--DONORS.md97
-rw-r--r--doc/classes/EditorTranslationParserPlugin.xml2
-rw-r--r--doc/classes/ProjectSettings.xml3
-rw-r--r--doc/classes/RayCast2D.xml2
-rw-r--r--doc/classes/RayCast3D.xml2
-rw-r--r--doc/classes/TextEdit.xml4
-rw-r--r--doc/classes/Window.xml4
-rw-r--r--modules/gridmap/doc_classes/GridMap.xml38
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs10
-rw-r--r--modules/mono/mono_gd/gd_mono_marshal.cpp4
12 files changed, 99 insertions, 71 deletions
diff --git a/.mailmap b/.mailmap
index 1ff1ffb0ee..4b427a8a5e 100644
--- a/.mailmap
+++ b/.mailmap
@@ -72,6 +72,7 @@ Leon Krause <lk@leonkrause.com> <eska014@users.noreply.github.com>
Manuel Strey <manuel.strey@gmx.de>
Marcelo Fernandez <marcelofg55@gmail.com>
Marcin Zawiejski <dragmz@gmail.com>
+Marcus Elg <marcusaccounts@yahoo.se>
Mariano Javier Suligoy <marianognu.easyrpg@gmail.com>
Mario Schlack <m4r10.5ch14ck@gmail.com>
marxin <mliska@suse.cz>
diff --git a/AUTHORS.md b/AUTHORS.md
index e8bb91d4bb..f1803c672c 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -110,10 +110,13 @@ name is available.
Leon Krause (eska014)
Lucien Menassol (Kanabenki)
m4nu3lf
+ Maganty Rushyendra (mrushyendra)
Marcel Admiraal (madmiraal)
Marcelo Fernandez (marcelofg55)
Marc Gilleron (Zylann)
Marcin Zawiejski (dragmz)
+ Marcus Brummer (mbrlabs)
+ Marcus (MCrafterzz)
Mariano Javier Suligoy (MarianoGnu)
Mario Schlack (hurikhan)
Martin Capitanio (capnm)
diff --git a/DONORS.md b/DONORS.md
index 2988cc94f4..16a30b9489 100644
--- a/DONORS.md
+++ b/DONORS.md
@@ -25,13 +25,14 @@ generous deed immortalized in the next stable release of Godot Engine.
AD Ford
Alan Beauchamp
albinaask
+ Alejandro Saucedo
Andrew Dunai
Brandon Lamb
Christian Baune
Christopher Montesano
- Darius Pranskus
Darkhan Baimyrza
Darrin Massena
+ Digital Grows
Dov Zimring
Edward Flick
Gamechuck
@@ -42,9 +43,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Jasper Brooks
Javary Co.
Jeffery Chiu
- John Benard (Linuxydable)
Justin Arnold
- Justo Delgado Baudí
Kyle Szklenski
Marcel Kräml
Matthieu Huvé
@@ -52,7 +51,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Mike King
Nathan Warden
Neal Gompa (Conan Kudo)
- Péter Magyar
Ronnie Cheng
Slobodan Milnovic
Stephan Lanfermann
@@ -64,46 +62,51 @@ generous deed immortalized in the next stable release of Godot Engine.
Bjarke
David Gehrig
- David Graham
David Snopek
Ed Morley
Florian Rämisch
Jakub Grzesik
- HardRound
Manuele Finocchiaro
Officine Pixel S.n.c.
+ Rami
Ronan Zeegers
Sofox
+ Spicylewd
Taylor Ritenour
Zaven Muradyan
+ Andreas Schüle
+ Andres Hernandez
Asher Glick
Austen McRae
Bernhard Werner
beVR
Carlo Cabanilla
+ Christopher Case
Daniel James
David Giardi
Default Name
eggs
Florian Breisch
+ Forge
Gamejunkey
Javier Roman
Jon Woodward
Karl Werf
- Keinan Powers
Klavdij Voncina
Lex Steers
Luke
Maciej Pendolski
Matthew Hillier
Mohamed Ikbel Boulabiar
+ Monster Vial
Rene
Retro Village
Rob Messick
Roland Fredenhagen
Ryan Badour
Sandro Jenny
+ Sarksus
Scott Wadden
Sergey
thechris
@@ -114,6 +117,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Alex Khayrullin
alice gambrell
+ Andrew Harris
Barugon
Chris Goddard
Chris Serino
@@ -121,28 +125,31 @@ generous deed immortalized in the next stable release of Godot Engine.
Conrad Curry
Craig Smith
Darrian Little
+ dragonage13
+ GiulianoB
Hoai Nam Tran
Horváth Péter
- Jamal Aboudrar
+ Jeff Nyte
Joan Fons
Joshua Flores
Leo Fidel R Liban
+ Michael Dürwald
+ Péter Magyar
Petr Malac
- Rami
Rob
Robert Willes
Ronnie Ashlock
SKison
Thomas Bjarnelöf
- Unseen Domains
Valryia
Vincent Henderson
+ Vojtěch
Wojciech Chojnacki
Xavier PATRICELLI
+ Zoran Kukulj
Adam Nakonieczny
Adam Neumann
- Adrian Demetrescu
Alexander J Maynard
Alexey Dyadchenko
Andreas Funke
@@ -152,20 +159,21 @@ generous deed immortalized in the next stable release of Godot Engine.
Carlos de Sousa Marques
Charlie Whitfield
Chase Taranto
+ Chelsea Hash
Chris Petrich
Christian Alexander Bjørklund Bøhler
Christian Leth Jeppesen
- Christoph Schröder
- Codee Leaf
Cody Parker
Craig Ostrin
curtis Kramer
D
+ Dev To be curious
+ Digital Denizen
Easypete
Edgar Sun
- Eric Monson
Eugenio Hugo Salgüero Jáñez
flesk
+ F S
Gary Hulst
gavlig
GGGames.org
@@ -174,24 +182,27 @@ generous deed immortalized in the next stable release of Godot Engine.
Hu Hund
Isaac Clausman
Jared White
- Jeff Nyte
Joe Flood
John G Gentzel
Jose Malheiro
+ Joseph Crane
Joshua Lesperance
Juan Velandia
Julian Todd
Juraj Móza
+ Justo Delgado Baudí
Kelteseth
kickmaniac
kinfox
Lain Ballard
+ luca duran
Marcelo Dornbusch Lopes
Marcelo Henrique Gonçalves
Markus Fehr
Markus Wiesner
Martin Eigel
Matt Eunson
+ Mikado069
m kaersten
MuffinManKen
Nick Abousselam
@@ -201,6 +212,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Paul Hocker
Paul Von Zimmerman
Pete Goodwin
+ PhaineOfCatz
pl
Ranoller
Rob McInroy
@@ -208,6 +220,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Ryan
Samuel Judd
Scott Pilet
+ Scott Ryan-Taylor
Sean Morgan
Sean Robertson
Sébastien
@@ -215,6 +228,7 @@ generous deed immortalized in the next stable release of Godot Engine.
SleepCircle
spilldata
Stoned Xander
+ Tahiti Bos
TheLevelOfDetail .
Thomas Kurz
Tobias Bocanegra
@@ -228,7 +242,9 @@ generous deed immortalized in the next stable release of Godot Engine.
## Silver donors
1D_Inc
+ Aaron
Aaron Winter
+ Abel Crunk
Abraham Haskins
Acheron
Adam
@@ -244,18 +260,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Agustinus Arya
Aidan O'Flannagain
Aki Mimoto
- Alan Stice
Albin Jonasson Svärdsby
Alder Stefano
AleMax
Alessandro Senese
Alexander Erlemann
alex clavelle
- Alfred Reinold Baudisch
Allan Davis
Allen Schade
Andreas Krampitz
- Andres Hernandez
André Simões
andrew james morris
Andrew Mansuetti
@@ -267,12 +280,12 @@ generous deed immortalized in the next stable release of Godot Engine.
Armin Preiml
Arseniy M
Arthur S. Muszynski
- Asger
Ashley Claymore
Ashton Scott Snapp
Aubrey Falconer
B A
Balázs Batári
+ Balázs Hasprai
Bartosz Bielecki
Benedikt
Ben Vercammen
@@ -299,21 +312,24 @@ generous deed immortalized in the next stable release of Godot Engine.
Christoph Woinke
Clay Heaton
Cole Johnson
+ Cuauhtemoc Moreno
Curt King
- Daniel Johnson
Daniel Kimblad
+ Daniel Johnson
+ DanielMaximiano
Daniel Tebbutt
+ Dave Walker
David May
David Woodard
Dimitri Stanojevic
- Dominic Cooney
+ Dmytro Korchynskyi
Dominik Wetzel
Donn Eddy
Dragontrapper
Dr Ewan Murray
+ Dr.Raccoon
Duobix
Duodecimal
- Dylan Todd
Eduardo Teixeira
Edward Herbert
Edward Swartz
@@ -331,11 +347,11 @@ generous deed immortalized in the next stable release of Godot Engine.
Fancy Ants Studios
Fekinox
Felix Bohmann
- Felix Kollmann
Flaredown
+ Florian Richer
Forty Doubleu
- FuDiggity
Frank
+ FuDiggity
Gadzhi Kharkharov
gamedev by Celio
Gary Thomas
@@ -347,6 +363,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Guillaume Audirac
Guillaume Pham Ngoc
Guldoman
+ Gustavo Loureiro dos Reis
Hal A
Heribert Hirth
Hunter Jones
@@ -357,12 +374,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Ivan Nikolaev
Jackson Harmer
Jacob
+ Jaguar
Jaiden Gerig
Jaime Ruiz-Borau Vizárraga
Jako Danar
James A F Manley
+ Jamiee H
+ Jamie Massey
Janders
- Jannik Gröger
JARKKO PARVIAINEN
Jean-Baptiste LEPESME
Jeff Hungerford
@@ -372,6 +391,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Joel Fivat
Joel Höglund
Joel Setterberg
+ Johannes Goslar
John Gabriel
John Walker
Jomei Jackson
@@ -385,7 +405,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jon Sully
Jordy Goodridge
Jorge Antunes
- Jorge Caballero
Jose Aleman
Jose C. Rubio
Joseph Catrambone
@@ -396,6 +415,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Julian Murgia
June Little
JungleRobba
+ Justin Calleja
Justin Hamilton
Justin Spedding
KaDokta
@@ -405,6 +425,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Keith Bradner
Kent Jofur
Kevin McPhillips
+ Kevin Velasco
Kiri Jolly
Kjetil Haugland
Klagsam
@@ -412,10 +433,9 @@ generous deed immortalized in the next stable release of Godot Engine.
Kuan Cheang
kycho
Kyle Appelgate
+ Kyuppin
Laurent Tréguier
- Leonard Meagher
Leonardo Dimano
- Levi Lindsey
Lin Chear
Linus Lind Lundgren
Lionel Gaillard
@@ -425,9 +445,14 @@ generous deed immortalized in the next stable release of Godot Engine.
Major Haul
Malcolm
Marco Lardelli
+ Mark Jad
+ Mark Krenz
Markus Michael Egger
+ Martin FIbik
Martin Holas
+ Martin Linklater
Martin Liška
+ Martin Trbola
Marvin
Mathieu
Matt Edwards
@@ -438,10 +463,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Megasploot
Melissa Mears
mewin
- mhilbrunner
- Michael Dürwald
Michael Haney
- Michael Labbe
Michał Skwarek
Mikael Olsson
Mikayla
@@ -470,6 +492,8 @@ generous deed immortalized in the next stable release of Godot Engine.
Omar Delarosa
Oscar Norlander
Pan Ip
+ Parinya Teerakasemsuk
+ Patrick Dully
Patrick Nafarrete
Paul Gieske
Paul Mason
@@ -478,17 +502,20 @@ generous deed immortalized in the next stable release of Godot Engine.
Penguin
Peter
Philip Cohoe
+ Piotr Góral
Point08
pwab
Rad Cat
Rafa Laguna
+ Ram
Remi Rampin
Rémi Verschelde
+ Reneator
Ricardo Alcantara
Richard Diss
Richard Ivánek
Robert Farr (Larington)
- Robert Hernandez
+ Robert Larnach
Roger Smith
Roland Rząsa
Roman Tinkov
@@ -496,7 +523,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Ronan
Ronny Mühle
Ryan Groom
- Ryan Hentz
Sam Edson
Samuele Zolfanelli
Scott D. Yelich
@@ -534,6 +560,7 @@ generous deed immortalized in the next stable release of Godot Engine.
Timothy B. MacDonald
Title Plinsut
Tobbun
+ Tobias Bradtke
Tom Glenn
Toni Duran
Torgeir Lilleskog
@@ -551,13 +578,15 @@ generous deed immortalized in the next stable release of Godot Engine.
Victor
Vigilant Watch
Vincent Cloutier
+ Vladimir Savin
waka nya
Wayne Haak
werner mendizabal
Wiley Thompson
Will
Wyatt Goodin
- Yegor
+ Yegor Smirnov
+ YiYin Gu
Yuri LaPointe
Yuri Sizov
Zgegnesh Hemomancer
diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml
index c7d796ec30..73098efd99 100644
--- a/doc/classes/EditorTranslationParserPlugin.xml
+++ b/doc/classes/EditorTranslationParserPlugin.xml
@@ -19,7 +19,7 @@
func get_recognized_extensions():
return ["csv"]
- [/codeblock]
+ [/codeblock]
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 799c4d2e75..6a7a6b84f6 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -256,6 +256,9 @@
<member name="audio/output_latency" type="int" setter="" getter="" default="15">
Output latency in milliseconds for audio. Lower values will result in lower audio latency at the cost of increased CPU usage. Low values may result in audible cracking on slower hardware.
</member>
+ <member name="audio/output_latency.web" type="int" setter="" getter="" default="50">
+ Safer override for [member audio/output_latency] in the Web platform, to avoid audio issues especially on mobile devices.
+ </member>
<member name="audio/video_delay_compensation_ms" type="int" setter="" getter="" default="0">
Setting to hardcode audio delay when playing video. Best to leave this untouched unless you know what you are doing.
</member>
diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml
index 51f3f0334d..4a594d3e1a 100644
--- a/doc/classes/RayCast2D.xml
+++ b/doc/classes/RayCast2D.xml
@@ -135,7 +135,7 @@
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected.
</member>
- <member name="enabled" type="bool" setter="set_enabled" getter="is_enabled" default="false">
+ <member name="enabled" type="bool" setter="set_enabled" getter="is_enabled" default="true">
If [code]true[/code], collisions will be reported.
</member>
<member name="exclude_parent" type="bool" setter="set_exclude_parent_body" getter="get_exclude_parent_body" default="true">
diff --git a/doc/classes/RayCast3D.xml b/doc/classes/RayCast3D.xml
index 08c6d6f40c..3512da9d77 100644
--- a/doc/classes/RayCast3D.xml
+++ b/doc/classes/RayCast3D.xml
@@ -138,7 +138,7 @@
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected.
</member>
- <member name="enabled" type="bool" setter="set_enabled" getter="is_enabled" default="false">
+ <member name="enabled" type="bool" setter="set_enabled" getter="is_enabled" default="true">
If [code]true[/code], collisions will be reported.
</member>
<member name="exclude_parent" type="bool" setter="set_exclude_parent_body" getter="get_exclude_parent_body" default="true">
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index f48b007fbe..b7b4278da0 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -335,6 +335,7 @@
</argument>
<description>
Perform selection, from line/column to line/column.
+ If [member selecting_enabled] is [code]false[/code], no selection will occur.
</description>
</method>
<method name="select_all">
@@ -342,6 +343,7 @@
</return>
<description>
Select all the text.
+ If [member selecting_enabled] is [code]false[/code], no selection will occur.
</description>
</method>
<method name="set_line">
@@ -459,6 +461,8 @@
The current vertical scroll value.
</member>
<member name="selecting_enabled" type="bool" setter="set_selecting_enabled" getter="is_selecting_enabled" default="true">
+ If [code]true[/code], text can be selected.
+ If [code]false[/code], text can not be selected by the user or by the [method select] or [method select_all] methods.
</member>
<member name="shortcut_keys_enabled" type="bool" setter="set_shortcut_keys_enabled" getter="is_shortcut_keys_enabled" default="true">
If [code]true[/code], shortcut keys for context menu items are enabled, even if the context menu is disabled.
diff --git a/doc/classes/Window.xml b/doc/classes/Window.xml
index e1a0f1f22a..c1a991fca1 100644
--- a/doc/classes/Window.xml
+++ b/doc/classes/Window.xml
@@ -377,9 +377,9 @@
</constant>
<constant name="CONTENT_SCALE_MODE_DISABLED" value="0" enum="ContentScaleMode">
</constant>
- <constant name="CONTENT_SCALE_MODE_OBJECTS" value="1" enum="ContentScaleMode">
+ <constant name="CONTENT_SCALE_MODE_CANVAS_ITEMS" value="1" enum="ContentScaleMode">
</constant>
- <constant name="CONTENT_SCALE_MODE_PIXELS" value="2" enum="ContentScaleMode">
+ <constant name="CONTENT_SCALE_MODE_VIEWPORT" value="2" enum="ContentScaleMode">
</constant>
<constant name="CONTENT_SCALE_ASPECT_IGNORE" value="0" enum="ContentScaleAspect">
</constant>
diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml
index a213069e19..79220da7c2 100644
--- a/modules/gridmap/doc_classes/GridMap.xml
+++ b/modules/gridmap/doc_classes/GridMap.xml
@@ -43,27 +43,19 @@
<method name="get_cell_item" qualifiers="const">
<return type="int">
</return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
+ <argument index="0" name="position" type="Vector3i">
</argument>
<description>
- The [MeshLibrary] item index located at the grid-based X, Y and Z coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be returned.
+ The [MeshLibrary] item index located at the given grid coordinates. If the cell is empty, [constant INVALID_CELL_ITEM] will be returned.
</description>
</method>
<method name="get_cell_item_orientation" qualifiers="const">
<return type="int">
</return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
+ <argument index="0" name="position" type="Vector3i">
</argument>
<description>
- The orientation of the cell at the grid-based X, Y and Z coordinates. -1 is returned if the cell is empty.
+ The orientation of the cell at the given grid coordinates. [code]-1[/code] is returned if the cell is empty.
</description>
</method>
<method name="get_collision_layer_bit" qualifiers="const">
@@ -111,11 +103,7 @@
<method name="map_to_world" qualifiers="const">
<return type="Vector3">
</return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
- </argument>
- <argument index="2" name="z" type="int">
+ <argument index="0" name="map_position" type="Vector3i">
</argument>
<description>
Returns the position of a grid cell in the GridMap's local coordinate space.
@@ -132,18 +120,14 @@
<method name="set_cell_item">
<return type="void">
</return>
- <argument index="0" name="x" type="int">
- </argument>
- <argument index="1" name="y" type="int">
+ <argument index="0" name="position" type="Vector3i">
</argument>
- <argument index="2" name="z" type="int">
+ <argument index="1" name="item" type="int">
</argument>
- <argument index="3" name="item" type="int">
- </argument>
- <argument index="4" name="orientation" type="int" default="0">
+ <argument index="2" name="orientation" type="int" default="0">
</argument>
<description>
- Sets the mesh index for the cell referenced by its grid-based X, Y and Z coordinates.
+ Sets the mesh index for the cell referenced by its grid coordinates.
A negative item index such as [constant INVALID_CELL_ITEM] will clear the cell.
Optionally, the item's orientation can be passed. For valid orientation values, see [method Basis.get_orthogonal_index].
</description>
@@ -185,9 +169,9 @@
</description>
</method>
<method name="world_to_map" qualifiers="const">
- <return type="Vector3">
+ <return type="Vector3i">
</return>
- <argument index="0" name="pos" type="Vector3">
+ <argument index="0" name="world_position" type="Vector3">
</argument>
<description>
Returns the coordinates of the grid cell containing the given point.
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
index 9384da0e48..e050d1fdd1 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/GD.cs
@@ -84,7 +84,7 @@ namespace Godot
public static void Print(params object[] what)
{
- godot_icall_GD_print(Array.ConvertAll(what, x => x?.ToString()));
+ godot_icall_GD_print(Array.ConvertAll(what ?? new object[]{"null"}, x => x != null ? x.ToString() : "null"));
}
public static void PrintStack()
@@ -94,22 +94,22 @@ namespace Godot
public static void PrintErr(params object[] what)
{
- godot_icall_GD_printerr(Array.ConvertAll(what, x => x?.ToString()));
+ godot_icall_GD_printerr(Array.ConvertAll(what ?? new object[]{"null"}, x => x != null ? x.ToString() : "null"));
}
public static void PrintRaw(params object[] what)
{
- godot_icall_GD_printraw(Array.ConvertAll(what, x => x?.ToString()));
+ godot_icall_GD_printraw(Array.ConvertAll(what ?? new object[]{"null"}, x => x != null ? x.ToString() : "null"));
}
public static void PrintS(params object[] what)
{
- godot_icall_GD_prints(Array.ConvertAll(what, x => x?.ToString()));
+ godot_icall_GD_prints(Array.ConvertAll(what ?? new object[]{"null"}, x => x != null ? x.ToString() : "null"));
}
public static void PrintT(params object[] what)
{
- godot_icall_GD_printt(Array.ConvertAll(what, x => x?.ToString()));
+ godot_icall_GD_printt(Array.ConvertAll(what ?? new object[]{"null"}, x => x != null ? x.ToString() : "null"));
}
public static float Randf()
diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp
index 158742846b..92734a0792 100644
--- a/modules/mono/mono_gd/gd_mono_marshal.cpp
+++ b/modules/mono/mono_gd/gd_mono_marshal.cpp
@@ -1035,6 +1035,10 @@ Variant mono_object_to_variant_no_err(MonoObject *p_obj, const ManagedType &p_ty
}
String mono_object_to_variant_string(MonoObject *p_obj, MonoException **r_exc) {
+ if (p_obj == nullptr) {
+ return String("null");
+ }
+
ManagedType type = ManagedType::from_class(mono_object_get_class(p_obj));
Variant var = GDMonoMarshal::mono_object_to_variant_no_err(p_obj, type);