diff options
Diffstat (limited to 'modules')
31 files changed, 2034 insertions, 868 deletions
diff --git a/modules/gdnative/SCsub b/modules/gdnative/SCsub index be0975b53c..6592d0ae1d 100644 --- a/modules/gdnative/SCsub +++ b/modules/gdnative/SCsub @@ -35,9 +35,9 @@ def _build_gdnative_api_struct_header(api): '\tconst char *version;', ] - for funcname, funcdef in api['api'].items(): + for funcdef in api['api']: args = ', '.join(['%s%s' % (_spaced(t), n) for t, n in funcdef['arguments']]) - out.append('\t%s(*%s)(%s);' % (_spaced(funcdef['return_type']), funcname, args)) + out.append('\t%s(*%s)(%s);' % (_spaced(funcdef['return_type']), funcdef['name'], args)) out += [ '} godot_gdnative_api_struct;', @@ -63,8 +63,8 @@ def _build_gdnative_api_struct_source(api): '\t_gdnative_api_version,', ] - for funcname in api['api'].keys(): - out.append('\t%s,' % funcname) + for funcdef in api['api']: + out.append('\t%s,' % funcdef['name']) out.append('};\n') return '\n'.join(out) @@ -74,8 +74,7 @@ def build_gdnative_api_struct(target, source, env): from collections import OrderedDict with open(source[0].path, 'r') as fd: - # Keep the json ordered - api = json.load(fd, object_pairs_hook=OrderedDict) + api = json.load(fd) header, source = target with open(header.path, 'w') as fd: @@ -107,14 +106,14 @@ def _build_gdnative_wrapper_code(api): '' ] - for funcname, funcdef in api['api'].items(): + for funcdef in api['api']: args = ', '.join(['%s%s' % (_spaced(t), n) for t, n in funcdef['arguments']]) - out.append('%s %s(%s) {' % (_spaced(funcdef['return_type']), funcname, args)) + out.append('%s%s(%s) {' % (_spaced(funcdef['return_type']), funcdef['name'], args)) args = ', '.join(['%s' % n for t, n in funcdef['arguments']]) return_line = '\treturn ' if funcdef['return_type'] != 'void' else '\t' - return_line += '_gdnative_wrapper_api_struct->' + funcname + '(' + args + ');' + return_line += '_gdnative_wrapper_api_struct->' + funcdef['name'] + '(' + args + ');' out.append(return_line) out.append('}') @@ -132,7 +131,6 @@ def _build_gdnative_wrapper_code(api): def build_gdnative_wrapper_code(target, source, env): import json with open(source[0].path, 'r') as fd: -#Keep the json ordered api = json.load(fd) wrapper_file = target[0] @@ -143,7 +141,7 @@ def build_gdnative_wrapper_code(target, source, env): if ARGUMENTS.get('gdnative_wrapper', False): #build wrapper code - gdn_env.Command('gdnative_wrapper_code.gen.cpp', 'gdnative_api.json', build_gdnative_wrapper_code) + gensource, = gdn_env.Command('gdnative_wrapper_code.gen.cpp', 'gdnative_api.json', build_gdnative_wrapper_code) gd_wrapper_env = env.Clone() gd_wrapper_env.Append(CPPPATH=['#modules/gdnative/include/']) @@ -151,4 +149,4 @@ if ARGUMENTS.get('gdnative_wrapper', False): # I think this doesn't work on MSVC yet... gd_wrapper_env.Append(CCFLAGS=['-fPIC']) - gd_wrapper_env.Library("#bin/gdnative_wrapper_code", ["#modules/gdnative/gdnative_wrapper_code.gen.cpp"]) + gd_wrapper_env.Library("#bin/gdnative_wrapper_code", [gensource]) diff --git a/modules/gdnative/gd_native_library_editor.cpp b/modules/gdnative/gd_native_library_editor.cpp index cc2c2b69a6..c37b7f473d 100644 --- a/modules/gdnative/gd_native_library_editor.cpp +++ b/modules/gdnative/gd_native_library_editor.cpp @@ -72,7 +72,7 @@ void GDNativeLibraryEditor::_update_libraries() { libraries->create_item(); //rppt Vector<String> enabled_paths; - if (ProjectSettings::get_singleton()->has("gdnative/singletons")) { + if (ProjectSettings::get_singleton()->has_setting("gdnative/singletons")) { enabled_paths = ProjectSettings::get_singleton()->get("gdnative/singletons"); } Set<String> enabled_list; @@ -100,7 +100,7 @@ void GDNativeLibraryEditor::_item_edited() { String path = item->get_metadata(0); Vector<String> enabled_paths; - if (ProjectSettings::get_singleton()->has("gdnative/singletons")) { + if (ProjectSettings::get_singleton()->has_setting("gdnative/singletons")) { enabled_paths = ProjectSettings::get_singleton()->get("gdnative/singletons"); } diff --git a/modules/gdnative/gdnative/gdnative.cpp b/modules/gdnative/gdnative/gdnative.cpp index cf1f6a4f16..64a7c33cf8 100644 --- a/modules/gdnative/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative/gdnative.cpp @@ -41,6 +41,7 @@ extern "C" { #endif extern "C" void _string_api_anchor(); +extern "C" void _string_name_api_anchor(); extern "C" void _vector2_api_anchor(); extern "C" void _rect2_api_anchor(); extern "C" void _vector3_api_anchor(); @@ -61,6 +62,7 @@ extern "C" void _variant_api_anchor(); void _api_anchor() { _string_api_anchor(); + _string_name_api_anchor(); _vector2_api_anchor(); _rect2_api_anchor(); _vector3_api_anchor(); diff --git a/modules/gdnative/gdnative/string_name.cpp b/modules/gdnative/gdnative/string_name.cpp new file mode 100644 index 0000000000..5c00fdfc2f --- /dev/null +++ b/modules/gdnative/gdnative/string_name.cpp @@ -0,0 +1,91 @@ +/*************************************************************************/ +/* string_name.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#include "gdnative/string_name.h" + +#include "core/string_db.h" +#include "core/ustring.h" + +#include <string.h> + +#ifdef __cplusplus +extern "C" { +#endif + +void _string_name_api_anchor() { +} + +void GDAPI godot_string_name_new(godot_string_name *r_dest, const godot_string *p_name) { + StringName *dest = (StringName *)r_dest; + const String *name = (const String *)p_name; + memnew_placement(dest, StringName(*name)); +} + +void GDAPI godot_string_name_new_data(godot_string_name *r_dest, const char *p_name) { + StringName *dest = (StringName *)r_dest; + memnew_placement(dest, StringName(p_name)); +} + +godot_string GDAPI godot_string_name_get_name(const godot_string_name *p_self) { + godot_string ret; + const StringName *self = (const StringName *)p_self; + memnew_placement(&ret, String(*self)); + return ret; +} + +uint32_t GDAPI godot_string_name_get_hash(const godot_string_name *p_self) { + const StringName *self = (const StringName *)p_self; + return self->hash(); +} + +const void GDAPI *godot_string_name_get_data_unique_pointer(const godot_string_name *p_self) { + const StringName *self = (const StringName *)p_self; + return self->data_unique_pointer(); +} + +godot_bool GDAPI godot_string_name_operator_equal(const godot_string_name *p_self, const godot_string_name *p_other) { + const StringName *self = (const StringName *)p_self; + const StringName *other = (const StringName *)p_other; + return self == other; +} + +godot_bool GDAPI godot_string_name_operator_less(const godot_string_name *p_self, const godot_string_name *p_other) { + const StringName *self = (const StringName *)p_self; + const StringName *other = (const StringName *)p_other; + return self < other; +} + +void GDAPI godot_string_name_destroy(godot_string_name *p_self) { + StringName *self = (StringName *)p_self; + self->~StringName(); +} + +#ifdef __cplusplus +} +#endif diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 8b6593c9c3..4d3c024a8f 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -1,7 +1,8 @@ { "version": "1.0.0", - "api": { - "godot_color_new_rgba": { + "api": [ + { + "name": "godot_color_new_rgba", "return_type": "void", "arguments": [ ["godot_color *", "r_dest"], @@ -11,7 +12,8 @@ ["const godot_real", "p_a"] ] }, - "godot_color_new_rgb": { + { + "name": "godot_color_new_rgb", "return_type": "void", "arguments": [ ["godot_color *", "r_dest"], @@ -20,113 +22,131 @@ ["const godot_real", "p_b"] ] }, - "godot_color_get_r": { + { + "name": "godot_color_get_r", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_set_r": { + { + "name": "godot_color_set_r", "return_type": "void", "arguments": [ ["godot_color *", "p_self"], ["const godot_real", "r"] ] }, - "godot_color_get_g": { + { + "name": "godot_color_get_g", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_set_g": { + { + "name": "godot_color_set_g", "return_type": "void", "arguments": [ ["godot_color *", "p_self"], ["const godot_real", "g"] ] }, - "godot_color_get_b": { + { + "name": "godot_color_get_b", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_set_b": { + { + "name": "godot_color_set_b", "return_type": "void", "arguments": [ ["godot_color *", "p_self"], ["const godot_real", "b"] ] }, - "godot_color_get_a": { + { + "name": "godot_color_get_a", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_set_a": { + { + "name": "godot_color_set_a", "return_type": "void", "arguments": [ ["godot_color *", "p_self"], ["const godot_real", "a"] ] }, - "godot_color_get_h": { + { + "name": "godot_color_get_h", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_get_s": { + { + "name": "godot_color_get_s", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_get_v": { + { + "name": "godot_color_get_v", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_as_string": { + { + "name": "godot_color_as_string", "return_type": "godot_string", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_to_rgba32": { + { + "name": "godot_color_to_rgba32", "return_type": "godot_int", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_to_argb32": { + { + "name": "godot_color_to_argb32", "return_type": "godot_int", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_gray": { + { + "name": "godot_color_gray", "return_type": "godot_real", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_inverted": { + { + "name": "godot_color_inverted", "return_type": "godot_color", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_contrasted": { + { + "name": "godot_color_contrasted", "return_type": "godot_color", "arguments": [ ["const godot_color *", "p_self"] ] }, - "godot_color_linear_interpolate": { + { + "name": "godot_color_linear_interpolate", "return_type": "godot_color", "arguments": [ ["const godot_color *", "p_self"], @@ -134,35 +154,40 @@ ["const godot_real", "p_t"] ] }, - "godot_color_blend": { + { + "name": "godot_color_blend", "return_type": "godot_color", "arguments": [ ["const godot_color *", "p_self"], ["const godot_color *", "p_over"] ] }, - "godot_color_to_html": { + { + "name": "godot_color_to_html", "return_type": "godot_string", "arguments": [ ["const godot_color *", "p_self"], ["const godot_bool", "p_with_alpha"] ] }, - "godot_color_operator_equal": { + { + "name": "godot_color_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_color *", "p_self"], ["const godot_color *", "p_b"] ] }, - "godot_color_operator_less": { + { + "name": "godot_color_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_color *", "p_self"], ["const godot_color *", "p_b"] ] }, - "godot_vector2_new": { + { + "name": "godot_vector2_new", "return_type": "void", "arguments": [ ["godot_vector2 *", "r_dest"], @@ -170,71 +195,82 @@ ["const godot_real", "p_y"] ] }, - "godot_vector2_as_string": { + { + "name": "godot_vector2_as_string", "return_type": "godot_string", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_normalized": { + { + "name": "godot_vector2_normalized", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_length": { + { + "name": "godot_vector2_length", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_angle": { + { + "name": "godot_vector2_angle", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_length_squared": { + { + "name": "godot_vector2_length_squared", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_is_normalized": { + { + "name": "godot_vector2_is_normalized", "return_type": "godot_bool", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_distance_to": { + { + "name": "godot_vector2_distance_to", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_to"] ] }, - "godot_vector2_distance_squared_to": { + { + "name": "godot_vector2_distance_squared_to", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_to"] ] }, - "godot_vector2_angle_to": { + { + "name": "godot_vector2_angle_to", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_to"] ] }, - "godot_vector2_angle_to_point": { + { + "name": "godot_vector2_angle_to_point", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_to"] ] }, - "godot_vector2_linear_interpolate": { + { + "name": "godot_vector2_linear_interpolate", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], @@ -242,7 +278,8 @@ ["const godot_real", "p_t"] ] }, - "godot_vector2_cubic_interpolate": { + { + "name": "godot_vector2_cubic_interpolate", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], @@ -252,168 +289,193 @@ ["const godot_real", "p_t"] ] }, - "godot_vector2_rotated": { + { + "name": "godot_vector2_rotated", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_real", "p_phi"] ] }, - "godot_vector2_tangent": { + { + "name": "godot_vector2_tangent", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_floor": { + { + "name": "godot_vector2_floor", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_snapped": { + { + "name": "godot_vector2_snapped", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_by"] ] }, - "godot_vector2_aspect": { + { + "name": "godot_vector2_aspect", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_dot": { + { + "name": "godot_vector2_dot", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_with"] ] }, - "godot_vector2_slide": { + { + "name": "godot_vector2_slide", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_n"] ] }, - "godot_vector2_bounce": { + { + "name": "godot_vector2_bounce", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_n"] ] }, - "godot_vector2_reflect": { + { + "name": "godot_vector2_reflect", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_n"] ] }, - "godot_vector2_abs": { + { + "name": "godot_vector2_abs", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_clamped": { + { + "name": "godot_vector2_clamped", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_real", "p_length"] ] }, - "godot_vector2_operator_add": { + { + "name": "godot_vector2_operator_add", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_substract": { + { + "name": "godot_vector2_operator_substract", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_multiply_vector": { + { + "name": "godot_vector2_operator_multiply_vector", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_multiply_scalar": { + { + "name": "godot_vector2_operator_multiply_scalar", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_vector2_operator_divide_vector": { + { + "name": "godot_vector2_operator_divide_vector", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_divide_scalar": { + { + "name": "godot_vector2_operator_divide_scalar", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_vector2_operator_equal": { + { + "name": "godot_vector2_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_less": { + { + "name": "godot_vector2_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_vector2 *", "p_self"], ["const godot_vector2 *", "p_b"] ] }, - "godot_vector2_operator_neg": { + { + "name": "godot_vector2_operator_neg", "return_type": "godot_vector2", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_set_x": { + { + "name": "godot_vector2_set_x", "return_type": "void", "arguments": [ ["godot_vector2 *", "p_self"], ["const godot_real", "p_x"] ] }, - "godot_vector2_set_y": { + { + "name": "godot_vector2_set_y", "return_type": "void", "arguments": [ ["godot_vector2 *", "p_self"], ["const godot_real", "p_y"] ] }, - "godot_vector2_get_x": { + { + "name": "godot_vector2_get_x", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_vector2_get_y": { + { + "name": "godot_vector2_get_y", "return_type": "godot_real", "arguments": [ ["const godot_vector2 *", "p_self"] ] }, - "godot_quat_new": { + { + "name": "godot_quat_new", "return_type": "void", "arguments": [ ["godot_quat *", "r_dest"], @@ -423,7 +485,8 @@ ["const godot_real", "p_w"] ] }, - "godot_quat_new_with_axis_angle": { + { + "name": "godot_quat_new_with_axis_angle", "return_type": "void", "arguments": [ ["godot_quat *", "r_dest"], @@ -431,109 +494,126 @@ ["const godot_real", "p_angle"] ] }, - "godot_quat_get_x": { + { + "name": "godot_quat_get_x", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_set_x": { + { + "name": "godot_quat_set_x", "return_type": "void", "arguments": [ ["godot_quat *", "p_self"], ["const godot_real", "val"] ] }, - "godot_quat_get_y": { + { + "name": "godot_quat_get_y", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_set_y": { + { + "name": "godot_quat_set_y", "return_type": "void", "arguments": [ ["godot_quat *", "p_self"], ["const godot_real", "val"] ] }, - "godot_quat_get_z": { + { + "name": "godot_quat_get_z", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_set_z": { + { + "name": "godot_quat_set_z", "return_type": "void", "arguments": [ ["godot_quat *", "p_self"], ["const godot_real", "val"] ] }, - "godot_quat_get_w": { + { + "name": "godot_quat_get_w", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_set_w": { + { + "name": "godot_quat_set_w", "return_type": "void", "arguments": [ ["godot_quat *", "p_self"], ["const godot_real", "val"] ] }, - "godot_quat_as_string": { + { + "name": "godot_quat_as_string", "return_type": "godot_string", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_length": { + { + "name": "godot_quat_length", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_length_squared": { + { + "name": "godot_quat_length_squared", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_normalized": { + { + "name": "godot_quat_normalized", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_is_normalized": { + { + "name": "godot_quat_is_normalized", "return_type": "godot_bool", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_inverse": { + { + "name": "godot_quat_inverse", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_quat_dot": { + { + "name": "godot_quat_dot", "return_type": "godot_real", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_quat *", "p_b"] ] }, - "godot_quat_xform": { + { + "name": "godot_quat_xform", "return_type": "godot_vector3", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_quat_slerp": { + { + "name": "godot_quat_slerp", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], @@ -541,7 +621,8 @@ ["const godot_real", "p_t"] ] }, - "godot_quat_slerpni": { + { + "name": "godot_quat_slerpni", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], @@ -549,7 +630,8 @@ ["const godot_real", "p_t"] ] }, - "godot_quat_cubic_slerp": { + { + "name": "godot_quat_cubic_slerp", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], @@ -559,48 +641,55 @@ ["const godot_real", "p_t"] ] }, - "godot_quat_operator_multiply": { + { + "name": "godot_quat_operator_multiply", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_quat_operator_add": { + { + "name": "godot_quat_operator_add", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_quat *", "p_b"] ] }, - "godot_quat_operator_substract": { + { + "name": "godot_quat_operator_substract", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_quat *", "p_b"] ] }, - "godot_quat_operator_divide": { + { + "name": "godot_quat_operator_divide", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_quat_operator_equal": { + { + "name": "godot_quat_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_quat *", "p_self"], ["const godot_quat *", "p_b"] ] }, - "godot_quat_operator_neg": { + { + "name": "godot_quat_operator_neg", "return_type": "godot_quat", "arguments": [ ["const godot_quat *", "p_self"] ] }, - "godot_basis_new_with_rows": { + { + "name": "godot_basis_new_with_rows", "return_type": "void", "arguments": [ ["godot_basis *", "r_dest"], @@ -609,7 +698,8 @@ ["const godot_vector3 *", "p_z_axis"] ] }, - "godot_basis_new_with_axis_and_angle": { + { + "name": "godot_basis_new_with_axis_and_angle", "return_type": "void", "arguments": [ ["godot_basis *", "r_dest"], @@ -617,44 +707,51 @@ ["const godot_real", "p_phi"] ] }, - "godot_basis_new_with_euler": { + { + "name": "godot_basis_new_with_euler", "return_type": "void", "arguments": [ ["godot_basis *", "r_dest"], ["const godot_vector3 *", "p_euler"] ] }, - "godot_basis_as_string": { + { + "name": "godot_basis_as_string", "return_type": "godot_string", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_inverse": { + { + "name": "godot_basis_inverse", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_transposed": { + { + "name": "godot_basis_transposed", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_orthonormalized": { + { + "name": "godot_basis_orthonormalized", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_determinant": { + { + "name": "godot_basis_determinant", "return_type": "godot_real", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_rotated": { + { + "name": "godot_basis_rotated", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], @@ -662,94 +759,108 @@ ["const godot_real", "p_phi"] ] }, - "godot_basis_scaled": { + { + "name": "godot_basis_scaled", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_scale"] ] }, - "godot_basis_get_scale": { + { + "name": "godot_basis_get_scale", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_get_euler": { + { + "name": "godot_basis_get_euler", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_tdotx": { + { + "name": "godot_basis_tdotx", "return_type": "godot_real", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_with"] ] }, - "godot_basis_tdoty": { + { + "name": "godot_basis_tdoty", "return_type": "godot_real", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_with"] ] }, - "godot_basis_tdotz": { + { + "name": "godot_basis_tdotz", "return_type": "godot_real", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_with"] ] }, - "godot_basis_xform": { + { + "name": "godot_basis_xform", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_basis_xform_inv": { + { + "name": "godot_basis_xform_inv", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_basis_get_orthogonal_index": { + { + "name": "godot_basis_get_orthogonal_index", "return_type": "godot_int", "arguments": [ ["const godot_basis *", "p_self"] ] }, - "godot_basis_new": { + { + "name": "godot_basis_new", "return_type": "void", "arguments": [ ["godot_basis *", "r_dest"] ] }, - "godot_basis_new_with_euler_quat": { + { + "name": "godot_basis_new_with_euler_quat", "return_type": "void", "arguments": [ ["godot_basis *", "r_dest"], ["const godot_quat *", "p_euler"] ] }, - "godot_basis_get_elements": { + { + "name": "godot_basis_get_elements", "return_type": "void", "arguments": [ ["godot_basis *", "p_self"], ["godot_vector3 *", "p_elements"] ] }, - "godot_basis_get_axis": { + { + "name": "godot_basis_get_axis", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_int", "p_axis"] ] }, - "godot_basis_set_axis": { + { + "name": "godot_basis_set_axis", "return_type": "void", "arguments": [ ["godot_basis *", "p_self"], @@ -757,14 +868,16 @@ ["const godot_vector3 *", "p_value"] ] }, - "godot_basis_get_row": { + { + "name": "godot_basis_get_row", "return_type": "godot_vector3", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_int", "p_row"] ] }, - "godot_basis_set_row": { + { + "name": "godot_basis_set_row", "return_type": "void", "arguments": [ ["godot_basis *", "p_self"], @@ -772,42 +885,48 @@ ["const godot_vector3 *", "p_value"] ] }, - "godot_basis_operator_equal": { + { + "name": "godot_basis_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_basis *", "p_b"] ] }, - "godot_basis_operator_add": { + { + "name": "godot_basis_operator_add", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_basis *", "p_b"] ] }, - "godot_basis_operator_substract": { + { + "name": "godot_basis_operator_substract", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_basis *", "p_b"] ] }, - "godot_basis_operator_multiply_vector": { + { + "name": "godot_basis_operator_multiply_vector", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_basis *", "p_b"] ] }, - "godot_basis_operator_multiply_scalar": { + { + "name": "godot_basis_operator_multiply_scalar", "return_type": "godot_basis", "arguments": [ ["const godot_basis *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_vector3_new": { + { + "name": "godot_vector3_new", "return_type": "void", "arguments": [ ["godot_vector3 *", "r_dest"], @@ -816,62 +935,72 @@ ["const godot_real", "p_z"] ] }, - "godot_vector3_as_string": { + { + "name": "godot_vector3_as_string", "return_type": "godot_string", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_min_axis": { + { + "name": "godot_vector3_min_axis", "return_type": "godot_int", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_max_axis": { + { + "name": "godot_vector3_max_axis", "return_type": "godot_int", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_length": { + { + "name": "godot_vector3_length", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_length_squared": { + { + "name": "godot_vector3_length_squared", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_is_normalized": { + { + "name": "godot_vector3_is_normalized", "return_type": "godot_bool", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_normalized": { + { + "name": "godot_vector3_normalized", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_inverse": { + { + "name": "godot_vector3_inverse", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_snapped": { + { + "name": "godot_vector3_snapped", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_by"] ] }, - "godot_vector3_rotated": { + { + "name": "godot_vector3_rotated", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], @@ -879,7 +1008,8 @@ ["const godot_real", "p_phi"] ] }, - "godot_vector3_linear_interpolate": { + { + "name": "godot_vector3_linear_interpolate", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], @@ -887,7 +1017,8 @@ ["const godot_real", "p_t"] ] }, - "godot_vector3_cubic_interpolate": { + { + "name": "godot_vector3_cubic_interpolate", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], @@ -897,156 +1028,179 @@ ["const godot_real", "p_t"] ] }, - "godot_vector3_dot": { + { + "name": "godot_vector3_dot", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_cross": { + { + "name": "godot_vector3_cross", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_outer": { + { + "name": "godot_vector3_outer", "return_type": "godot_basis", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_to_diagonal_matrix": { + { + "name": "godot_vector3_to_diagonal_matrix", "return_type": "godot_basis", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_abs": { + { + "name": "godot_vector3_abs", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_floor": { + { + "name": "godot_vector3_floor", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_ceil": { + { + "name": "godot_vector3_ceil", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_distance_to": { + { + "name": "godot_vector3_distance_to", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_distance_squared_to": { + { + "name": "godot_vector3_distance_squared_to", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_angle_to": { + { + "name": "godot_vector3_angle_to", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_to"] ] }, - "godot_vector3_slide": { + { + "name": "godot_vector3_slide", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_n"] ] }, - "godot_vector3_bounce": { + { + "name": "godot_vector3_bounce", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_n"] ] }, - "godot_vector3_reflect": { + { + "name": "godot_vector3_reflect", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_n"] ] }, - "godot_vector3_operator_add": { + { + "name": "godot_vector3_operator_add", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_substract": { + { + "name": "godot_vector3_operator_substract", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_multiply_vector": { + { + "name": "godot_vector3_operator_multiply_vector", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_multiply_scalar": { + { + "name": "godot_vector3_operator_multiply_scalar", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_vector3_operator_divide_vector": { + { + "name": "godot_vector3_operator_divide_vector", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_divide_scalar": { + { + "name": "godot_vector3_operator_divide_scalar", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_real", "p_b"] ] }, - "godot_vector3_operator_equal": { + { + "name": "godot_vector3_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_less": { + { + "name": "godot_vector3_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3 *", "p_b"] ] }, - "godot_vector3_operator_neg": { + { + "name": "godot_vector3_operator_neg", "return_type": "godot_vector3", "arguments": [ ["const godot_vector3 *", "p_self"] ] }, - "godot_vector3_set_axis": { + { + "name": "godot_vector3_set_axis", "return_type": "void", "arguments": [ ["godot_vector3 *", "p_self"], @@ -1054,48 +1208,55 @@ ["const godot_real", "p_val"] ] }, - "godot_vector3_get_axis": { + { + "name": "godot_vector3_get_axis", "return_type": "godot_real", "arguments": [ ["const godot_vector3 *", "p_self"], ["const godot_vector3_axis", "p_axis"] ] }, - "godot_pool_byte_array_new": { + { + "name": "godot_pool_byte_array_new", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "r_dest"] ] }, - "godot_pool_byte_array_new_copy": { + { + "name": "godot_pool_byte_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "r_dest"], ["const godot_pool_byte_array *", "p_src"] ] }, - "godot_pool_byte_array_new_with_array": { + { + "name": "godot_pool_byte_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_byte_array_append": { + { + "name": "godot_pool_byte_array_append", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], ["const uint8_t", "p_data"] ] }, - "godot_pool_byte_array_append_array": { + { + "name": "godot_pool_byte_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], ["const godot_pool_byte_array *", "p_array"] ] }, - "godot_pool_byte_array_insert": { + { + "name": "godot_pool_byte_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_byte_array *", "p_self"], @@ -1103,34 +1264,39 @@ ["const uint8_t", "p_data"] ] }, - "godot_pool_byte_array_invert": { + { + "name": "godot_pool_byte_array_invert", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"] ] }, - "godot_pool_byte_array_push_back": { + { + "name": "godot_pool_byte_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], ["const uint8_t", "p_data"] ] }, - "godot_pool_byte_array_remove": { + { + "name": "godot_pool_byte_array_remove", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_byte_array_resize": { + { + "name": "godot_pool_byte_array_resize", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_byte_array_set": { + { + "name": "godot_pool_byte_array_set", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"], @@ -1138,60 +1304,69 @@ ["const uint8_t", "p_data"] ] }, - "godot_pool_byte_array_get": { + { + "name": "godot_pool_byte_array_get", "return_type": "uint8_t", "arguments": [ ["const godot_pool_byte_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_byte_array_size": { + { + "name": "godot_pool_byte_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_byte_array *", "p_self"] ] }, - "godot_pool_byte_array_destroy": { + { + "name": "godot_pool_byte_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_byte_array *", "p_self"] ] }, - "godot_pool_int_array_new": { + { + "name": "godot_pool_int_array_new", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "r_dest"] ] }, - "godot_pool_int_array_new_copy": { + { + "name": "godot_pool_int_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "r_dest"], ["const godot_pool_int_array *", "p_src"] ] }, - "godot_pool_int_array_new_with_array": { + { + "name": "godot_pool_int_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_int_array_append": { + { + "name": "godot_pool_int_array_append", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], ["const godot_int", "p_data"] ] }, - "godot_pool_int_array_append_array": { + { + "name": "godot_pool_int_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], ["const godot_pool_int_array *", "p_array"] ] }, - "godot_pool_int_array_insert": { + { + "name": "godot_pool_int_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_int_array *", "p_self"], @@ -1199,34 +1374,39 @@ ["const godot_int", "p_data"] ] }, - "godot_pool_int_array_invert": { + { + "name": "godot_pool_int_array_invert", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"] ] }, - "godot_pool_int_array_push_back": { + { + "name": "godot_pool_int_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], ["const godot_int", "p_data"] ] }, - "godot_pool_int_array_remove": { + { + "name": "godot_pool_int_array_remove", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_int_array_resize": { + { + "name": "godot_pool_int_array_resize", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_int_array_set": { + { + "name": "godot_pool_int_array_set", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"], @@ -1234,60 +1414,69 @@ ["const godot_int", "p_data"] ] }, - "godot_pool_int_array_get": { + { + "name": "godot_pool_int_array_get", "return_type": "godot_int", "arguments": [ ["const godot_pool_int_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_int_array_size": { + { + "name": "godot_pool_int_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_int_array *", "p_self"] ] }, - "godot_pool_int_array_destroy": { + { + "name": "godot_pool_int_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_int_array *", "p_self"] ] }, - "godot_pool_real_array_new": { + { + "name": "godot_pool_real_array_new", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "r_dest"] ] }, - "godot_pool_real_array_new_copy": { + { + "name": "godot_pool_real_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "r_dest"], ["const godot_pool_real_array *", "p_src"] ] }, - "godot_pool_real_array_new_with_array": { + { + "name": "godot_pool_real_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_real_array_append": { + { + "name": "godot_pool_real_array_append", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], ["const godot_real", "p_data"] ] }, - "godot_pool_real_array_append_array": { + { + "name": "godot_pool_real_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], ["const godot_pool_real_array *", "p_array"] ] }, - "godot_pool_real_array_insert": { + { + "name": "godot_pool_real_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_real_array *", "p_self"], @@ -1295,34 +1484,39 @@ ["const godot_real", "p_data"] ] }, - "godot_pool_real_array_invert": { + { + "name": "godot_pool_real_array_invert", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"] ] }, - "godot_pool_real_array_push_back": { + { + "name": "godot_pool_real_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], ["const godot_real", "p_data"] ] }, - "godot_pool_real_array_remove": { + { + "name": "godot_pool_real_array_remove", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_real_array_resize": { + { + "name": "godot_pool_real_array_resize", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_real_array_set": { + { + "name": "godot_pool_real_array_set", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"], @@ -1330,60 +1524,69 @@ ["const godot_real", "p_data"] ] }, - "godot_pool_real_array_get": { + { + "name": "godot_pool_real_array_get", "return_type": "godot_real", "arguments": [ ["const godot_pool_real_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_real_array_size": { + { + "name": "godot_pool_real_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_real_array *", "p_self"] ] }, - "godot_pool_real_array_destroy": { + { + "name": "godot_pool_real_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_real_array *", "p_self"] ] }, - "godot_pool_string_array_new": { + { + "name": "godot_pool_string_array_new", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "r_dest"] ] }, - "godot_pool_string_array_new_copy": { + { + "name": "godot_pool_string_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "r_dest"], ["const godot_pool_string_array *", "p_src"] ] }, - "godot_pool_string_array_new_with_array": { + { + "name": "godot_pool_string_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_string_array_append": { + { + "name": "godot_pool_string_array_append", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], ["const godot_string *", "p_data"] ] }, - "godot_pool_string_array_append_array": { + { + "name": "godot_pool_string_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], ["const godot_pool_string_array *", "p_array"] ] }, - "godot_pool_string_array_insert": { + { + "name": "godot_pool_string_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_string_array *", "p_self"], @@ -1391,34 +1594,39 @@ ["const godot_string *", "p_data"] ] }, - "godot_pool_string_array_invert": { + { + "name": "godot_pool_string_array_invert", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"] ] }, - "godot_pool_string_array_push_back": { + { + "name": "godot_pool_string_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], ["const godot_string *", "p_data"] ] }, - "godot_pool_string_array_remove": { + { + "name": "godot_pool_string_array_remove", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_string_array_resize": { + { + "name": "godot_pool_string_array_resize", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_string_array_set": { + { + "name": "godot_pool_string_array_set", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"], @@ -1426,60 +1634,69 @@ ["const godot_string *", "p_data"] ] }, - "godot_pool_string_array_get": { + { + "name": "godot_pool_string_array_get", "return_type": "godot_string", "arguments": [ ["const godot_pool_string_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_string_array_size": { + { + "name": "godot_pool_string_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_string_array *", "p_self"] ] }, - "godot_pool_string_array_destroy": { + { + "name": "godot_pool_string_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_string_array *", "p_self"] ] }, - "godot_pool_vector2_array_new": { + { + "name": "godot_pool_vector2_array_new", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "r_dest"] ] }, - "godot_pool_vector2_array_new_copy": { + { + "name": "godot_pool_vector2_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "r_dest"], ["const godot_pool_vector2_array *", "p_src"] ] }, - "godot_pool_vector2_array_new_with_array": { + { + "name": "godot_pool_vector2_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_vector2_array_append": { + { + "name": "godot_pool_vector2_array_append", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], ["const godot_vector2 *", "p_data"] ] }, - "godot_pool_vector2_array_append_array": { + { + "name": "godot_pool_vector2_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], ["const godot_pool_vector2_array *", "p_array"] ] }, - "godot_pool_vector2_array_insert": { + { + "name": "godot_pool_vector2_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_vector2_array *", "p_self"], @@ -1487,34 +1704,39 @@ ["const godot_vector2 *", "p_data"] ] }, - "godot_pool_vector2_array_invert": { + { + "name": "godot_pool_vector2_array_invert", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"] ] }, - "godot_pool_vector2_array_push_back": { + { + "name": "godot_pool_vector2_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], ["const godot_vector2 *", "p_data"] ] }, - "godot_pool_vector2_array_remove": { + { + "name": "godot_pool_vector2_array_remove", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_vector2_array_resize": { + { + "name": "godot_pool_vector2_array_resize", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_vector2_array_set": { + { + "name": "godot_pool_vector2_array_set", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"], @@ -1522,60 +1744,69 @@ ["const godot_vector2 *", "p_data"] ] }, - "godot_pool_vector2_array_get": { + { + "name": "godot_pool_vector2_array_get", "return_type": "godot_vector2", "arguments": [ ["const godot_pool_vector2_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_vector2_array_size": { + { + "name": "godot_pool_vector2_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_vector2_array *", "p_self"] ] }, - "godot_pool_vector2_array_destroy": { + { + "name": "godot_pool_vector2_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_vector2_array *", "p_self"] ] }, - "godot_pool_vector3_array_new": { + { + "name": "godot_pool_vector3_array_new", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "r_dest"] ] }, - "godot_pool_vector3_array_new_copy": { + { + "name": "godot_pool_vector3_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "r_dest"], ["const godot_pool_vector3_array *", "p_src"] ] }, - "godot_pool_vector3_array_new_with_array": { + { + "name": "godot_pool_vector3_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_vector3_array_append": { + { + "name": "godot_pool_vector3_array_append", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], ["const godot_vector3 *", "p_data"] ] }, - "godot_pool_vector3_array_append_array": { + { + "name": "godot_pool_vector3_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], ["const godot_pool_vector3_array *", "p_array"] ] }, - "godot_pool_vector3_array_insert": { + { + "name": "godot_pool_vector3_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_vector3_array *", "p_self"], @@ -1583,34 +1814,39 @@ ["const godot_vector3 *", "p_data"] ] }, - "godot_pool_vector3_array_invert": { + { + "name": "godot_pool_vector3_array_invert", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"] ] }, - "godot_pool_vector3_array_push_back": { + { + "name": "godot_pool_vector3_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], ["const godot_vector3 *", "p_data"] ] }, - "godot_pool_vector3_array_remove": { + { + "name": "godot_pool_vector3_array_remove", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_vector3_array_resize": { + { + "name": "godot_pool_vector3_array_resize", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_vector3_array_set": { + { + "name": "godot_pool_vector3_array_set", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"], @@ -1618,60 +1854,69 @@ ["const godot_vector3 *", "p_data"] ] }, - "godot_pool_vector3_array_get": { + { + "name": "godot_pool_vector3_array_get", "return_type": "godot_vector3", "arguments": [ ["const godot_pool_vector3_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_vector3_array_size": { + { + "name": "godot_pool_vector3_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_vector3_array *", "p_self"] ] }, - "godot_pool_vector3_array_destroy": { + { + "name": "godot_pool_vector3_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_vector3_array *", "p_self"] ] }, - "godot_pool_color_array_new": { + { + "name": "godot_pool_color_array_new", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "r_dest"] ] }, - "godot_pool_color_array_new_copy": { + { + "name": "godot_pool_color_array_new_copy", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "r_dest"], ["const godot_pool_color_array *", "p_src"] ] }, - "godot_pool_color_array_new_with_array": { + { + "name": "godot_pool_color_array_new_with_array", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "r_dest"], ["const godot_array *", "p_a"] ] }, - "godot_pool_color_array_append": { + { + "name": "godot_pool_color_array_append", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], ["const godot_color *", "p_data"] ] }, - "godot_pool_color_array_append_array": { + { + "name": "godot_pool_color_array_append_array", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], ["const godot_pool_color_array *", "p_array"] ] }, - "godot_pool_color_array_insert": { + { + "name": "godot_pool_color_array_insert", "return_type": "godot_error", "arguments": [ ["godot_pool_color_array *", "p_self"], @@ -1679,34 +1924,39 @@ ["const godot_color *", "p_data"] ] }, - "godot_pool_color_array_invert": { + { + "name": "godot_pool_color_array_invert", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"] ] }, - "godot_pool_color_array_push_back": { + { + "name": "godot_pool_color_array_push_back", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], ["const godot_color *", "p_data"] ] }, - "godot_pool_color_array_remove": { + { + "name": "godot_pool_color_array_remove", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_color_array_resize": { + { + "name": "godot_pool_color_array_resize", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_pool_color_array_set": { + { + "name": "godot_pool_color_array_set", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"], @@ -1714,88 +1964,101 @@ ["const godot_color *", "p_data"] ] }, - "godot_pool_color_array_get": { + { + "name": "godot_pool_color_array_get", "return_type": "godot_color", "arguments": [ ["const godot_pool_color_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_pool_color_array_size": { + { + "name": "godot_pool_color_array_size", "return_type": "godot_int", "arguments": [ ["const godot_pool_color_array *", "p_self"] ] }, - "godot_pool_color_array_destroy": { + { + "name": "godot_pool_color_array_destroy", "return_type": "void", "arguments": [ ["godot_pool_color_array *", "p_self"] ] }, - "godot_array_new": { + { + "name": "godot_array_new", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"] ] }, - "godot_array_new_copy": { + { + "name": "godot_array_new_copy", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_array *", "p_src"] ] }, - "godot_array_new_pool_color_array": { + { + "name": "godot_array_new_pool_color_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_color_array *", "p_pca"] ] }, - "godot_array_new_pool_vector3_array": { + { + "name": "godot_array_new_pool_vector3_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_vector3_array *", "p_pv3a"] ] }, - "godot_array_new_pool_vector2_array": { + { + "name": "godot_array_new_pool_vector2_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_vector2_array *", "p_pv2a"] ] }, - "godot_array_new_pool_string_array": { + { + "name": "godot_array_new_pool_string_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_string_array *", "p_psa"] ] }, - "godot_array_new_pool_real_array": { + { + "name": "godot_array_new_pool_real_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_real_array *", "p_pra"] ] }, - "godot_array_new_pool_int_array": { + { + "name": "godot_array_new_pool_int_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_int_array *", "p_pia"] ] }, - "godot_array_new_pool_byte_array": { + { + "name": "godot_array_new_pool_byte_array", "return_type": "void", "arguments": [ ["godot_array *", "r_dest"], ["const godot_pool_byte_array *", "p_pba"] ] }, - "godot_array_set": { + { + "name": "godot_array_set", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], @@ -1803,66 +2066,76 @@ ["const godot_variant *", "p_value"] ] }, - "godot_array_get": { + { + "name": "godot_array_get", "return_type": "godot_variant", "arguments": [ ["const godot_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_array_operator_index": { + { + "name": "godot_array_operator_index", "return_type": "godot_variant *", "arguments": [ ["godot_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_array_append": { + { + "name": "godot_array_append", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_clear": { + { + "name": "godot_array_clear", "return_type": "void", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_array_count": { + { + "name": "godot_array_count", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_empty": { + { + "name": "godot_array_empty", "return_type": "godot_bool", "arguments": [ ["const godot_array *", "p_self"] ] }, - "godot_array_erase": { + { + "name": "godot_array_erase", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_front": { + { + "name": "godot_array_front", "return_type": "godot_variant", "arguments": [ ["const godot_array *", "p_self"] ] }, - "godot_array_back": { + { + "name": "godot_array_back", "return_type": "godot_variant", "arguments": [ ["const godot_array *", "p_self"] ] }, - "godot_array_find": { + { + "name": "godot_array_find", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"], @@ -1870,27 +2143,31 @@ ["const godot_int", "p_from"] ] }, - "godot_array_find_last": { + { + "name": "godot_array_find_last", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"], ["const godot_variant *", "p_what"] ] }, - "godot_array_has": { + { + "name": "godot_array_has", "return_type": "godot_bool", "arguments": [ ["const godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_hash": { + { + "name": "godot_array_hash", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"] ] }, - "godot_array_insert": { + { + "name": "godot_array_insert", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], @@ -1898,53 +2175,61 @@ ["const godot_variant *", "p_value"] ] }, - "godot_array_invert": { + { + "name": "godot_array_invert", "return_type": "void", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_array_pop_back": { + { + "name": "godot_array_pop_back", "return_type": "godot_variant", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_array_pop_front": { + { + "name": "godot_array_pop_front", "return_type": "godot_variant", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_array_push_back": { + { + "name": "godot_array_push_back", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_push_front": { + { + "name": "godot_array_push_front", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_variant *", "p_value"] ] }, - "godot_array_remove": { + { + "name": "godot_array_remove", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_array_resize": { + { + "name": "godot_array_resize", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], ["const godot_int", "p_size"] ] }, - "godot_array_rfind": { + { + "name": "godot_array_rfind", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"], @@ -1952,19 +2237,22 @@ ["const godot_int", "p_from"] ] }, - "godot_array_size": { + { + "name": "godot_array_size", "return_type": "godot_int", "arguments": [ ["const godot_array *", "p_self"] ] }, - "godot_array_sort": { + { + "name": "godot_array_sort", "return_type": "void", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_array_sort_custom": { + { + "name": "godot_array_sort_custom", "return_type": "void", "arguments": [ ["godot_array *", "p_self"], @@ -1972,96 +2260,111 @@ ["const godot_string *", "p_func"] ] }, - "godot_array_destroy": { + { + "name": "godot_array_destroy", "return_type": "void", "arguments": [ ["godot_array *", "p_self"] ] }, - "godot_dictionary_new": { + { + "name": "godot_dictionary_new", "return_type": "void", "arguments": [ ["godot_dictionary *", "r_dest"] ] }, - "godot_dictionary_new_copy": { + { + "name": "godot_dictionary_new_copy", "return_type": "void", "arguments": [ ["godot_dictionary *", "r_dest"], ["const godot_dictionary *", "p_src"] ] }, - "godot_dictionary_destroy": { + { + "name": "godot_dictionary_destroy", "return_type": "void", "arguments": [ ["godot_dictionary *", "p_self"] ] }, - "godot_dictionary_size": { + { + "name": "godot_dictionary_size", "return_type": "godot_int", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_dictionary_empty": { + { + "name": "godot_dictionary_empty", "return_type": "godot_bool", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_dictionary_clear": { + { + "name": "godot_dictionary_clear", "return_type": "void", "arguments": [ ["godot_dictionary *", "p_self"] ] }, - "godot_dictionary_has": { + { + "name": "godot_dictionary_has", "return_type": "godot_bool", "arguments": [ ["const godot_dictionary *", "p_self"], ["const godot_variant *", "p_key"] ] }, - "godot_dictionary_has_all": { + { + "name": "godot_dictionary_has_all", "return_type": "godot_bool", "arguments": [ ["const godot_dictionary *", "p_self"], ["const godot_array *", "p_keys"] ] }, - "godot_dictionary_erase": { + { + "name": "godot_dictionary_erase", "return_type": "void", "arguments": [ ["godot_dictionary *", "p_self"], ["const godot_variant *", "p_key"] ] }, - "godot_dictionary_hash": { + { + "name": "godot_dictionary_hash", "return_type": "godot_int", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_dictionary_keys": { + { + "name": "godot_dictionary_keys", "return_type": "godot_array", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_dictionary_values": { + { + "name": "godot_dictionary_values", "return_type": "godot_array", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_dictionary_get": { + { + "name": "godot_dictionary_get", "return_type": "godot_variant", "arguments": [ ["const godot_dictionary *", "p_self"], ["const godot_variant *", "p_key"] ] }, - "godot_dictionary_set": { + { + "name": "godot_dictionary_set", "return_type": "void", "arguments": [ ["godot_dictionary *", "p_self"], @@ -2069,111 +2372,128 @@ ["const godot_variant *", "p_value"] ] }, - "godot_dictionary_operator_index": { + { + "name": "godot_dictionary_operator_index", "return_type": "godot_variant *", "arguments": [ ["godot_dictionary *", "p_self"], ["const godot_variant *", "p_key"] ] }, - "godot_dictionary_next": { + { + "name": "godot_dictionary_next", "return_type": "godot_variant *", "arguments": [ ["const godot_dictionary *", "p_self"], ["const godot_variant *", "p_key"] ] }, - "godot_dictionary_operator_equal": { + { + "name": "godot_dictionary_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_dictionary *", "p_self"], ["const godot_dictionary *", "p_b"] ] }, - "godot_dictionary_to_json": { + { + "name": "godot_dictionary_to_json", "return_type": "godot_string", "arguments": [ ["const godot_dictionary *", "p_self"] ] }, - "godot_node_path_new": { + { + "name": "godot_node_path_new", "return_type": "void", "arguments": [ ["godot_node_path *", "r_dest"], ["const godot_string *", "p_from"] ] }, - "godot_node_path_new_copy": { + { + "name": "godot_node_path_new_copy", "return_type": "void", "arguments": [ ["godot_node_path *", "r_dest"], ["const godot_node_path *", "p_src"] ] }, - "godot_node_path_destroy": { + { + "name": "godot_node_path_destroy", "return_type": "void", "arguments": [ ["godot_node_path *", "p_self"] ] }, - "godot_node_path_as_string": { + { + "name": "godot_node_path_as_string", "return_type": "godot_string", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_is_absolute": { + { + "name": "godot_node_path_is_absolute", "return_type": "godot_bool", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_get_name_count": { + { + "name": "godot_node_path_get_name_count", "return_type": "godot_int", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_get_name": { + { + "name": "godot_node_path_get_name", "return_type": "godot_string", "arguments": [ ["const godot_node_path *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_node_path_get_subname_count": { + { + "name": "godot_node_path_get_subname_count", "return_type": "godot_int", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_get_subname": { + { + "name": "godot_node_path_get_subname", "return_type": "godot_string", "arguments": [ ["const godot_node_path *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_node_path_get_property": { + { + "name": "godot_node_path_get_property", "return_type": "godot_string", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_is_empty": { + { + "name": "godot_node_path_is_empty", "return_type": "godot_bool", "arguments": [ ["const godot_node_path *", "p_self"] ] }, - "godot_node_path_operator_equal": { + { + "name": "godot_node_path_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_node_path *", "p_self"], ["const godot_node_path *", "p_b"] ] }, - "godot_plane_new_with_reals": { + { + "name": "godot_plane_new_with_reals", "return_type": "void", "arguments": [ ["godot_plane *", "r_dest"], @@ -2183,7 +2503,8 @@ ["const godot_real", "p_d"] ] }, - "godot_plane_new_with_vectors": { + { + "name": "godot_plane_new_with_vectors", "return_type": "void", "arguments": [ ["godot_plane *", "r_dest"], @@ -2192,7 +2513,8 @@ ["const godot_vector3 *", "p_v3"] ] }, - "godot_plane_new_with_normal": { + { + "name": "godot_plane_new_with_normal", "return_type": "void", "arguments": [ ["godot_plane *", "r_dest"], @@ -2200,45 +2522,52 @@ ["const godot_real", "p_d"] ] }, - "godot_plane_as_string": { + { + "name": "godot_plane_as_string", "return_type": "godot_string", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_normalized": { + { + "name": "godot_plane_normalized", "return_type": "godot_plane", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_center": { + { + "name": "godot_plane_center", "return_type": "godot_vector3", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_get_any_point": { + { + "name": "godot_plane_get_any_point", "return_type": "godot_vector3", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_is_point_over": { + { + "name": "godot_plane_is_point_over", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], ["const godot_vector3 *", "p_point"] ] }, - "godot_plane_distance_to": { + { + "name": "godot_plane_distance_to", "return_type": "godot_real", "arguments": [ ["const godot_plane *", "p_self"], ["const godot_vector3 *", "p_point"] ] }, - "godot_plane_has_point": { + { + "name": "godot_plane_has_point", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], @@ -2246,14 +2575,16 @@ ["const godot_real", "p_epsilon"] ] }, - "godot_plane_project": { + { + "name": "godot_plane_project", "return_type": "godot_vector3", "arguments": [ ["const godot_plane *", "p_self"], ["const godot_vector3 *", "p_point"] ] }, - "godot_plane_intersect_3": { + { + "name": "godot_plane_intersect_3", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], @@ -2262,7 +2593,8 @@ ["const godot_plane *", "p_c"] ] }, - "godot_plane_intersects_ray": { + { + "name": "godot_plane_intersects_ray", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], @@ -2271,7 +2603,8 @@ ["const godot_vector3 *", "p_dir"] ] }, - "godot_plane_intersects_segment": { + { + "name": "godot_plane_intersects_segment", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], @@ -2280,46 +2613,53 @@ ["const godot_vector3 *", "p_end"] ] }, - "godot_plane_operator_neg": { + { + "name": "godot_plane_operator_neg", "return_type": "godot_plane", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_operator_equal": { + { + "name": "godot_plane_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_plane *", "p_self"], ["const godot_plane *", "p_b"] ] }, - "godot_plane_set_normal": { + { + "name": "godot_plane_set_normal", "return_type": "void", "arguments": [ ["godot_plane *", "p_self"], ["const godot_vector3 *", "p_normal"] ] }, - "godot_plane_get_normal": { + { + "name": "godot_plane_get_normal", "return_type": "godot_vector3", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_get_d": { + { + "name": "godot_plane_get_d", "return_type": "godot_real", "arguments": [ ["const godot_plane *", "p_self"] ] }, - "godot_plane_set_d": { + { + "name": "godot_plane_set_d", "return_type": "void", "arguments": [ ["godot_plane *", "p_self"], ["const godot_real", "p_d"] ] }, - "godot_rect2_new_with_position_and_size": { + { + "name": "godot_rect2_new_with_position_and_size", "return_type": "void", "arguments": [ ["godot_rect2 *", "r_dest"], @@ -2327,7 +2667,8 @@ ["const godot_vector2 *", "p_size"] ] }, - "godot_rect2_new": { + { + "name": "godot_rect2_new", "return_type": "void", "arguments": [ ["godot_rect2 *", "r_dest"], @@ -2337,107 +2678,123 @@ ["const godot_real", "p_height"] ] }, - "godot_rect2_as_string": { + { + "name": "godot_rect2_as_string", "return_type": "godot_string", "arguments": [ ["const godot_rect2 *", "p_self"] ] }, - "godot_rect2_get_area": { + { + "name": "godot_rect2_get_area", "return_type": "godot_real", "arguments": [ ["const godot_rect2 *", "p_self"] ] }, - "godot_rect2_intersects": { + { + "name": "godot_rect2_intersects", "return_type": "godot_bool", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_rect2 *", "p_b"] ] }, - "godot_rect2_encloses": { + { + "name": "godot_rect2_encloses", "return_type": "godot_bool", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_rect2 *", "p_b"] ] }, - "godot_rect2_has_no_area": { + { + "name": "godot_rect2_has_no_area", "return_type": "godot_bool", "arguments": [ ["const godot_rect2 *", "p_self"] ] }, - "godot_rect2_clip": { + { + "name": "godot_rect2_clip", "return_type": "godot_rect2", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_rect2 *", "p_b"] ] }, - "godot_rect2_merge": { + { + "name": "godot_rect2_merge", "return_type": "godot_rect2", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_rect2 *", "p_b"] ] }, - "godot_rect2_has_point": { + { + "name": "godot_rect2_has_point", "return_type": "godot_bool", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_vector2 *", "p_point"] ] }, - "godot_rect2_grow": { + { + "name": "godot_rect2_grow", "return_type": "godot_rect2", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_real", "p_by"] ] }, - "godot_rect2_expand": { + { + "name": "godot_rect2_expand", "return_type": "godot_rect2", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_vector2 *", "p_to"] ] }, - "godot_rect2_operator_equal": { + { + "name": "godot_rect2_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_rect2 *", "p_self"], ["const godot_rect2 *", "p_b"] ] }, - "godot_rect2_get_position": { + { + "name": "godot_rect2_get_position", "return_type": "godot_vector2", "arguments": [ ["const godot_rect2 *", "p_self"] ] }, - "godot_rect2_get_size": { + { + "name": "godot_rect2_get_size", "return_type": "godot_vector2", "arguments": [ ["const godot_rect2 *", "p_self"] ] }, - "godot_rect2_set_position": { + { + "name": "godot_rect2_set_position", "return_type": "void", "arguments": [ ["godot_rect2 *", "p_self"], ["const godot_vector2 *", "p_pos"] ] }, - "godot_rect2_set_size": { + { + "name": "godot_rect2_set_size", "return_type": "void", "arguments": [ ["godot_rect2 *", "p_self"], ["const godot_vector2 *", "p_size"] ] }, - "godot_rect3_new": { + { + "name": "godot_rect3_new", "return_type": "void", "arguments": [ ["godot_rect3 *", "r_dest"], @@ -2445,92 +2802,106 @@ ["const godot_vector3 *", "p_size"] ] }, - "godot_rect3_get_position": { + { + "name": "godot_rect3_get_position", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_set_position": { + { + "name": "godot_rect3_set_position", "return_type": "void", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_rect3_get_size": { + { + "name": "godot_rect3_get_size", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_set_size": { + { + "name": "godot_rect3_set_size", "return_type": "void", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_rect3_as_string": { + { + "name": "godot_rect3_as_string", "return_type": "godot_string", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_area": { + { + "name": "godot_rect3_get_area", "return_type": "godot_real", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_has_no_area": { + { + "name": "godot_rect3_has_no_area", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_has_no_surface": { + { + "name": "godot_rect3_has_no_surface", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_intersects": { + { + "name": "godot_rect3_intersects", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_rect3 *", "p_with"] ] }, - "godot_rect3_encloses": { + { + "name": "godot_rect3_encloses", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_rect3 *", "p_with"] ] }, - "godot_rect3_merge": { + { + "name": "godot_rect3_merge", "return_type": "godot_rect3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_rect3 *", "p_with"] ] }, - "godot_rect3_intersection": { + { + "name": "godot_rect3_intersection", "return_type": "godot_rect3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_rect3 *", "p_with"] ] }, - "godot_rect3_intersects_plane": { + { + "name": "godot_rect3_intersects_plane", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_plane *", "p_plane"] ] }, - "godot_rect3_intersects_segment": { + { + "name": "godot_rect3_intersects_segment", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], @@ -2538,118 +2909,136 @@ ["const godot_vector3 *", "p_to"] ] }, - "godot_rect3_has_point": { + { + "name": "godot_rect3_has_point", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_vector3 *", "p_point"] ] }, - "godot_rect3_get_support": { + { + "name": "godot_rect3_get_support", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_vector3 *", "p_dir"] ] }, - "godot_rect3_get_longest_axis": { + { + "name": "godot_rect3_get_longest_axis", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_longest_axis_index": { + { + "name": "godot_rect3_get_longest_axis_index", "return_type": "godot_int", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_longest_axis_size": { + { + "name": "godot_rect3_get_longest_axis_size", "return_type": "godot_real", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_shortest_axis": { + { + "name": "godot_rect3_get_shortest_axis", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_shortest_axis_index": { + { + "name": "godot_rect3_get_shortest_axis_index", "return_type": "godot_int", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_get_shortest_axis_size": { + { + "name": "godot_rect3_get_shortest_axis_size", "return_type": "godot_real", "arguments": [ ["const godot_rect3 *", "p_self"] ] }, - "godot_rect3_expand": { + { + "name": "godot_rect3_expand", "return_type": "godot_rect3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_vector3 *", "p_to_point"] ] }, - "godot_rect3_grow": { + { + "name": "godot_rect3_grow", "return_type": "godot_rect3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_real", "p_by"] ] }, - "godot_rect3_get_endpoint": { + { + "name": "godot_rect3_get_endpoint", "return_type": "godot_vector3", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_rect3_operator_equal": { + { + "name": "godot_rect3_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_rect3 *", "p_self"], ["const godot_rect3 *", "p_b"] ] }, - "godot_rid_new": { + { + "name": "godot_rid_new", "return_type": "void", "arguments": [ ["godot_rid *", "r_dest"] ] }, - "godot_rid_get_id": { + { + "name": "godot_rid_get_id", "return_type": "godot_int", "arguments": [ ["const godot_rid *", "p_self"] ] }, - "godot_rid_new_with_resource": { + { + "name": "godot_rid_new_with_resource", "return_type": "void", "arguments": [ ["godot_rid *", "r_dest"], ["const godot_object *", "p_from"] ] }, - "godot_rid_operator_equal": { + { + "name": "godot_rid_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_rid *", "p_self"], ["const godot_rid *", "p_b"] ] }, - "godot_rid_operator_less": { + { + "name": "godot_rid_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_rid *", "p_self"], ["const godot_rid *", "p_b"] ] }, - "godot_transform_new_with_axis_origin": { + { + "name": "godot_transform_new_with_axis_origin", "return_type": "void", "arguments": [ ["godot_transform *", "r_dest"], @@ -2659,7 +3048,8 @@ ["const godot_vector3 *", "p_origin"] ] }, - "godot_transform_new": { + { + "name": "godot_transform_new", "return_type": "void", "arguments": [ ["godot_transform *", "r_dest"], @@ -2667,57 +3057,66 @@ ["const godot_vector3 *", "p_origin"] ] }, - "godot_transform_get_basis": { + { + "name": "godot_transform_get_basis", "return_type": "godot_basis", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_set_basis": { + { + "name": "godot_transform_set_basis", "return_type": "void", "arguments": [ ["godot_transform *", "p_self"], ["godot_basis *", "p_v"] ] }, - "godot_transform_get_origin": { + { + "name": "godot_transform_get_origin", "return_type": "godot_vector3", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_set_origin": { + { + "name": "godot_transform_set_origin", "return_type": "void", "arguments": [ ["godot_transform *", "p_self"], ["godot_vector3 *", "p_v"] ] }, - "godot_transform_as_string": { + { + "name": "godot_transform_as_string", "return_type": "godot_string", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_inverse": { + { + "name": "godot_transform_inverse", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_affine_inverse": { + { + "name": "godot_transform_affine_inverse", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_orthonormalized": { + { + "name": "godot_transform_orthonormalized", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"] ] }, - "godot_transform_rotated": { + { + "name": "godot_transform_rotated", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"], @@ -2725,21 +3124,24 @@ ["const godot_real", "p_phi"] ] }, - "godot_transform_scaled": { + { + "name": "godot_transform_scaled", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_vector3 *", "p_scale"] ] }, - "godot_transform_translated": { + { + "name": "godot_transform_translated", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_vector3 *", "p_ofs"] ] }, - "godot_transform_looking_at": { + { + "name": "godot_transform_looking_at", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"], @@ -2747,69 +3149,79 @@ ["const godot_vector3 *", "p_up"] ] }, - "godot_transform_xform_plane": { + { + "name": "godot_transform_xform_plane", "return_type": "godot_plane", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_plane *", "p_v"] ] }, - "godot_transform_xform_inv_plane": { + { + "name": "godot_transform_xform_inv_plane", "return_type": "godot_plane", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_plane *", "p_v"] ] }, - "godot_transform_new_identity": { + { + "name": "godot_transform_new_identity", "return_type": "void", "arguments": [ ["godot_transform *", "r_dest"] ] }, - "godot_transform_operator_equal": { + { + "name": "godot_transform_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_transform *", "p_b"] ] }, - "godot_transform_operator_multiply": { + { + "name": "godot_transform_operator_multiply", "return_type": "godot_transform", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_transform *", "p_b"] ] }, - "godot_transform_xform_vector3": { + { + "name": "godot_transform_xform_vector3", "return_type": "godot_vector3", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_transform_xform_inv_vector3": { + { + "name": "godot_transform_xform_inv_vector3", "return_type": "godot_vector3", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_vector3 *", "p_v"] ] }, - "godot_transform_xform_rect3": { + { + "name": "godot_transform_xform_rect3", "return_type": "godot_rect3", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_rect3 *", "p_v"] ] }, - "godot_transform_xform_inv_rect3": { + { + "name": "godot_transform_xform_inv_rect3", "return_type": "godot_rect3", "arguments": [ ["const godot_transform *", "p_self"], ["const godot_rect3 *", "p_v"] ] }, - "godot_transform2d_new": { + { + "name": "godot_transform2d_new", "return_type": "void", "arguments": [ ["godot_transform2d *", "r_dest"], @@ -2817,7 +3229,8 @@ ["const godot_vector2 *", "p_pos"] ] }, - "godot_transform2d_new_axis_origin": { + { + "name": "godot_transform2d_new_axis_origin", "return_type": "void", "arguments": [ ["godot_transform2d *", "r_dest"], @@ -2826,98 +3239,113 @@ ["const godot_vector2 *", "p_origin"] ] }, - "godot_transform2d_as_string": { + { + "name": "godot_transform2d_as_string", "return_type": "godot_string", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_inverse": { + { + "name": "godot_transform2d_inverse", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_affine_inverse": { + { + "name": "godot_transform2d_affine_inverse", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_get_rotation": { + { + "name": "godot_transform2d_get_rotation", "return_type": "godot_real", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_get_origin": { + { + "name": "godot_transform2d_get_origin", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_get_scale": { + { + "name": "godot_transform2d_get_scale", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_orthonormalized": { + { + "name": "godot_transform2d_orthonormalized", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"] ] }, - "godot_transform2d_rotated": { + { + "name": "godot_transform2d_rotated", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_real", "p_phi"] ] }, - "godot_transform2d_scaled": { + { + "name": "godot_transform2d_scaled", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_scale"] ] }, - "godot_transform2d_translated": { + { + "name": "godot_transform2d_translated", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_offset"] ] }, - "godot_transform2d_xform_vector2": { + { + "name": "godot_transform2d_xform_vector2", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_v"] ] }, - "godot_transform2d_xform_inv_vector2": { + { + "name": "godot_transform2d_xform_inv_vector2", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_v"] ] }, - "godot_transform2d_basis_xform_vector2": { + { + "name": "godot_transform2d_basis_xform_vector2", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_v"] ] }, - "godot_transform2d_basis_xform_inv_vector2": { + { + "name": "godot_transform2d_basis_xform_inv_vector2", "return_type": "godot_vector2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_vector2 *", "p_v"] ] }, - "godot_transform2d_interpolate_with": { + { + "name": "godot_transform2d_interpolate_with", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"], @@ -2925,411 +3353,474 @@ ["const godot_real", "p_c"] ] }, - "godot_transform2d_operator_equal": { + { + "name": "godot_transform2d_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_transform2d *", "p_b"] ] }, - "godot_transform2d_operator_multiply": { + { + "name": "godot_transform2d_operator_multiply", "return_type": "godot_transform2d", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_transform2d *", "p_b"] ] }, - "godot_transform2d_new_identity": { + { + "name": "godot_transform2d_new_identity", "return_type": "void", "arguments": [ ["godot_transform2d *", "r_dest"] ] }, - "godot_transform2d_xform_rect2": { + { + "name": "godot_transform2d_xform_rect2", "return_type": "godot_rect2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_rect2 *", "p_v"] ] }, - "godot_transform2d_xform_inv_rect2": { + { + "name": "godot_transform2d_xform_inv_rect2", "return_type": "godot_rect2", "arguments": [ ["const godot_transform2d *", "p_self"], ["const godot_rect2 *", "p_v"] ] }, - "godot_variant_get_type": { + { + "name": "godot_variant_get_type", "return_type": "godot_variant_type", "arguments": [ ["const godot_variant *", "p_v"] ] }, - "godot_variant_new_copy": { + { + "name": "godot_variant_new_copy", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_variant *", "p_src"] ] }, - "godot_variant_new_nil": { + { + "name": "godot_variant_new_nil", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"] ] }, - "godot_variant_new_bool": { + { + "name": "godot_variant_new_bool", "return_type": "void", "arguments": [ ["godot_variant *", "p_v"], ["const godot_bool", "p_b"] ] }, - "godot_variant_new_uint": { + { + "name": "godot_variant_new_uint", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const uint64_t", "p_i"] ] }, - "godot_variant_new_int": { + { + "name": "godot_variant_new_int", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const int64_t", "p_i"] ] }, - "godot_variant_new_real": { + { + "name": "godot_variant_new_real", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const double", "p_r"] ] }, - "godot_variant_new_string": { + { + "name": "godot_variant_new_string", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_string *", "p_s"] ] }, - "godot_variant_new_vector2": { + { + "name": "godot_variant_new_vector2", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_vector2 *", "p_v2"] ] }, - "godot_variant_new_rect2": { + { + "name": "godot_variant_new_rect2", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_rect2 *", "p_rect2"] ] }, - "godot_variant_new_vector3": { + { + "name": "godot_variant_new_vector3", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_vector3 *", "p_v3"] ] }, - "godot_variant_new_transform2d": { + { + "name": "godot_variant_new_transform2d", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_transform2d *", "p_t2d"] ] }, - "godot_variant_new_plane": { + { + "name": "godot_variant_new_plane", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_plane *", "p_plane"] ] }, - "godot_variant_new_quat": { + { + "name": "godot_variant_new_quat", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_quat *", "p_quat"] ] }, - "godot_variant_new_rect3": { + { + "name": "godot_variant_new_rect3", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_rect3 *", "p_rect3"] ] }, - "godot_variant_new_basis": { + { + "name": "godot_variant_new_basis", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_basis *", "p_basis"] ] }, - "godot_variant_new_transform": { + { + "name": "godot_variant_new_transform", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_transform *", "p_trans"] ] }, - "godot_variant_new_color": { + { + "name": "godot_variant_new_color", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_color *", "p_color"] ] }, - "godot_variant_new_node_path": { + { + "name": "godot_variant_new_node_path", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_node_path *", "p_np"] ] }, - "godot_variant_new_rid": { + { + "name": "godot_variant_new_rid", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_rid *", "p_rid"] ] }, - "godot_variant_new_object": { + { + "name": "godot_variant_new_object", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_object *", "p_obj"] ] }, - "godot_variant_new_dictionary": { + { + "name": "godot_variant_new_dictionary", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_dictionary *", "p_dict"] ] }, - "godot_variant_new_array": { + { + "name": "godot_variant_new_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_array *", "p_arr"] ] }, - "godot_variant_new_pool_byte_array": { + { + "name": "godot_variant_new_pool_byte_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_byte_array *", "p_pba"] ] }, - "godot_variant_new_pool_int_array": { + { + "name": "godot_variant_new_pool_int_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_int_array *", "p_pia"] ] }, - "godot_variant_new_pool_real_array": { + { + "name": "godot_variant_new_pool_real_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_real_array *", "p_pra"] ] }, - "godot_variant_new_pool_string_array": { + { + "name": "godot_variant_new_pool_string_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_string_array *", "p_psa"] ] }, - "godot_variant_new_pool_vector2_array": { + { + "name": "godot_variant_new_pool_vector2_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_vector2_array *", "p_pv2a"] ] }, - "godot_variant_new_pool_vector3_array": { + { + "name": "godot_variant_new_pool_vector3_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_vector3_array *", "p_pv3a"] ] }, - "godot_variant_new_pool_color_array": { + { + "name": "godot_variant_new_pool_color_array", "return_type": "void", "arguments": [ ["godot_variant *", "r_dest"], ["const godot_pool_color_array *", "p_pca"] ] }, - "godot_variant_as_bool": { + { + "name": "godot_variant_as_bool", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_uint": { + { + "name": "godot_variant_as_uint", "return_type": "uint64_t", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_int": { + { + "name": "godot_variant_as_int", "return_type": "int64_t", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_real": { + { + "name": "godot_variant_as_real", "return_type": "double", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_string": { + { + "name": "godot_variant_as_string", "return_type": "godot_string", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_vector2": { + { + "name": "godot_variant_as_vector2", "return_type": "godot_vector2", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_rect2": { + { + "name": "godot_variant_as_rect2", "return_type": "godot_rect2", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_vector3": { + { + "name": "godot_variant_as_vector3", "return_type": "godot_vector3", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_transform2d": { + { + "name": "godot_variant_as_transform2d", "return_type": "godot_transform2d", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_plane": { + { + "name": "godot_variant_as_plane", "return_type": "godot_plane", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_quat": { + { + "name": "godot_variant_as_quat", "return_type": "godot_quat", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_rect3": { + { + "name": "godot_variant_as_rect3", "return_type": "godot_rect3", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_basis": { + { + "name": "godot_variant_as_basis", "return_type": "godot_basis", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_transform": { + { + "name": "godot_variant_as_transform", "return_type": "godot_transform", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_color": { + { + "name": "godot_variant_as_color", "return_type": "godot_color", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_node_path": { + { + "name": "godot_variant_as_node_path", "return_type": "godot_node_path", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_rid": { + { + "name": "godot_variant_as_rid", "return_type": "godot_rid", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_object": { + { + "name": "godot_variant_as_object", "return_type": "godot_object *", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_dictionary": { + { + "name": "godot_variant_as_dictionary", "return_type": "godot_dictionary", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_array": { + { + "name": "godot_variant_as_array", "return_type": "godot_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_byte_array": { + { + "name": "godot_variant_as_pool_byte_array", "return_type": "godot_pool_byte_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_int_array": { + { + "name": "godot_variant_as_pool_int_array", "return_type": "godot_pool_int_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_real_array": { + { + "name": "godot_variant_as_pool_real_array", "return_type": "godot_pool_real_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_string_array": { + { + "name": "godot_variant_as_pool_string_array", "return_type": "godot_pool_string_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_vector2_array": { + { + "name": "godot_variant_as_pool_vector2_array", "return_type": "godot_pool_vector2_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_vector3_array": { + { + "name": "godot_variant_as_pool_vector3_array", "return_type": "godot_pool_vector3_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_as_pool_color_array": { + { + "name": "godot_variant_as_pool_color_array", "return_type": "godot_pool_color_array", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_call": { + { + "name": "godot_variant_call", "return_type": "godot_variant", "arguments": [ ["godot_variant *", "p_self"], @@ -3339,60 +3830,69 @@ ["godot_variant_call_error *", "r_error"] ] }, - "godot_variant_has_method": { + { + "name": "godot_variant_has_method", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], ["const godot_string *", "p_method"] ] }, - "godot_variant_operator_equal": { + { + "name": "godot_variant_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], ["const godot_variant *", "p_other"] ] }, - "godot_variant_operator_less": { + { + "name": "godot_variant_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], ["const godot_variant *", "p_other"] ] }, - "godot_variant_hash_compare": { + { + "name": "godot_variant_hash_compare", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], ["const godot_variant *", "p_other"] ] }, - "godot_variant_booleanize": { + { + "name": "godot_variant_booleanize", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"] ] }, - "godot_variant_destroy": { + { + "name": "godot_variant_destroy", "return_type": "void", "arguments": [ ["godot_variant *", "p_self"] ] }, - "godot_string_new": { + { + "name": "godot_string_new", "return_type": "void", "arguments": [ ["godot_string *", "r_dest"] ] }, - "godot_string_new_copy": { + { + "name": "godot_string_new_copy", "return_type": "void", "arguments": [ ["godot_string *", "r_dest"], ["const godot_string *", "p_src"] ] }, - "godot_string_new_data": { + { + "name": "godot_string_new_data", "return_type": "void", "arguments": [ ["godot_string *", "r_dest"], @@ -3400,7 +3900,8 @@ ["const int", "p_size"] ] }, - "godot_string_new_unicode_data": { + { + "name": "godot_string_new_unicode_data", "return_type": "void", "arguments": [ ["godot_string *", "r_dest"], @@ -3408,7 +3909,8 @@ ["const int", "p_size"] ] }, - "godot_string_get_data": { + { + "name": "godot_string_get_data", "return_type": "void", "arguments": [ ["const godot_string *", "p_self"], @@ -3416,93 +3918,107 @@ ["int *", "p_size"] ] }, - "godot_string_operator_index": { + { + "name": "godot_string_operator_index", "return_type": "wchar_t *", "arguments": [ ["godot_string *", "p_self"], ["const godot_int", "p_idx"] ] }, - "godot_string_c_str": { + { + "name": "godot_string_c_str", "return_type": "const char *", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_unicode_str": { + { + "name": "godot_string_unicode_str", "return_type": "const wchar_t *", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_operator_equal": { + { + "name": "godot_string_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_b"] ] }, - "godot_string_operator_less": { + { + "name": "godot_string_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_b"] ] }, - "godot_string_operator_plus": { + { + "name": "godot_string_operator_plus", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_b"] ] }, - "godot_string_length": { + { + "name": "godot_string_length", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_begins_with": { + { + "name": "godot_string_begins_with", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_string"] ] }, - "godot_string_begins_with_char_array": { + { + "name": "godot_string_begins_with_char_array", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const char *", "p_char_array"] ] }, - "godot_string_bigrams": { + { + "name": "godot_string_bigrams", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_chr": { + { + "name": "godot_string_chr", "return_type": "godot_string", "arguments": [ ["wchar_t", "p_character"] ] }, - "godot_string_ends_with": { + { + "name": "godot_string_ends_with", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_string"] ] }, - "godot_string_find": { + { + "name": "godot_string_find", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_what"] ] }, - "godot_string_find_from": { + { + "name": "godot_string_find_from", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3510,14 +4026,16 @@ ["godot_int", "p_from"] ] }, - "godot_string_findmk": { + { + "name": "godot_string_findmk", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["const godot_array *", "p_keys"] ] }, - "godot_string_findmk_from": { + { + "name": "godot_string_findmk_from", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3525,7 +4043,8 @@ ["godot_int", "p_from"] ] }, - "godot_string_findmk_from_in_place": { + { + "name": "godot_string_findmk_from_in_place", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3534,14 +4053,16 @@ ["godot_int *", "r_key"] ] }, - "godot_string_findn": { + { + "name": "godot_string_findn", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_what"] ] }, - "godot_string_findn_from": { + { + "name": "godot_string_findn_from", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3549,21 +4070,24 @@ ["godot_int", "p_from"] ] }, - "godot_string_find_last": { + { + "name": "godot_string_find_last", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_what"] ] }, - "godot_string_format": { + { + "name": "godot_string_format", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["const godot_variant *", "p_values"] ] }, - "godot_string_format_with_custom_placeholder": { + { + "name": "godot_string_format_with_custom_placeholder", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3571,26 +4095,30 @@ ["const char *", "p_placeholder"] ] }, - "godot_string_hex_encode_buffer": { + { + "name": "godot_string_hex_encode_buffer", "return_type": "godot_string", "arguments": [ ["const uint8_t *", "p_buffer"], ["godot_int", "p_len"] ] }, - "godot_string_hex_to_int": { + { + "name": "godot_string_hex_to_int", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_hex_to_int_without_prefix": { + { + "name": "godot_string_hex_to_int_without_prefix", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_insert": { + { + "name": "godot_string_insert", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3598,34 +4126,39 @@ ["godot_string", "p_string"] ] }, - "godot_string_is_numeric": { + { + "name": "godot_string_is_numeric", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_subsequence_of": { + { + "name": "godot_string_is_subsequence_of", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_string"] ] }, - "godot_string_is_subsequence_ofi": { + { + "name": "godot_string_is_subsequence_ofi", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_string"] ] }, - "godot_string_lpad": { + { + "name": "godot_string_lpad", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_min_length"] ] }, - "godot_string_lpad_with_custom_character": { + { + "name": "godot_string_lpad_with_custom_character", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3633,40 +4166,46 @@ ["const godot_string *", "p_character"] ] }, - "godot_string_match": { + { + "name": "godot_string_match", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_wildcard"] ] }, - "godot_string_matchn": { + { + "name": "godot_string_matchn", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_wildcard"] ] }, - "godot_string_md5": { + { + "name": "godot_string_md5", "return_type": "godot_string", "arguments": [ ["const uint8_t *", "p_md5"] ] }, - "godot_string_num": { + { + "name": "godot_string_num", "return_type": "godot_string", "arguments": [ ["double", "p_num"] ] }, - "godot_string_num_int64": { + { + "name": "godot_string_num_int64", "return_type": "godot_string", "arguments": [ ["int64_t", "p_num"], ["godot_int", "p_base"] ] }, - "godot_string_num_int64_capitalized": { + { + "name": "godot_string_num_int64_capitalized", "return_type": "godot_string", "arguments": [ ["int64_t", "p_num"], @@ -3674,40 +4213,46 @@ ["godot_bool", "p_capitalize_hex"] ] }, - "godot_string_num_real": { + { + "name": "godot_string_num_real", "return_type": "godot_string", "arguments": [ ["double", "p_num"] ] }, - "godot_string_num_scientific": { + { + "name": "godot_string_num_scientific", "return_type": "godot_string", "arguments": [ ["double", "p_num"] ] }, - "godot_string_num_with_decimals": { + { + "name": "godot_string_num_with_decimals", "return_type": "godot_string", "arguments": [ ["double", "p_num"], ["godot_int", "p_decimals"] ] }, - "godot_string_pad_decimals": { + { + "name": "godot_string_pad_decimals", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_digits"] ] }, - "godot_string_pad_zeros": { + { + "name": "godot_string_pad_zeros", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_digits"] ] }, - "godot_string_replace_first": { + { + "name": "godot_string_replace_first", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3715,7 +4260,8 @@ ["godot_string", "p_with"] ] }, - "godot_string_replace": { + { + "name": "godot_string_replace", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3723,7 +4269,8 @@ ["godot_string", "p_with"] ] }, - "godot_string_replacen": { + { + "name": "godot_string_replacen", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3731,21 +4278,24 @@ ["godot_string", "p_with"] ] }, - "godot_string_rfind": { + { + "name": "godot_string_rfind", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_what"] ] }, - "godot_string_rfindn": { + { + "name": "godot_string_rfindn", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_what"] ] }, - "godot_string_rfind_from": { + { + "name": "godot_string_rfind_from", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3753,7 +4303,8 @@ ["godot_int", "p_from"] ] }, - "godot_string_rfindn_from": { + { + "name": "godot_string_rfindn_from", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], @@ -3761,14 +4312,16 @@ ["godot_int", "p_from"] ] }, - "godot_string_rpad": { + { + "name": "godot_string_rpad", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_min_length"] ] }, - "godot_string_rpad_with_custom_character": { + { + "name": "godot_string_rpad_with_custom_character", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3776,14 +4329,16 @@ ["const godot_string *", "p_character"] ] }, - "godot_string_similarity": { + { + "name": "godot_string_similarity", "return_type": "godot_real", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_string"] ] }, - "godot_string_sprintf": { + { + "name": "godot_string_sprintf", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3791,7 +4346,8 @@ ["godot_bool *", "p_error"] ] }, - "godot_string_substr": { + { + "name": "godot_string_substr", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3799,107 +4355,124 @@ ["godot_int", "p_chars"] ] }, - "godot_string_to_double": { + { + "name": "godot_string_to_double", "return_type": "double", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_to_float": { + { + "name": "godot_string_to_float", "return_type": "godot_real", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_to_int": { + { + "name": "godot_string_to_int", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_camelcase_to_underscore": { + { + "name": "godot_string_camelcase_to_underscore", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_camelcase_to_underscore_lowercased": { + { + "name": "godot_string_camelcase_to_underscore_lowercased", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_capitalize": { + { + "name": "godot_string_capitalize", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_char_to_double": { + { + "name": "godot_string_char_to_double", "return_type": "double", "arguments": [ ["const char *", "p_what"] ] }, - "godot_string_char_to_int": { + { + "name": "godot_string_char_to_int", "return_type": "godot_int", "arguments": [ ["const char *", "p_what"] ] }, - "godot_string_wchar_to_int": { + { + "name": "godot_string_wchar_to_int", "return_type": "int64_t", "arguments": [ ["const wchar_t *", "p_str"] ] }, - "godot_string_char_to_int_with_len": { + { + "name": "godot_string_char_to_int_with_len", "return_type": "godot_int", "arguments": [ ["const char *", "p_what"], ["godot_int", "p_len"] ] }, - "godot_string_char_to_int64_with_len": { + { + "name": "godot_string_char_to_int64_with_len", "return_type": "int64_t", "arguments": [ ["const wchar_t *", "p_str"], ["int", "p_len"] ] }, - "godot_string_hex_to_int64": { + { + "name": "godot_string_hex_to_int64", "return_type": "int64_t", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_hex_to_int64_with_prefix": { + { + "name": "godot_string_hex_to_int64_with_prefix", "return_type": "int64_t", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_to_int64": { + { + "name": "godot_string_to_int64", "return_type": "int64_t", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_unicode_char_to_double": { + { + "name": "godot_string_unicode_char_to_double", "return_type": "double", "arguments": [ ["const wchar_t *", "p_str"], ["const wchar_t **", "r_end"] ] }, - "godot_string_get_slice_count": { + { + "name": "godot_string_get_slice_count", "return_type": "godot_int", "arguments": [ ["const godot_string *", "p_self"], ["godot_string", "p_splitter"] ] }, - "godot_string_get_slice": { + { + "name": "godot_string_get_slice", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3907,7 +4480,8 @@ ["godot_int", "p_slice"] ] }, - "godot_string_get_slicec": { + { + "name": "godot_string_get_slicec", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -3915,147 +4489,169 @@ ["godot_int", "p_slice"] ] }, - "godot_string_split": { + { + "name": "godot_string_split", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_allow_empty": { + { + "name": "godot_string_split_allow_empty", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_floats": { + { + "name": "godot_string_split_floats", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_floats_allows_empty": { + { + "name": "godot_string_split_floats_allows_empty", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_floats_mk": { + { + "name": "godot_string_split_floats_mk", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_array *", "p_splitters"] ] }, - "godot_string_split_floats_mk_allows_empty": { + { + "name": "godot_string_split_floats_mk_allows_empty", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_array *", "p_splitters"] ] }, - "godot_string_split_ints": { + { + "name": "godot_string_split_ints", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_ints_allows_empty": { + { + "name": "godot_string_split_ints_allows_empty", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_splitter"] ] }, - "godot_string_split_ints_mk": { + { + "name": "godot_string_split_ints_mk", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_array *", "p_splitters"] ] }, - "godot_string_split_ints_mk_allows_empty": { + { + "name": "godot_string_split_ints_mk_allows_empty", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"], ["const godot_array *", "p_splitters"] ] }, - "godot_string_split_spaces": { + { + "name": "godot_string_split_spaces", "return_type": "godot_array", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_char_lowercase": { + { + "name": "godot_string_char_lowercase", "return_type": "wchar_t", "arguments": [ ["wchar_t", "p_char"] ] }, - "godot_string_char_uppercase": { + { + "name": "godot_string_char_uppercase", "return_type": "wchar_t", "arguments": [ ["wchar_t", "p_char"] ] }, - "godot_string_to_lower": { + { + "name": "godot_string_to_lower", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_to_upper": { + { + "name": "godot_string_to_upper", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_get_basename": { + { + "name": "godot_string_get_basename", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_get_extension": { + { + "name": "godot_string_get_extension", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_left": { + { + "name": "godot_string_left", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_pos"] ] }, - "godot_string_ord_at": { + { + "name": "godot_string_ord_at", "return_type": "wchar_t", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_idx"] ] }, - "godot_string_plus_file": { + { + "name": "godot_string_plus_file", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_file"] ] }, - "godot_string_right": { + { + "name": "godot_string_right", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_pos"] ] }, - "godot_string_strip_edges": { + { + "name": "godot_string_strip_edges", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], @@ -4063,13 +4659,15 @@ ["godot_bool", "p_right"] ] }, - "godot_string_strip_escapes": { + { + "name": "godot_string_strip_escapes", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_erase": { + { + "name": "godot_string_erase", "return_type": "void", "arguments": [ ["godot_string *", "p_self"], @@ -4077,35 +4675,40 @@ ["godot_int", "p_chars"] ] }, - "godot_string_ascii": { + { + "name": "godot_string_ascii", "return_type": "void", "arguments": [ ["godot_string *", "p_self"], ["char *", "result"] ] }, - "godot_string_ascii_extended": { + { + "name": "godot_string_ascii_extended", "return_type": "void", "arguments": [ ["godot_string *", "p_self"], ["char *", "result"] ] }, - "godot_string_utf8": { + { + "name": "godot_string_utf8", "return_type": "void", "arguments": [ ["godot_string *", "p_self"], ["char *", "result"] ] }, - "godot_string_parse_utf8": { + { + "name": "godot_string_parse_utf8", "return_type": "godot_bool", "arguments": [ ["godot_string *", "p_self"], ["const char *", "p_utf8"] ] }, - "godot_string_parse_utf8_with_len": { + { + "name": "godot_string_parse_utf8_with_len", "return_type": "godot_bool", "arguments": [ ["godot_string *", "p_self"], @@ -4113,279 +4716,384 @@ ["godot_int", "p_len"] ] }, - "godot_string_chars_to_utf8": { + { + "name": "godot_string_chars_to_utf8", "return_type": "godot_string", "arguments": [ ["const char *", "p_utf8"] ] }, - "godot_string_chars_to_utf8_with_len": { + { + "name": "godot_string_chars_to_utf8_with_len", "return_type": "godot_string", "arguments": [ ["const char *", "p_utf8"], ["godot_int", "p_len"] ] }, - "godot_string_hash": { + { + "name": "godot_string_hash", "return_type": "uint32_t", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_hash64": { + { + "name": "godot_string_hash64", "return_type": "uint64_t", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_hash_chars": { + { + "name": "godot_string_hash_chars", "return_type": "uint32_t", "arguments": [ ["const char *", "p_cstr"] ] }, - "godot_string_hash_chars_with_len": { + { + "name": "godot_string_hash_chars_with_len", "return_type": "uint32_t", "arguments": [ ["const char *", "p_cstr"], ["godot_int", "p_len"] ] }, - "godot_string_hash_utf8_chars": { + { + "name": "godot_string_hash_utf8_chars", "return_type": "uint32_t", "arguments": [ ["const wchar_t *", "p_str"] ] }, - "godot_string_hash_utf8_chars_with_len": { + { + "name": "godot_string_hash_utf8_chars_with_len", "return_type": "uint32_t", "arguments": [ ["const wchar_t *", "p_str"], ["godot_int", "p_len"] ] }, - "godot_string_md5_buffer": { + { + "name": "godot_string_md5_buffer", "return_type": "godot_pool_byte_array", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_md5_text": { + { + "name": "godot_string_md5_text", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_sha256_buffer": { + { + "name": "godot_string_sha256_buffer", "return_type": "godot_pool_byte_array", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_sha256_text": { + { + "name": "godot_string_sha256_text", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_empty": { + { + "name": "godot_string_empty", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_get_base_dir": { + { + "name": "godot_string_get_base_dir", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_get_file": { + { + "name": "godot_string_get_file", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_humanize_size": { + { + "name": "godot_string_humanize_size", "return_type": "godot_string", "arguments": [ ["size_t", "p_size"] ] }, - "godot_string_is_abs_path": { + { + "name": "godot_string_is_abs_path", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_rel_path": { + { + "name": "godot_string_is_rel_path", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_resource_file": { + { + "name": "godot_string_is_resource_file", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_path_to": { + { + "name": "godot_string_path_to", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_path"] ] }, - "godot_string_path_to_file": { + { + "name": "godot_string_path_to_file", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["const godot_string *", "p_path"] ] }, - "godot_string_simplify_path": { + { + "name": "godot_string_simplify_path", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_c_escape": { + { + "name": "godot_string_c_escape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_c_escape_multiline": { + { + "name": "godot_string_c_escape_multiline", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_c_unescape": { + { + "name": "godot_string_c_unescape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_http_escape": { + { + "name": "godot_string_http_escape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_http_unescape": { + { + "name": "godot_string_http_unescape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_json_escape": { + { + "name": "godot_string_json_escape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_word_wrap": { + { + "name": "godot_string_word_wrap", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"], ["godot_int", "p_chars_per_line"] ] }, - "godot_string_xml_escape": { + { + "name": "godot_string_xml_escape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_xml_escape_with_quotes": { + { + "name": "godot_string_xml_escape_with_quotes", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_xml_unescape": { + { + "name": "godot_string_xml_unescape", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_percent_decode": { + { + "name": "godot_string_percent_decode", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_percent_encode": { + { + "name": "godot_string_percent_encode", "return_type": "godot_string", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_valid_float": { + { + "name": "godot_string_is_valid_float", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_valid_hex_number": { + { + "name": "godot_string_is_valid_hex_number", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"], ["godot_bool", "p_with_prefix"] ] }, - "godot_string_is_valid_html_color": { + { + "name": "godot_string_is_valid_html_color", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_valid_identifier": { + { + "name": "godot_string_is_valid_identifier", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_valid_integer": { + { + "name": "godot_string_is_valid_integer", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_is_valid_ip_address": { + { + "name": "godot_string_is_valid_ip_address", "return_type": "godot_bool", "arguments": [ ["const godot_string *", "p_self"] ] }, - "godot_string_destroy": { + { + "name": "godot_string_destroy", "return_type": "void", "arguments": [ ["godot_string *", "p_self"] ] }, - "godot_object_destroy": { + { + "name": "godot_string_name_new", + "return_type": "void", + "arguments": [ + ["godot_string_name *", "r_dest"], + ["const godot_string *", "p_name"] + ] + }, + { + "name": "godot_string_name_new_data", + "return_type": "void", + "arguments": [ + ["godot_string_name *", "r_dest"], + ["const char *", "p_name"] + ] + }, + { + "name": "godot_string_name_get_name", + "return_type": "godot_string", + "arguments": [ + ["const godot_string_name *", "p_self"] + ] + }, + { + "name": "godot_string_name_get_hash", + "return_type": "uint32_t", + "arguments": [ + ["const godot_string_name *", "p_self"] + ] + }, + { + "name": "godot_string_name_get_data_unique_pointer", + "return_type": "const void *", + "arguments": [ + ["const godot_string_name *", "p_self"] + ] + }, + { + "name": "godot_string_name_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string_name *", "p_self"], + ["const godot_string_name *", "p_other"] + ] + }, + { + "name": "godot_string_name_operator_less", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string_name *", "p_self"], + ["const godot_string_name *", "p_other"] + ] + }, + { + "name": "godot_string_name_destroy", + "return_type": "void", + "arguments": [ + ["godot_string_name *", "p_self"] + ] + }, + { + "name": "godot_object_destroy", "return_type": "void", "arguments": [ ["godot_object *", "p_o"] ] }, - "godot_global_get_singleton": { + { + "name": "godot_global_get_singleton", "return_type": "godot_object *", "arguments": [ ["char *", "p_name"] ] }, - "godot_method_bind_get_method": { + { + "name": "godot_method_bind_get_method", "return_type": "godot_method_bind *", "arguments": [ ["const char *", "p_classname"], ["const char *", "p_methodname"] ] }, - "godot_method_bind_ptrcall": { + { + "name": "godot_method_bind_ptrcall", "return_type": "void", "arguments": [ ["godot_method_bind *", "p_method_bind"], @@ -4394,7 +5102,8 @@ ["void *", "p_ret"] ] }, - "godot_method_bind_call": { + { + "name": "godot_method_bind_call", "return_type": "godot_variant", "arguments": [ ["godot_method_bind *", "p_method_bind"], @@ -4404,32 +5113,37 @@ ["godot_variant_call_error *", "p_call_error"] ] }, - "godot_get_class_constructor": { + { + "name": "godot_get_class_constructor", "return_type": "godot_class_constructor", "arguments": [ ["const char *", "p_classname"] ] }, - "godot_alloc": { + { + "name": "godot_alloc", "return_type": "void *", "arguments": [ ["int", "p_bytes"] ] }, - "godot_realloc": { + { + "name": "godot_realloc", "return_type": "void *", "arguments": [ ["void *", "p_ptr"], ["int", "p_bytes"] ] }, - "godot_free": { + { + "name": "godot_free", "return_type": "void", "arguments": [ ["void *", "p_ptr"] ] }, - "godot_print_error": { + { + "name": "godot_print_error", "return_type": "void", "arguments": [ ["const char *", "p_description"], @@ -4438,7 +5152,8 @@ ["int", "p_line"] ] }, - "godot_print_warning": { + { + "name": "godot_print_warning", "return_type": "void", "arguments": [ ["const char *", "p_description"], @@ -4447,13 +5162,15 @@ ["int", "p_line"] ] }, - "godot_print": { + { + "name": "godot_print", "return_type": "void", "arguments": [ ["const godot_string *", "p_message"] ] }, - "godot_nativescript_register_class": { + { + "name": "godot_nativescript_register_class", "return_type": "void", "arguments": [ ["void *", "p_gdnative_handle"], @@ -4463,7 +5180,8 @@ ["godot_instance_destroy_func", "p_destroy_func"] ] }, - "godot_nativescript_register_tool_class": { + { + "name": "godot_nativescript_register_tool_class", "return_type": "void", "arguments": [ ["void *", "p_gdnative_handle"], @@ -4473,7 +5191,8 @@ ["godot_instance_destroy_func", "p_destroy_func"] ] }, - "godot_nativescript_register_method": { + { + "name": "godot_nativescript_register_method", "return_type": "void", "arguments": [ ["void *", "p_gdnative_handle"], @@ -4483,7 +5202,8 @@ ["godot_instance_method", "p_method"] ] }, - "godot_nativescript_register_property": { + { + "name": "godot_nativescript_register_property", "return_type": "void", "arguments": [ ["void *", "p_gdnative_handle"], @@ -4494,7 +5214,8 @@ ["godot_property_get_func", "p_get_func"] ] }, - "godot_nativescript_register_signal": { + { + "name": "godot_nativescript_register_signal", "return_type": "void", "arguments": [ ["void *", "p_gdnative_handle"], @@ -4502,11 +5223,12 @@ ["const godot_signal *", "p_signal"] ] }, - "godot_nativescript_get_userdata": { + { + "name": "godot_nativescript_get_userdata", "return_type": "void *", "arguments": [ ["godot_object *", "p_instance"] ] } - } + ] } diff --git a/modules/gdnative/include/gdnative/gdnative.h b/modules/gdnative/include/gdnative/gdnative.h index 008968a5e5..2d8726e5db 100644 --- a/modules/gdnative/include/gdnative/gdnative.h +++ b/modules/gdnative/include/gdnative/gdnative.h @@ -141,6 +141,10 @@ typedef void godot_object; #include <gdnative/string.h> +/////// String name + +#include <gdnative/string_name.h> + ////// Vector2 #include <gdnative/vector2.h> diff --git a/modules/gdnative/include/gdnative/string_name.h b/modules/gdnative/include/gdnative/string_name.h new file mode 100644 index 0000000000..e217487250 --- /dev/null +++ b/modules/gdnative/include/gdnative/string_name.h @@ -0,0 +1,68 @@ +/*************************************************************************/ +/* string_name.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2017 Godot Engine contributors (cf. AUTHORS.md) */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ +#ifndef GODOT_STRING_NAME_H +#define GODOT_STRING_NAME_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> +#include <wchar.h> + +#define GODOT_STRING_NAME_SIZE sizeof(void *) + +#ifndef GODOT_CORE_API_GODOT_STRING_NAME_TYPE_DEFINED +#define GODOT_CORE_API_GODOT_STRING_NAME_TYPE_DEFINED +typedef struct { + uint8_t _dont_touch_that[GODOT_STRING_NAME_SIZE]; +} godot_string_name; +#endif + +#include <gdnative/gdnative.h> + +void GDAPI godot_string_name_new(godot_string_name *r_dest, const godot_string *p_name); +void GDAPI godot_string_name_new_data(godot_string_name *r_dest, const char *p_name); + +godot_string GDAPI godot_string_name_get_name(const godot_string_name *p_self); + +uint32_t GDAPI godot_string_name_get_hash(const godot_string_name *p_self); +const void GDAPI *godot_string_name_get_data_unique_pointer(const godot_string_name *p_self); + +godot_bool GDAPI godot_string_name_operator_equal(const godot_string_name *p_self, const godot_string_name *p_other); +godot_bool GDAPI godot_string_name_operator_less(const godot_string_name *p_self, const godot_string_name *p_other); + +void GDAPI godot_string_name_destroy(godot_string_name *p_self); + +#ifdef __cplusplus +} +#endif + +#endif // GODOT_STRING_NAME_H diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp index 997c342045..059cd197d1 100644 --- a/modules/gdnative/register_types.cpp +++ b/modules/gdnative/register_types.cpp @@ -247,6 +247,7 @@ void unregister_gdnative_types() { singleton_gdnatives[i]->terminate(); } + singleton_gdnatives.clear(); unregister_nativescript_types(); diff --git a/modules/gdscript/gd_function.cpp b/modules/gdscript/gd_function.cpp index 9df2823c35..ce503b62f2 100644 --- a/modules/gdscript/gd_function.cpp +++ b/modules/gdscript/gd_function.cpp @@ -1578,7 +1578,7 @@ void GDFunctionState::_bind_methods() { ClassDB::bind_method(D_METHOD("is_valid", "extended_check"), &GDFunctionState::is_valid, DEFVAL(false)); ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "_signal_callback", &GDFunctionState::_signal_callback, MethodInfo("_signal_callback")); - ADD_SIGNAL(MethodInfo("completed", PropertyInfo(Variant::NIL, "result"))); + ADD_SIGNAL(MethodInfo("completed", PropertyInfo(Variant::NIL, "result", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT))); } GDFunctionState::GDFunctionState() { diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp index 4f7545a11d..4e8b67e4e8 100644 --- a/modules/gridmap/grid_map.cpp +++ b/modules/gridmap/grid_map.cpp @@ -769,6 +769,8 @@ void GridMap::_bind_methods() { ClassDB::bind_method(D_METHOD("clear"), &GridMap::clear); + ClassDB::bind_method(D_METHOD("get_used_cells"), &GridMap::get_used_cells); + ClassDB::bind_method(D_METHOD("get_meshes"), &GridMap::get_meshes); BIND_CONSTANT(INVALID_CELL_ITEM); @@ -807,6 +809,19 @@ float GridMap::get_cell_scale() const { return cell_scale; } +Array GridMap::get_used_cells() const { + + Array a; + a.resize(cell_map.size()); + int i = 0; + for (Map<IndexKey, Cell>::Element *E = cell_map.front(); E; E = E->next()) { + Vector3 p(E->key().x, E->key().y, E->key().z); + a[i++] = p; + } + + return a; +} + Array GridMap::get_meshes() { if (theme.is_null()) diff --git a/modules/gridmap/grid_map.h b/modules/gridmap/grid_map.h index eb1b215696..296956ff5d 100644 --- a/modules/gridmap/grid_map.h +++ b/modules/gridmap/grid_map.h @@ -223,6 +223,8 @@ public: void set_cell_scale(float p_scale); float get_cell_scale() const; + Array get_used_cells() const; + Array get_meshes(); void clear(); diff --git a/modules/mobile_vr/config.py b/modules/mobile_vr/config.py index d0156b1b77..cf96c66125 100644 --- a/modules/mobile_vr/config.py +++ b/modules/mobile_vr/config.py @@ -3,4 +3,10 @@ def can_build(platform): return True def configure(env): - pass
\ No newline at end of file + pass + +def get_doc_classes(): + return ["MobileVRInterface"] + +def get_doc_path(): + return "doc_classes" diff --git a/modules/mobile_vr/doc_classes/MobileVRInterface.xml b/modules/mobile_vr/doc_classes/MobileVRInterface.xml new file mode 100644 index 0000000000..c945a99a9a --- /dev/null +++ b/modules/mobile_vr/doc_classes/MobileVRInterface.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="MobileVRInterface" inherits="ARVRInterface" category="Core" version="3.0.alpha.custom_build"> + <brief_description> + Generic mobile VR implementation + </brief_description> + <description> + This is a generic mobile VR implementation where you need to provide details about the phone and HMD used. It does not rely on any existing framework. This is the most basic interface we have. For the best effect you do need a mobile phone with a gyroscope and accelerometer. + Note that even though there is no positional tracking the camera will assume the headset is at a height of 1.85 meters. + </description> + <tutorials> + </tutorials> + <demos> + </demos> + <methods> + <method name="get_display_to_lens" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the distance between the display and the lens. + </description> + </method> + <method name="get_display_width" qualifiers="const"> + <return type="float"> + </return> + <description> + Return the width of the LCD screen of the device. + </description> + </method> + <method name="get_iod" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the interocular distance. + </description> + </method> + <method name="get_k1" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the k1 lens constant. + </description> + </method> + <method name="get_k2" qualifiers="const"> + <return type="float"> + </return> + <description> + Retuns the k2 lens constant + </description> + </method> + <method name="get_oversample" qualifiers="const"> + <return type="float"> + </return> + <description> + Returns the oversampling setting. + </description> + </method> + <method name="set_display_to_lens"> + <return type="void"> + </return> + <argument index="0" name="display_to_lens" type="float"> + </argument> + <description> + Sets the distance between display and the lens. + </description> + </method> + <method name="set_display_width"> + <return type="void"> + </return> + <argument index="0" name="display_width" type="float"> + </argument> + <description> + Sets the width of the LCD screen of the device. + </description> + </method> + <method name="set_iod"> + <return type="void"> + </return> + <argument index="0" name="iod" type="float"> + </argument> + <description> + Sets the interocular distance. + </description> + </method> + <method name="set_k1"> + <return type="void"> + </return> + <argument index="0" name="k" type="float"> + </argument> + <description> + Sets the k1 lens constant. + </description> + </method> + <method name="set_k2"> + <return type="void"> + </return> + <argument index="0" name="k" type="float"> + </argument> + <description> + Sets the k2 lens constant. + </description> + </method> + <method name="set_oversample"> + <return type="void"> + </return> + <argument index="0" name="oversample" type="float"> + </argument> + <description> + Sets the oversampling setting. + </description> + </method> + </methods> + <members> + <member name="display_to_lens" type="float" setter="set_display_to_lens" getter="get_display_to_lens"> + The distance between the display and the lenses inside of the device in centimeters. + </member> + <member name="display_width" type="float" setter="set_display_width" getter="get_display_width"> + The width of the display in centimeters. + </member> + <member name="iod" type="float" setter="set_iod" getter="get_iod"> + The interocular distance, also known as the interpupillary distance. The distance between the pupils of the left and right eye. + </member> + <member name="k1" type="float" setter="set_k1" getter="get_k1"> + The k1 lens factor is one of the two constants that define the strength of the lens used and directly influences the lens distortion effect. + </member> + <member name="k2" type="float" setter="set_k2" getter="get_k2"> + The k2 lens factor, see k1. + </member> + <member name="oversample" type="float" setter="set_oversample" getter="get_oversample"> + The oversample setting. Because of the lens distortion we have to render our buffers at a higher resolution then the screen can natively handle. A value between 1.5 and 2.0 often provides good results but at the cost of performance. + </member> + </members> + <constants> + </constants> +</class> diff --git a/modules/mobile_vr/mobile_interface.cpp b/modules/mobile_vr/mobile_interface.cpp index f5c9bccaba..eb87bb2cf0 100644 --- a/modules/mobile_vr/mobile_interface.cpp +++ b/modules/mobile_vr/mobile_interface.cpp @@ -37,6 +37,10 @@ StringName MobileVRInterface::get_name() const { return "Native mobile"; }; +int MobileVRInterface::get_capabilities() const { + return ARVRInterface::ARVR_STEREO; +}; + Vector3 MobileVRInterface::scale_magneto(const Vector3 &p_magnetometer) { // Our magnetometer doesn't give us nice clean data. // Well it may on Mac OS X because we're getting a calibrated value in the current implementation but Android we're getting raw data. @@ -166,6 +170,8 @@ void MobileVRInterface::set_position_from_sensors() { rotate.rotate(orientation.get_axis(1), gyro.y * delta_time); rotate.rotate(orientation.get_axis(2), gyro.z * delta_time); orientation = rotate * orientation; + + tracking_state = ARVRInterface::ARVR_NORMAL_TRACKING; }; ///@TODO improve this, the magnetometer is very fidgity sometimes flipping the axis for no apparent reason (probably a bug on my part) @@ -176,6 +182,8 @@ void MobileVRInterface::set_position_from_sensors() { Quat acc_mag_quat(combine_acc_mag(grav, magneto)); transform_quat = transform_quat.slerp(acc_mag_quat, 0.1); orientation = Basis(transform_quat); + + tracking_state = ARVRInterface::ARVR_NORMAL_TRACKING; } else if (has_grav) { // use gravity vector to make sure down is down... // transform gravity into our world space @@ -273,21 +281,6 @@ real_t MobileVRInterface::get_k2() const { return k2; }; -bool MobileVRInterface::is_installed() { - // we don't have any middle ware here, if we have our interface, we can use it - return true; -}; - -bool MobileVRInterface::hmd_is_present() { - // our device is our HMD - return true; -}; - -bool MobileVRInterface::supports_hmd() { - // our device is our HMD - return true; -}; - bool MobileVRInterface::is_stereo() { // needs stereo... return true; @@ -461,11 +454,11 @@ MobileVRInterface::MobileVRInterface() { // Just set some defaults for these. At some point we need to look at adding a lookup table for common device + headset combos and/or support reading cardboard QR codes eye_height = 1.85; intraocular_dist = 6.0; - display_width = 13.0; + display_width = 14.5; display_to_lens = 4.0; oversample = 1.5; - k1 = 0.22; - k2 = 0.23; + k1 = 0.215; + k2 = 0.215; last_ticks = 0; // create our shader stuff diff --git a/modules/mobile_vr/mobile_interface.h b/modules/mobile_vr/mobile_interface.h index dfe3cd200e..6a5e01c163 100644 --- a/modules/mobile_vr/mobile_interface.h +++ b/modules/mobile_vr/mobile_interface.h @@ -131,10 +131,7 @@ public: real_t get_k2() const; virtual StringName get_name() const; - - virtual bool is_installed(); - virtual bool hmd_is_present(); - virtual bool supports_hmd(); + virtual int get_capabilities() const; virtual bool is_initialized(); virtual bool initialize(); diff --git a/modules/mono/SCsub b/modules/mono/SCsub index 0af2056c5c..caf4fdb3ca 100644 --- a/modules/mono/SCsub +++ b/modules/mono/SCsub @@ -2,9 +2,10 @@ Import('env') +from compat import byte_to_str def make_cs_files_header(src, dst): - with open(dst, 'wb') as header: + with open(dst, 'w') as header: header.write('/* This is an automatically generated file; DO NOT EDIT! OK THX */\n') header.write('#ifndef _CS_FILES_DATA_H\n') header.write('#define _CS_FILES_DATA_H\n\n') @@ -26,7 +27,7 @@ def make_cs_files_header(src, dst): for i, buf_idx in enumerate(range(len(buf))): if i > 0: header.write(', ') - header.write(str(ord(buf[buf_idx]))) + header.write(byte_to_str(buf[buf_idx])) inserted_files += '\tr_files.insert(\"' + file + '\", ' \ 'CompressedFile(_cs_' + name + '_compressed_size, ' \ '_cs_' + name + '_uncompressed_size, ' \ diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 67b4e67e2b..fe78ce423c 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -50,6 +50,21 @@ #define CACHED_STRING_NAME(m_var) (CSharpLanguage::get_singleton()->string_names.m_var) +static bool _create_project_solution_if_needed() { + + String sln_path = GodotSharpDirs::get_project_sln_path(); + String csproj_path = GodotSharpDirs::get_project_csproj_path(); + + if (!FileAccess::exists(sln_path) || !FileAccess::exists(csproj_path)) { + // A solution does not yet exist, create a new one + + CRASH_COND(GodotSharpEditor::get_singleton() == NULL); + return GodotSharpEditor::get_singleton()->call("_create_project_solution"); + } + + return true; +} + CSharpLanguage *CSharpLanguage::singleton = NULL; String CSharpLanguage::get_name() const { @@ -767,7 +782,7 @@ bool CSharpInstance::set(const StringName &p_name, const Variant &p_value) { if (method) { MonoObject *ret = method->invoke(mono_object, args); - if (ret && UNBOX_BOOLEAN(ret)) + if (ret && GDMonoMarshal::unbox<MonoBoolean>(ret) == true) return true; } @@ -1186,8 +1201,6 @@ bool CSharpScript::_update_exports() { exported_members_cache.clear(); exported_members_defval_cache.clear(); - const Vector<GDMonoField *> &fields = script_class->get_all_fields(); - // We are creating a temporary new instance of the class here to get the default value // TODO Workaround. Should be replaced with IL opcodes analysis @@ -1211,36 +1224,47 @@ bool CSharpScript::_update_exports() { return false; } - for (int i = 0; i < fields.size(); i++) { - GDMonoField *field = fields[i]; + GDMonoClass *top = script_class; - if (field->is_static() || field->get_visibility() != GDMono::PUBLIC) - continue; + while (top && top != native) { + const Vector<GDMonoField *> &fields = top->get_all_fields(); + + for (int i = 0; i < fields.size(); i++) { + GDMonoField *field = fields[i]; - String name = field->get_name(); - StringName cname = name; + if (field->is_static() || field->get_visibility() != GDMono::PUBLIC) + continue; - Variant::Type type = GDMonoMarshal::managed_to_variant_type(field->get_type()); + String name = field->get_name(); + StringName cname = name; - if (field->has_attribute(CACHED_CLASS(ExportAttribute))) { - MonoObject *attr = field->get_attribute(CACHED_CLASS(ExportAttribute)); + if (member_info.has(cname)) + continue; - // Field has Export attribute - int hint = CACHED_FIELD(ExportAttribute, hint)->get_int_value(attr); - String hint_string = CACHED_FIELD(ExportAttribute, hint_string)->get_string_value(attr); - int usage = CACHED_FIELD(ExportAttribute, usage)->get_int_value(attr); + Variant::Type type = GDMonoMarshal::managed_to_variant_type(field->get_type()); - PropertyInfo prop_info = PropertyInfo(type, name, PropertyHint(hint), hint_string, PropertyUsageFlags(usage)); + if (field->has_attribute(CACHED_CLASS(ExportAttribute))) { + MonoObject *attr = field->get_attribute(CACHED_CLASS(ExportAttribute)); - member_info[cname] = prop_info; - exported_members_cache.push_back(prop_info); + // Field has Export attribute + int hint = CACHED_FIELD(ExportAttribute, hint)->get_int_value(attr); + String hint_string = CACHED_FIELD(ExportAttribute, hint_string)->get_string_value(attr); + int usage = CACHED_FIELD(ExportAttribute, usage)->get_int_value(attr); - if (tmp_object) { - exported_members_defval_cache[cname] = GDMonoMarshal::mono_object_to_variant(field->get_value(tmp_object)); + PropertyInfo prop_info = PropertyInfo(type, name, PropertyHint(hint), hint_string, PropertyUsageFlags(usage)); + + member_info[cname] = prop_info; + exported_members_cache.push_back(prop_info); + + if (tmp_object) { + exported_members_defval_cache[cname] = GDMonoMarshal::mono_object_to_variant(field->get_value(tmp_object)); + } + } else { + member_info[cname] = PropertyInfo(type, name, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_SCRIPT_VARIABLE); } - } else { - member_info[cname] = PropertyInfo(type, name, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_SCRIPT_VARIABLE); } + + top = top->get_parent_class(); } } @@ -1359,7 +1383,18 @@ Ref<CSharpScript> CSharpScript::create_for_managed_type(GDMonoClass *p_class) { bool CSharpScript::can_instance() const { - // TODO does the second condition even make sense? +#ifdef TOOLS_ENABLED + if (Engine::get_singleton()->is_editor_hint()) { + if (_create_project_solution_if_needed()) { + CSharpProject::add_item(GodotSharpDirs::get_project_csproj_path(), + "Compile", + ProjectSettings::get_singleton()->globalize_path(get_path())); + } else { + ERR_PRINTS("Cannot add " + get_path() + " to the C# project because it could not be created."); + } + } +#endif + return valid || (!tool && !ScriptServer::is_scripting_enabled()); } @@ -1545,6 +1580,18 @@ Error CSharpScript::reload(bool p_keep_state) { if (project_assembly) { script_class = project_assembly->get_object_derived_class(name); + + if (!script_class) { + ERR_PRINTS("Cannot find class " + name + " for script " + get_path()); + } +#ifdef DEBUG_ENABLED + else if (OS::get_singleton()->is_stdout_verbose()) { + OS::get_singleton()->print(String("Found class " + script_class->get_namespace() + "." + + script_class->get_name() + " for script " + get_path() + "\n") + .utf8()); + } +#endif + valid = script_class != NULL; if (script_class) { @@ -1757,6 +1804,31 @@ RES ResourceFormatLoaderCSharpScript::load(const String &p_path, const String &p #endif script->set_path(p_original_path); + +#ifndef TOOLS_ENABLED + +#ifdef DEBUG_ENABLED + // User is responsible for thread attach/detach + ERR_EXPLAIN("Thread is not attached"); + CRASH_COND(mono_domain_get() == NULL); +#endif + +#else + if (Engine::get_singleton()->is_editor_hint() && mono_domain_get() == NULL) { + + CRASH_COND(Thread::get_caller_id() == Thread::get_main_id()); + + // Thread is not attached, but we will make an exception in this case + // because this may be called by one of the editor's worker threads. + // Attach this thread temporarily to reload the script. + + MonoThread *mono_thread = mono_thread_attach(SCRIPTS_DOMAIN); + CRASH_COND(mono_thread == NULL); + script->reload(); + mono_thread_detach(mono_thread); + + } else // just reload it normally +#endif script->reload(); if (r_error) @@ -1791,21 +1863,12 @@ Error ResourceFormatSaverCSharpScript::save(const String &p_path, const RES &p_r if (!FileAccess::exists(p_path)) { // The file does not yet exists, let's assume the user just created this script - String sln_path = GodotSharpDirs::get_project_sln_path(); - String csproj_path = GodotSharpDirs::get_project_csproj_path(); - - if (!FileAccess::exists(sln_path) || !FileAccess::exists(csproj_path)) { - // A solution does not yet exist, create a new one - - CRASH_COND(GodotSharpEditor::get_singleton() == NULL); - GodotSharpEditor::get_singleton()->call("_create_project_solution"); - } - - // Add the file to the C# project - if (FileAccess::exists(csproj_path)) { - CSharpProject::add_item(csproj_path, "Compile", ProjectSettings::get_singleton()->globalize_path(p_path)); + if (_create_project_solution_if_needed()) { + CSharpProject::add_item(GodotSharpDirs::get_project_csproj_path(), + "Compile", + ProjectSettings::get_singleton()->globalize_path(p_path)); } else { - ERR_PRINT("C# project not found!"); + ERR_PRINTS("Cannot add " + p_path + " to the C# project because it could not be created."); } } #endif diff --git a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs index 256e64ddde..5544233eb7 100644 --- a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs +++ b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs @@ -19,7 +19,15 @@ namespace GodotSharpTools.Build private static string MSBuildPath { - get { return godot_icall_BuildInstance_get_MSBuildPath(); } + get + { + string ret = godot_icall_BuildInstance_get_MSBuildPath(); + + if (ret == null) + throw new FileNotFoundException("Cannot find the MSBuild executable."); + + return ret; + } } private string solution; @@ -98,7 +106,7 @@ namespace GodotSharpTools.Build private string BuildArguments(string loggerAssemblyPath, string loggerOutputDir, string[] customProperties) { - string arguments = string.Format("{0} /v:normal /t:Build /p:{1} /l:{2},{3};{4}", + string arguments = string.Format(@"""{0}"" /v:normal /t:Build ""/p:{1}"" ""/l:{2},{3};{4}""", solution, "Configuration=" + config, typeof(GodotBuildLogger).FullName, diff --git a/modules/mono/editor/GodotSharpTools/Project/ProjectExtensions.cs b/modules/mono/editor/GodotSharpTools/Project/ProjectExtensions.cs index 6a97731539..f00ec5a2ad 100644 --- a/modules/mono/editor/GodotSharpTools/Project/ProjectExtensions.cs +++ b/modules/mono/editor/GodotSharpTools/Project/ProjectExtensions.cs @@ -27,12 +27,15 @@ namespace GodotSharpTools.Project return false; } - public static void AddItemChecked(this ProjectRootElement root, string itemType, string include) + public static bool AddItemChecked(this ProjectRootElement root, string itemType, string include) { if (!root.HasItem(itemType, include)) { root.AddItem(itemType, include); + return true; } + + return false; } public static Guid GetGuid(this ProjectRootElement root) diff --git a/modules/mono/editor/GodotSharpTools/Project/ProjectUtils.cs b/modules/mono/editor/GodotSharpTools/Project/ProjectUtils.cs index a50b4fb064..6889ea715f 100644 --- a/modules/mono/editor/GodotSharpTools/Project/ProjectUtils.cs +++ b/modules/mono/editor/GodotSharpTools/Project/ProjectUtils.cs @@ -10,8 +10,8 @@ namespace GodotSharpTools.Project { var dir = Directory.GetParent(projectPath).FullName; var root = ProjectRootElement.Open(projectPath); - root.AddItemChecked(itemType, include.RelativeToPath(dir).Replace("/", "\\")); - root.Save(); + if (root.AddItemChecked(itemType, include.RelativeToPath(dir).Replace("/", "\\"))) + root.Save(); } } } diff --git a/modules/mono/editor/godotsharp_builds.cpp b/modules/mono/editor/godotsharp_builds.cpp index e7d9c83421..1bad8a3f85 100644 --- a/modules/mono/editor/godotsharp_builds.cpp +++ b/modules/mono/editor/godotsharp_builds.cpp @@ -29,13 +29,14 @@ /*************************************************************************/ #include "godotsharp_builds.h" +#include "main/main.h" + #include "../godotsharp_dirs.h" #include "../mono_gd/gd_mono_class.h" #include "../mono_gd/gd_mono_marshal.h" #include "../utils/path_utils.h" #include "bindings_generator.h" #include "godotsharp_editor.h" -#include "main/main.h" void godot_icall_BuildInstance_ExitCallback(MonoString *p_solution, MonoString *p_config, int p_exit_code) { @@ -44,11 +45,37 @@ void godot_icall_BuildInstance_ExitCallback(MonoString *p_solution, MonoString * GodotSharpBuilds::get_singleton()->build_exit_callback(MonoBuildInfo(solution, config), p_exit_code); } +#ifdef UNIX_ENABLED +String _find_build_engine_on_unix(const String &p_name) { + String ret = path_which(p_name); + + if (ret.length()) + return ret; + + const char *locations[] = { +#ifdef OSX_ENABLED + "/Library/Frameworks/Mono.framework/Versions/Current/bin/", +#endif + "/opt/novell/mono/bin/" + }; + + for (int i = 0; i < sizeof(locations) / sizeof(const char *); i++) { + String location = locations[i]; + + if (FileAccess::exists(location + p_name)) { + return location; + } + } + + return String(); +} +#endif + MonoString *godot_icall_BuildInstance_get_MSBuildPath() { GodotSharpBuilds::BuildTool build_tool = GodotSharpBuilds::BuildTool(int(EditorSettings::get_singleton()->get("mono/builds/build_tool"))); -#ifdef WINDOWS_ENABLED +#if defined(WINDOWS_ENABLED) switch (build_tool) { case GodotSharpBuilds::MSBUILD: { static String msbuild_tools_path = MonoRegUtils::find_msbuild_tools_path(); @@ -84,14 +111,25 @@ MonoString *godot_icall_BuildInstance_get_MSBuildPath() { ERR_EXPLAIN("You don't deserve to live"); CRASH_NOW(); } -#else - static bool msbuild_found = path_which("msbuild").length(); - - if (build_tool != GodotSharpBuilds::XBUILD && !msbuild_found) { - WARN_PRINT("Cannot find msbuild ('mono/builds/build_tool')."); +#elif defined(UNIX_ENABLED) + static String msbuild_path = _find_build_engine_on_unix("msbuild"); + static String xbuild_path = _find_build_engine_on_unix("xbuild"); + + if (build_tool != GodotSharpBuilds::XBUILD) { + if (msbuild_path.empty()) { + WARN_PRINT("Cannot find msbuild ('mono/builds/build_tool')."); + return NULL; + } + } else { + if (xbuild_path.empty()) { + WARN_PRINT("Cannot find xbuild ('mono/builds/build_tool')."); + return NULL; + } } - return GDMonoMarshal::mono_string_from_godot(build_tool != GodotSharpBuilds::XBUILD ? "msbuild" : "xbuild"); + return GDMonoMarshal::mono_string_from_godot(build_tool != GodotSharpBuilds::XBUILD ? msbuild_path : xbuild_path); +#else + return NULL; #endif } @@ -314,8 +352,8 @@ GodotSharpBuilds::GodotSharpBuilds() { // Build tool settings EditorSettings *ed_settings = EditorSettings::get_singleton(); - if (!ed_settings->has("mono/builds/build_tool")) { - ed_settings->set("mono/builds/build_tool", MSBUILD); + if (!ed_settings->has_setting("mono/builds/build_tool")) { + ed_settings->set_setting("mono/builds/build_tool", MSBUILD); } ed_settings->add_property_hint(PropertyInfo(Variant::INT, "mono/builds/build_tool", PROPERTY_HINT_ENUM, "MSBuild (System),MSBuild (Mono),xbuild")); } @@ -423,6 +461,10 @@ void GodotSharpBuilds::BuildProcess::start(bool p_blocking) { if (p_blocking) { exited = true; exit_code = klass->get_field("exitCode")->get_int_value(mono_object); + + if (exit_code != 0 && OS::get_singleton()->is_stdout_verbose()) + OS::get_singleton()->print(String("MSBuild finished with exit code " + itos(exit_code) + "\n").utf8()); + build_tab->on_build_exit(exit_code == 0 ? MonoBuildTab::RESULT_SUCCESS : MonoBuildTab::RESULT_ERROR); } else { build_instance = MonoGCHandle::create_strong(mono_object); diff --git a/modules/mono/editor/godotsharp_editor.cpp b/modules/mono/editor/godotsharp_editor.cpp index 5aaf029495..30e7653256 100644 --- a/modules/mono/editor/godotsharp_editor.cpp +++ b/modules/mono/editor/godotsharp_editor.cpp @@ -237,8 +237,8 @@ GodotSharpEditor::GodotSharpEditor(EditorNode *p_editor) { // External editor settings EditorSettings *ed_settings = EditorSettings::get_singleton(); - if (!ed_settings->has("mono/editor/external_editor")) { - ed_settings->set("mono/editor/external_editor", EDITOR_NONE); + if (!ed_settings->has_setting("mono/editor/external_editor")) { + ed_settings->set_setting("mono/editor/external_editor", EDITOR_NONE); } ed_settings->add_property_hint(PropertyInfo(Variant::INT, "mono/editor/external_editor", PROPERTY_HINT_ENUM, "None,MonoDevelop,Visual Studio,Visual Studio Code")); } diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 77f01842bb..2c88832998 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -31,6 +31,7 @@ #include <mono/metadata/mono-config.h> #include <mono/metadata/mono-debug.h> +#include <mono/metadata/mono-gc.h> #include "os/dir_access.h" #include "os/file_access.h" @@ -265,6 +266,13 @@ void GDMono::add_assembly(uint32_t p_domain_id, GDMonoAssembly *p_assembly) { assemblies[p_domain_id][p_assembly->get_name()] = p_assembly; } +GDMonoAssembly **GDMono::get_loaded_assembly(const String &p_name) { + + MonoDomain *domain = mono_domain_get(); + uint32_t domain_id = domain ? mono_domain_get_id(domain) : 0; + return assemblies[domain_id].getptr(p_name); +} + bool GDMono::_load_assembly(const String &p_name, GDMonoAssembly **r_assembly) { CRASH_COND(!r_assembly); @@ -272,39 +280,22 @@ bool GDMono::_load_assembly(const String &p_name, GDMonoAssembly **r_assembly) { if (OS::get_singleton()->is_stdout_verbose()) OS::get_singleton()->print((String() + "Mono: Loading assembly " + p_name + "...\n").utf8()); - MonoImageOpenStatus status; + MonoImageOpenStatus status = MONO_IMAGE_OK; MonoAssemblyName *aname = mono_assembly_name_new(p_name.utf8()); MonoAssembly *assembly = mono_assembly_load_full(aname, NULL, &status, false); mono_assembly_name_free(aname); - if (!assembly) - return false; + ERR_FAIL_NULL_V(assembly, false); uint32_t domain_id = mono_domain_get_id(mono_domain_get()); GDMonoAssembly **stored_assembly = assemblies[domain_id].getptr(p_name); - if (stored_assembly) { - // Loaded by our preload hook (status is not initialized when returning from a preload hook) - ERR_FAIL_COND_V((*stored_assembly)->get_assembly() != assembly, false); - *r_assembly = *stored_assembly; - } else { - ERR_FAIL_COND_V(status != MONO_IMAGE_OK, false); - - MonoImage *assembly_image = mono_assembly_get_image(assembly); - ERR_FAIL_NULL_V(assembly_image, false); + ERR_FAIL_COND_V(status != MONO_IMAGE_OK, false); + ERR_FAIL_COND_V(stored_assembly == NULL, false); - const char *path = mono_image_get_filename(assembly_image); - - *r_assembly = memnew(GDMonoAssembly(p_name, path)); - Error error = (*r_assembly)->wrapper_for_image(assembly_image); - - if (error != OK) { - memdelete(*r_assembly); - *r_assembly = NULL; - ERR_FAIL_V(false); - } - } + ERR_FAIL_COND_V((*stored_assembly)->get_assembly() != assembly, false); + *r_assembly = *stored_assembly; if (OS::get_singleton()->is_stdout_verbose()) OS::get_singleton()->print(String("Mono: Assembly " + p_name + " loaded from path: " + (*r_assembly)->get_path() + "\n").utf8()); @@ -438,10 +429,14 @@ Error GDMono::_unload_scripts_domain() { if (mono_domain_get() != root_domain) mono_domain_set(root_domain, true); + mono_gc_collect(mono_gc_max_generation()); + finalizing_scripts_domain = true; mono_domain_finalize(scripts_domain, 2000); finalizing_scripts_domain = false; + mono_gc_collect(mono_gc_max_generation()); + _domain_assemblies_cleanup(mono_domain_get_id(scripts_domain)); api_assembly = NULL; diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h index ab96d575e6..b188c0730a 100644 --- a/modules/mono/mono_gd/gd_mono.h +++ b/modules/mono/mono_gd/gd_mono.h @@ -122,7 +122,9 @@ public: static GDMono *get_singleton() { return singleton; } + // Do not use these, unless you know what you're doing void add_assembly(uint32_t p_domain_id, GDMonoAssembly *p_assembly); + GDMonoAssembly **get_loaded_assembly(const String &p_name); _FORCE_INLINE_ bool is_runtime_initialized() const { return runtime_initialized; } _FORCE_INLINE_ bool is_finalizing_scripts_domain() const { return finalizing_scripts_domain; } diff --git a/modules/mono/mono_gd/gd_mono_assembly.cpp b/modules/mono/mono_gd/gd_mono_assembly.cpp index a98537b9e1..4b370295f3 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.cpp +++ b/modules/mono/mono_gd/gd_mono_assembly.cpp @@ -39,28 +39,60 @@ #include "../godotsharp_dirs.h" #include "gd_mono_class.h" -MonoAssembly *gdmono_load_assembly_from(const String &p_name, const String &p_path) { +bool GDMonoAssembly::no_search = false; +Vector<String> GDMonoAssembly::search_dirs; - MonoDomain *domain = mono_domain_get(); +MonoAssembly *GDMonoAssembly::_search_hook(MonoAssemblyName *aname, void *user_data) { - GDMonoAssembly *assembly = memnew(GDMonoAssembly(p_name, p_path)); - Error err = assembly->load(domain); - ERR_FAIL_COND_V(err != OK, NULL); + (void)user_data; // UNUSED - GDMono::get_singleton()->add_assembly(mono_domain_get_id(domain), assembly); + String name = mono_assembly_name_get_name(aname); + bool has_extension = name.ends_with(".dll") || name.ends_with(".exe"); - return assembly->get_assembly(); -} + if (no_search) + return NULL; -MonoAssembly *gdmono_MonoAssemblyPreLoad(MonoAssemblyName *aname, char **assemblies_path, void *user_data) { + GDMonoAssembly **loaded_asm = GDMono::get_singleton()->get_loaded_assembly(has_extension ? name.get_basename() : name); + if (loaded_asm) + return (*loaded_asm)->get_assembly(); - (void)user_data; // UNUSED + no_search = true; // Avoid the recursion madness + + String path; + MonoAssembly *res = NULL; + + for (int i = 0; i < search_dirs.size(); i++) { + const String &search_dir = search_dirs[i]; - MonoAssembly *assembly_loaded = mono_assembly_loaded(aname); - if (assembly_loaded) // Already loaded - return assembly_loaded; + if (has_extension) { + path = search_dir.plus_file(name); + if (FileAccess::exists(path)) { + res = _load_assembly_from(name.get_basename(), path); + break; + } + } else { + path = search_dir.plus_file(name + ".dll"); + if (FileAccess::exists(path)) { + res = _load_assembly_from(name, path); + break; + } + + path = search_dir.plus_file(name + ".exe"); + if (FileAccess::exists(path)) { + res = _load_assembly_from(name, path); + break; + } + } + } - static Vector<String> search_dirs; + no_search = false; + + return res; +} + +MonoAssembly *GDMonoAssembly::_preload_hook(MonoAssemblyName *aname, char **assemblies_path, void *user_data) { + + (void)user_data; // UNUSED if (search_dirs.empty()) { search_dirs.push_back(GodotSharpDirs::get_res_temp_assemblies_dir()); @@ -80,35 +112,32 @@ MonoAssembly *gdmono_MonoAssemblyPreLoad(MonoAssemblyName *aname, char **assembl } } - String name = mono_assembly_name_get_name(aname); - bool has_extension = name.ends_with(".dll") || name.ends_with(".exe"); + return NULL; +} - String path; +MonoAssembly *GDMonoAssembly::_load_assembly_from(const String &p_name, const String &p_path) { - for (int i = 0; i < search_dirs.size(); i++) { - const String &search_dir = search_dirs[i]; + GDMonoAssembly *assembly = memnew(GDMonoAssembly(p_name, p_path)); - if (has_extension) { - path = search_dir.plus_file(name); - if (FileAccess::exists(path)) - return gdmono_load_assembly_from(name.get_basename(), path); - } else { - path = search_dir.plus_file(name + ".dll"); - if (FileAccess::exists(path)) - return gdmono_load_assembly_from(name, path); + MonoDomain *domain = mono_domain_get(); - path = search_dir.plus_file(name + ".exe"); - if (FileAccess::exists(path)) - return gdmono_load_assembly_from(name, path); - } + Error err = assembly->load(domain); + + if (err != OK) { + memdelete(assembly); + ERR_FAIL_V(NULL); } - return NULL; + GDMono::get_singleton()->add_assembly(domain ? mono_domain_get_id(domain) : 0, assembly); + + return assembly->get_assembly(); } void GDMonoAssembly::initialize() { - mono_install_assembly_preload_hook(&gdmono_MonoAssemblyPreLoad, NULL); + // TODO refonly as well? + mono_install_assembly_preload_hook(&GDMonoAssembly::_preload_hook, NULL); + mono_install_assembly_search_hook(&GDMonoAssembly::_search_hook, NULL); } Error GDMonoAssembly::load(MonoDomain *p_domain) { @@ -153,7 +182,7 @@ no_pdb: ERR_FAIL_COND_V(status != MONO_IMAGE_OK || assembly == NULL, ERR_FILE_CANT_OPEN); - if (mono_image_get_entry_point(image)) { + if (p_domain && mono_image_get_entry_point(image)) { // TODO should this be removed? do we want to call main? what other effects does this have? mono_jit_exec(p_domain, assembly, 0, NULL); } diff --git a/modules/mono/mono_gd/gd_mono_assembly.h b/modules/mono/mono_gd/gd_mono_assembly.h index 89e091549c..710b674622 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.h +++ b/modules/mono/mono_gd/gd_mono_assembly.h @@ -86,6 +86,14 @@ class GDMonoAssembly { Vector<uint8_t> pdb_data; #endif + static bool no_search; + static Vector<String> search_dirs; + + static MonoAssembly *_search_hook(MonoAssemblyName *aname, void *user_data); + static MonoAssembly *_preload_hook(MonoAssemblyName *aname, char **assemblies_path, void *user_data); + + static MonoAssembly *_load_assembly_from(const String &p_name, const String &p_path); + friend class GDMono; static void initialize(); diff --git a/modules/mono/mono_gd/gd_mono_field.cpp b/modules/mono/mono_gd/gd_mono_field.cpp index 0c64380e31..c2d8eeaa32 100644 --- a/modules/mono/mono_gd/gd_mono_field.cpp +++ b/modules/mono/mono_gd/gd_mono_field.cpp @@ -279,11 +279,11 @@ void GDMonoField::set_value(MonoObject *p_object, const Variant &p_value) { } bool GDMonoField::get_bool_value(MonoObject *p_object) { - return UNBOX_BOOLEAN(get_value(p_object)); + return (bool)GDMonoMarshal::unbox<MonoBoolean>(get_value(p_object)); } int GDMonoField::get_int_value(MonoObject *p_object) { - return UNBOX_INT32(get_value(p_object)); + return GDMonoMarshal::unbox<int32_t>(get_value(p_object)); } String GDMonoField::get_string_value(MonoObject *p_object) { diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp index b5419952de..b64915109f 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.cpp +++ b/modules/mono/mono_gd/gd_mono_marshal.cpp @@ -41,11 +41,11 @@ namespace GDMonoMarshal { return mono_value_box(mono_domain_get(), CACHED_CLASS_RAW(m_t), raw); \ } -#define RETURN_UNBOXED_STRUCT(m_t, m_var_in) \ - { \ - float *raw = UNBOX_FLOAT_PTR(m_var_in); \ - MARSHALLED_IN(m_t, raw, ret); \ - return ret; \ +#define RETURN_UNBOXED_STRUCT(m_t, m_var_in) \ + { \ + float *raw = (float *)mono_object_unbox(m_var_in); \ + MARSHALLED_IN(m_t, raw, ret); \ + return ret; \ } Variant::Type managed_to_variant_type(const ManagedType &p_type) { @@ -453,30 +453,30 @@ Variant mono_object_to_variant(MonoObject *p_obj) { Variant mono_object_to_variant(MonoObject *p_obj, const ManagedType &p_type) { switch (p_type.type_encoding) { case MONO_TYPE_BOOLEAN: - return (bool)UNBOX_BOOLEAN(p_obj); + return (bool)unbox<MonoBoolean>(p_obj); case MONO_TYPE_I1: - return UNBOX_INT8(p_obj); + return unbox<int8_t>(p_obj); case MONO_TYPE_I2: - return UNBOX_INT16(p_obj); + return unbox<int16_t>(p_obj); case MONO_TYPE_I4: - return UNBOX_INT32(p_obj); + return unbox<int32_t>(p_obj); case MONO_TYPE_I8: - return UNBOX_INT64(p_obj); + return unbox<int64_t>(p_obj); case MONO_TYPE_U1: - return UNBOX_UINT8(p_obj); + return unbox<uint8_t>(p_obj); case MONO_TYPE_U2: - return UNBOX_UINT16(p_obj); + return unbox<uint16_t>(p_obj); case MONO_TYPE_U4: - return UNBOX_UINT32(p_obj); + return unbox<uint32_t>(p_obj); case MONO_TYPE_U8: - return UNBOX_UINT64(p_obj); + return unbox<uint64_t>(p_obj); case MONO_TYPE_R4: - return UNBOX_FLOAT(p_obj); + return unbox<float>(p_obj); case MONO_TYPE_R8: - return UNBOX_DOUBLE(p_obj); + return unbox<double>(p_obj); case MONO_TYPE_STRING: { String str = mono_string_to_godot((MonoString *)p_obj); @@ -554,29 +554,18 @@ Variant mono_object_to_variant(MonoObject *p_obj, const ManagedType &p_type) { // GodotObject if (CACHED_CLASS(GodotObject)->is_assignable_from(type_class)) { - GDMonoField *ptr_field = CACHED_FIELD(GodotObject, ptr); - - ERR_FAIL_NULL_V(ptr_field, Variant()); - - void *ptr_to_unmanaged = UNBOX_PTR(ptr_field->get_value(p_obj)); - - if (!ptr_to_unmanaged) // IntPtr.Zero - return Variant(); - - Object *object_ptr = static_cast<Object *>(ptr_to_unmanaged); - - if (!object_ptr) - return Variant(); - - return object_ptr; + Object *ptr = unbox<Object *>(CACHED_FIELD(GodotObject, ptr)->get_value(p_obj)); + return ptr ? Variant(ptr) : Variant(); } if (CACHED_CLASS(NodePath) == type_class) { - return UNBOX_PTR(CACHED_FIELD(NodePath, ptr)->get_value(p_obj)); + NodePath *ptr = unbox<NodePath *>(CACHED_FIELD(NodePath, ptr)->get_value(p_obj)); + return ptr ? Variant(*ptr) : Variant(); } if (CACHED_CLASS(RID) == type_class) { - return UNBOX_PTR(CACHED_FIELD(RID, ptr)->get_value(p_obj)); + RID *ptr = unbox<RID *>(CACHED_FIELD(RID, ptr)->get_value(p_obj)); + return ptr ? Variant(*ptr) : Variant(); } } break; diff --git a/modules/mono/mono_gd/gd_mono_marshal.h b/modules/mono/mono_gd/gd_mono_marshal.h index 5fbafa0acb..38dd22357d 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.h +++ b/modules/mono/mono_gd/gd_mono_marshal.h @@ -36,21 +36,10 @@ namespace GDMonoMarshal { -#define UNBOX_CHAR_PTR(x) (char *)mono_object_unbox(x) -#define UNBOX_FLOAT_PTR(x) (float *)mono_object_unbox(x) - -#define UNBOX_DOUBLE(x) *(double *)mono_object_unbox(x) -#define UNBOX_FLOAT(x) *(float *)mono_object_unbox(x) -#define UNBOX_INT64(x) *(int64_t *)mono_object_unbox(x) -#define UNBOX_INT32(x) *(int32_t *)mono_object_unbox(x) -#define UNBOX_INT16(x) *(int16_t *)mono_object_unbox(x) -#define UNBOX_INT8(x) *(int8_t *)mono_object_unbox(x) -#define UNBOX_UINT64(x) *(uint64_t *)mono_object_unbox(x) -#define UNBOX_UINT32(x) *(uint32_t *)mono_object_unbox(x) -#define UNBOX_UINT16(x) *(uint16_t *)mono_object_unbox(x) -#define UNBOX_UINT8(x) *(uint8_t *)mono_object_unbox(x) -#define UNBOX_BOOLEAN(x) *(MonoBoolean *)mono_object_unbox(x) -#define UNBOX_PTR(x) mono_object_unbox(x) +template <typename T> +T unbox(MonoObject *p_obj) { + return *(T *)mono_object_unbox(p_obj); +} #define BOX_DOUBLE(x) mono_value_box(mono_domain_get(), CACHED_CLASS_RAW(double), &x) #define BOX_FLOAT(x) mono_value_box(mono_domain_get(), CACHED_CLASS_RAW(float), &x) diff --git a/modules/mono/mono_reg_utils.py b/modules/mono/mono_reg_utils.py index 6f1620ff49..e9988625f5 100644 --- a/modules/mono/mono_reg_utils.py +++ b/modules/mono/mono_reg_utils.py @@ -1,7 +1,11 @@ import os if os.name == 'nt': - import _winreg as winreg + import sys + if sys.version_info < (3,): + import _winreg as winreg + else: + import winreg def _reg_open_key(key, subkey): diff --git a/modules/visual_script/visual_script_nodes.cpp b/modules/visual_script/visual_script_nodes.cpp index d96dfebe6c..5a34fc3cd9 100644 --- a/modules/visual_script/visual_script_nodes.cpp +++ b/modules/visual_script/visual_script_nodes.cpp @@ -1109,7 +1109,7 @@ void VisualScriptConstant::_bind_methods() { } ADD_PROPERTY(PropertyInfo(Variant::INT, "type", PROPERTY_HINT_ENUM, argt), "set_constant_type", "get_constant_type"); - ADD_PROPERTY(PropertyInfo(Variant::NIL, "value"), "set_constant_value", "get_constant_value"); + ADD_PROPERTY(PropertyInfo(Variant::NIL, "value", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NIL_IS_VARIANT), "set_constant_value", "get_constant_value"); } class VisualScriptNodeInstanceConstant : public VisualScriptNodeInstance { |