diff options
Diffstat (limited to 'modules')
78 files changed, 4450 insertions, 3662 deletions
diff --git a/modules/SCsub b/modules/SCsub index fb46c5f877..9155a53eaf 100644 --- a/modules/SCsub +++ b/modules/SCsub @@ -3,6 +3,7 @@ Import("env") import modules_builders +import os env_modules = env.Clone() @@ -13,16 +14,20 @@ env.CommandNoCache("modules_enabled.gen.h", Value(env.module_list), modules_buil vs_sources = [] # libmodule_<name>.a for each active module. -for module in env.module_list: +for name, path in env.module_list.items(): env.modules_sources = [] - SConscript(module + "/SCsub") + + if not os.path.isabs(path): + SConscript(name + "/SCsub") # Built-in. + else: + SConscript(path + "/SCsub") # Custom. # Some modules are not linked automatically but can be enabled optionally # on iOS, so we handle those specially. - if env["platform"] == "iphone" and module in ["arkit", "camera"]: + if env["platform"] == "iphone" and name in ["arkit", "camera"]: continue - lib = env_modules.add_library("module_%s" % module, env.modules_sources) + lib = env_modules.add_library("module_%s" % name, env.modules_sources) env.Prepend(LIBS=[lib]) if env["vsproj"]: vs_sources += env.modules_sources diff --git a/modules/assimp/editor_scene_importer_assimp.cpp b/modules/assimp/editor_scene_importer_assimp.cpp index 9c90faf66b..aedc4b690a 100644 --- a/modules/assimp/editor_scene_importer_assimp.cpp +++ b/modules/assimp/editor_scene_importer_assimp.cpp @@ -44,7 +44,6 @@ #include <assimp/scene.h> #include <assimp/Importer.hpp> #include <assimp/LogStream.hpp> -#include <string> // move into assimp aiBone *get_bone_by_name(const aiScene *scene, aiString bone_name) { @@ -102,8 +101,6 @@ void EditorSceneImporterAssimp::_bind_methods() { Node *EditorSceneImporterAssimp::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) { Assimp::Importer importer; - std::wstring w_path = ProjectSettings::get_singleton()->globalize_path(p_path).c_str(); - std::string s_path(w_path.begin(), w_path.end()); importer.SetPropertyBool(AI_CONFIG_PP_FD_REMOVE, true); // Cannot remove pivot points because the static mesh will be in the wrong place importer.SetPropertyBool(AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS, false); @@ -145,7 +142,8 @@ Node *EditorSceneImporterAssimp::import_scene(const String &p_path, uint32_t p_f // aiProcess_EmbedTextures | //aiProcess_SplitByBoneCount | 0; - aiScene *scene = (aiScene *)importer.ReadFile(s_path.c_str(), post_process_Steps); + String g_path = ProjectSettings::get_singleton()->globalize_path(p_path); + aiScene *scene = (aiScene *)importer.ReadFile(g_path.utf8().ptr(), post_process_Steps); ERR_FAIL_COND_V_MSG(scene == nullptr, nullptr, String("Open Asset Import failed to open: ") + String(importer.GetErrorString())); @@ -298,6 +296,7 @@ EditorSceneImporterAssimp::_generate_scene(const String &p_path, aiScene *scene, state.assimp_scene = scene; state.max_bone_weights = p_max_bone_weights; state.animation_player = nullptr; + state.import_flags = p_flags; // populate light map for (unsigned int l = 0; l < scene->mNumLights; l++) { @@ -829,6 +828,8 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat Ref<ArrayMesh> mesh; mesh.instance(); bool has_uvs = false; + bool compress_vert_data = state.import_flags & IMPORT_USE_COMPRESSION; + uint32_t mesh_flags = compress_vert_data ? Mesh::ARRAY_COMPRESS_DEFAULT : 0; Map<String, uint32_t> morph_mesh_string_lookup; @@ -1266,7 +1267,7 @@ EditorSceneImporterAssimp::_generate_mesh_from_surface_indices(ImportState &stat morphs[j] = array_copy; } - mesh->add_surface_from_arrays(primitive, array_mesh, morphs); + mesh->add_surface_from_arrays(primitive, array_mesh, morphs, Dictionary(), mesh_flags); mesh->surface_set_material(i, mat); mesh->surface_set_name(i, AssimpUtils::get_assimp_string(ai_mesh->mName)); } diff --git a/modules/assimp/import_state.h b/modules/assimp/import_state.h index 4a3bd17acb..ee22800ac4 100644 --- a/modules/assimp/import_state.h +++ b/modules/assimp/import_state.h @@ -87,6 +87,9 @@ struct ImportState { // this means we can detect // what bones are for other armatures List<aiBone *> bone_stack; + + // EditorSceneImporter::ImportFlags + uint32_t import_flags; }; struct AssimpImageData { diff --git a/modules/bullet/area_bullet.h b/modules/bullet/area_bullet.h index cde889c1ba..c0bcc858fe 100644 --- a/modules/bullet/area_bullet.h +++ b/modules/bullet/area_bullet.h @@ -93,7 +93,7 @@ private: Vector3 spOv_gravityVec = Vector3(0, -1, 0); real_t spOv_gravityMag = 10; real_t spOv_linearDump = 0.1; - real_t spOv_angularDump = 1; + real_t spOv_angularDump = 0.1; int spOv_priority = 0; bool isScratched = false; diff --git a/modules/bullet/shape_bullet.h b/modules/bullet/shape_bullet.h index b24ded574f..a35a1d8a18 100644 --- a/modules/bullet/shape_bullet.h +++ b/modules/bullet/shape_bullet.h @@ -31,7 +31,7 @@ #ifndef SHAPE_BULLET_H #define SHAPE_BULLET_H -#include "core/math/geometry.h" +#include "core/math/geometry_3d.h" #include "core/variant.h" #include "rid_bullet.h" #include "servers/physics_server_3d.h" diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp index df798623f9..ded0b970dc 100644 --- a/modules/csg/csg.cpp +++ b/modules/csg/csg.cpp @@ -30,7 +30,7 @@ #include "csg.h" -#include "core/math/geometry.h" +#include "core/math/geometry_2d.h" #include "core/math/math_funcs.h" #include "core/sort_array.h" @@ -964,7 +964,7 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_ face_points[face_edge_idx], face_points[(face_edge_idx + 1) % 3] }; - Vector2 closest_point = Geometry::get_closest_point_to_segment_2d(point_2D, edge_points); + Vector2 closest_point = Geometry2D::get_closest_point_to_segment(point_2D, edge_points); if ((closest_point - point_2D).length_squared() < vertex_snap2) { int opposite_vertex_idx = face.vertex_idx[(face_edge_idx + 2) % 3]; @@ -1028,7 +1028,7 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s // First check if the ends of the segment are on the edge. bool on_edge = false; for (int edge_point_idx = 0; edge_point_idx < 2; ++edge_point_idx) { - intersection_point = Geometry::get_closest_point_to_segment_2d(p_segment_points[edge_point_idx], edge_points); + intersection_point = Geometry2D::get_closest_point_to_segment(p_segment_points[edge_point_idx], edge_points); if ((intersection_point - p_segment_points[edge_point_idx]).length_squared() < vertex_snap2) { on_edge = true; break; @@ -1036,7 +1036,7 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s } // Else check if the segment intersects the edge. - if (on_edge || Geometry::segment_intersects_segment_2d(p_segment_points[0], p_segment_points[1], edge_points[0], edge_points[1], &intersection_point)) { + if (on_edge || Geometry2D::segment_intersects_segment(p_segment_points[0], p_segment_points[1], edge_points[0], edge_points[1], &intersection_point)) { // Check if intersection point is an edge point. if ((intersection_point - edge_points[0]).length_squared() < vertex_snap2 || (intersection_point - edge_points[1]).length_squared() < vertex_snap2) { @@ -1074,7 +1074,7 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s } // If opposite point is on the segemnt, add its index to segment indices too. - Vector2 closest_point = Geometry::get_closest_point_to_segment_2d(vertices[opposite_vertex_idx].point, p_segment_points); + Vector2 closest_point = Geometry2D::get_closest_point_to_segment(vertices[opposite_vertex_idx].point, p_segment_points); if ((closest_point - vertices[opposite_vertex_idx].point).length_squared() < vertex_snap2) { _add_vertex_idx_sorted(r_segment_indices, opposite_vertex_idx); } @@ -1141,7 +1141,7 @@ int CSGBrushOperation::Build2DFaces::_insert_point(const Vector2 &p_point) { uvs[(face_edge_idx + 1) % 3] }; - Vector2 closest_point = Geometry::get_closest_point_to_segment_2d(p_point, edge_points); + Vector2 closest_point = Geometry2D::get_closest_point_to_segment(p_point, edge_points); if ((closest_point - p_point).length_squared() < vertex_snap2) { on_edge = true; @@ -1192,7 +1192,7 @@ int CSGBrushOperation::Build2DFaces::_insert_point(const Vector2 &p_point) { } // If not on an edge, check if the point is inside the face. - if (!on_edge && Geometry::is_point_in_triangle(p_point, face_vertices[0].point, face_vertices[1].point, face_vertices[2].point)) { + if (!on_edge && Geometry2D::is_point_in_triangle(p_point, face_vertices[0].point, face_vertices[1].point, face_vertices[2].point)) { // Add the point as a new vertex. Vertex2D new_vertex; new_vertex.point = p_point; diff --git a/modules/csg/csg_gizmos.cpp b/modules/csg/csg_gizmos.cpp index 9fa7dc1340..cce72770f5 100644 --- a/modules/csg/csg_gizmos.cpp +++ b/modules/csg/csg_gizmos.cpp @@ -120,7 +120,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca CSGSphere3D *s = Object::cast_to<CSGSphere3D>(cs); Vector3 ra, rb; - Geometry::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); + Geometry3D::get_closest_points_between_segments(Vector3(), Vector3(4096, 0, 0), sg[0], sg[1], ra, rb); float d = ra.x; if (Node3DEditor::get_singleton()->is_snap_enabled()) { d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); @@ -139,7 +139,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca Vector3 axis; axis[p_idx] = 1.0; Vector3 ra, rb; - Geometry::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); + Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); float d = ra[p_idx]; if (Node3DEditor::get_singleton()->is_snap_enabled()) { d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); @@ -168,7 +168,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca Vector3 axis; axis[p_idx == 0 ? 0 : 1] = 1.0; Vector3 ra, rb; - Geometry::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); + Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); float d = axis.dot(ra); if (Node3DEditor::get_singleton()->is_snap_enabled()) { d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); @@ -191,7 +191,7 @@ void CSGShape3DGizmoPlugin::set_handle(EditorNode3DGizmo *p_gizmo, int p_idx, Ca Vector3 axis; axis[0] = 1.0; Vector3 ra, rb; - Geometry::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); + Geometry3D::get_closest_points_between_segments(Vector3(), axis * 4096, sg[0], sg[1], ra, rb); float d = axis.dot(ra); if (Node3DEditor::get_singleton()->is_snap_enabled()) { d = Math::stepify(d, Node3DEditor::get_singleton()->get_translate_snap()); diff --git a/modules/csg/csg_shape.cpp b/modules/csg/csg_shape.cpp index 7df65b04c4..cea006364f 100644 --- a/modules/csg/csg_shape.cpp +++ b/modules/csg/csg_shape.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "csg_shape.h" +#include "core/math/geometry_2d.h" #include "scene/3d/path_3d.h" void CSGShape3D::set_use_collision(bool p_enable) { @@ -1728,7 +1729,7 @@ CSGBrush *CSGPolygon3D::_build_brush() { final_polygon.invert(); } - Vector<int> triangles = Geometry::triangulate_polygon(final_polygon); + Vector<int> triangles = Geometry2D::triangulate_polygon(final_polygon); if (triangles.size() < 3) { return nullptr; diff --git a/modules/dds/texture_loader_dds.cpp b/modules/dds/texture_loader_dds.cpp index ba425371a8..2f4f7d7a4c 100644 --- a/modules/dds/texture_loader_dds.cpp +++ b/modules/dds/texture_loader_dds.cpp @@ -29,14 +29,15 @@ /*************************************************************************/ #include "texture_loader_dds.h" + #include "core/os/file_access.h" #define PF_FOURCC(s) ((uint32_t)(((s)[3] << 24U) | ((s)[2] << 16U) | ((s)[1] << 8U) | ((s)[0]))) +// Reference: https://docs.microsoft.com/en-us/windows/win32/direct3ddds/dds-header + enum { DDS_MAGIC = 0x20534444, - DDSD_CAPS = 0x00000001, - DDSD_PIXELFORMAT = 0x00001000, DDSD_PITCH = 0x00000008, DDSD_LINEARSIZE = 0x00080000, DDSD_MIPMAPCOUNT = 0x00020000, @@ -47,7 +48,6 @@ enum { }; enum DDSFormat { - DDS_DXT1, DDS_DXT3, DDS_DXT5, @@ -128,7 +128,9 @@ RES ResourceFormatDDS::load(const String &p_path, const String &p_original_path, //validate - if (magic != DDS_MAGIC || hsize != 124 || !(flags & DDSD_PIXELFORMAT) || !(flags & DDSD_CAPS)) { + // We don't check DDSD_CAPS or DDSD_PIXELFORMAT, as they're mandatory when writing, + // but non-mandatory when reading (as some writers don't set them)... + if (magic != DDS_MAGIC || hsize != 124) { ERR_FAIL_V_MSG(RES(), "Invalid or unsupported DDS texture file '" + p_path + "'."); } diff --git a/modules/denoise/config.py b/modules/denoise/config.py index 53b8f2f2e3..091d7643c0 100644 --- a/modules/denoise/config.py +++ b/modules/denoise/config.py @@ -1,5 +1,11 @@ def can_build(env, platform): - return env["tools"] + # Thirdparty dependency OpenImage Denoise includes oneDNN library + # which only supports 64-bit architectures. + # It's also only relevant for tools build and desktop platforms, + # as doing lightmap generation and denoising on Android or HTML5 + # would be a bit far-fetched. + desktop_platforms = ["linuxbsd", "osx", "windows"] + return env["tools"] and platform in desktop_platforms and env["bits"] == "64" def configure(env): diff --git a/modules/gdnative/config.py b/modules/gdnative/config.py index 4b997e4bfe..7603e7d69d 100644 --- a/modules/gdnative/config.py +++ b/modules/gdnative/config.py @@ -8,7 +8,6 @@ def configure(env): def get_doc_classes(): return [ - "@NativeScript", "XRInterfaceGDNative", "GDNative", "GDNativeLibrary", diff --git a/modules/gdnative/doc_classes/@NativeScript.xml b/modules/gdnative/doc_classes/@NativeScript.xml deleted file mode 100644 index 809b225e21..0000000000 --- a/modules/gdnative/doc_classes/@NativeScript.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="@NativeScript" version="4.0"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/modules/gdnative/gdnative/packed_arrays.cpp b/modules/gdnative/gdnative/packed_arrays.cpp index 675d66056a..fc71d50289 100644 --- a/modules/gdnative/gdnative/packed_arrays.cpp +++ b/modules/gdnative/gdnative/packed_arrays.cpp @@ -78,6 +78,16 @@ void GDAPI godot_packed_byte_array_new_with_array(godot_packed_byte_array *r_des } } +const uint8_t GDAPI *godot_packed_byte_array_ptr(const godot_packed_byte_array *p_self) { + const Vector<uint8_t> *self = (const Vector<uint8_t> *)p_self; + return self->ptr(); +} + +uint8_t GDAPI *godot_packed_byte_array_ptrw(godot_packed_byte_array *p_self) { + Vector<uint8_t> *self = (Vector<uint8_t> *)p_self; + return self->ptrw(); +} + void GDAPI godot_packed_byte_array_append(godot_packed_byte_array *p_self, const uint8_t p_data) { Vector<uint8_t> *self = (Vector<uint8_t> *)p_self; self->push_back(p_data); @@ -162,6 +172,16 @@ void GDAPI godot_packed_int32_array_new_with_array(godot_packed_int32_array *r_d } } +const int32_t GDAPI *godot_packed_int32_array_ptr(const godot_packed_int32_array *p_self) { + const Vector<int32_t> *self = (const Vector<int32_t> *)p_self; + return self->ptr(); +} + +int32_t GDAPI *godot_packed_int32_array_ptrw(godot_packed_int32_array *p_self) { + Vector<int32_t> *self = (Vector<int32_t> *)p_self; + return self->ptrw(); +} + void GDAPI godot_packed_int32_array_append(godot_packed_int32_array *p_self, const int32_t p_data) { Vector<int32_t> *self = (Vector<int32_t> *)p_self; self->push_back(p_data); @@ -246,6 +266,16 @@ void GDAPI godot_packed_int64_array_new_with_array(godot_packed_int64_array *r_d } } +const int64_t GDAPI *godot_packed_int64_array_ptr(const godot_packed_int64_array *p_self) { + const Vector<int64_t> *self = (const Vector<int64_t> *)p_self; + return self->ptr(); +} + +int64_t GDAPI *godot_packed_int64_array_ptrw(godot_packed_int64_array *p_self) { + Vector<int64_t> *self = (Vector<int64_t> *)p_self; + return self->ptrw(); +} + void GDAPI godot_packed_int64_array_append(godot_packed_int64_array *p_self, const int64_t p_data) { Vector<int64_t> *self = (Vector<int64_t> *)p_self; self->push_back(p_data); @@ -330,6 +360,16 @@ void GDAPI godot_packed_float32_array_new_with_array(godot_packed_float32_array } } +const float GDAPI *godot_packed_float32_array_ptr(const godot_packed_float32_array *p_self) { + const Vector<float> *self = (const Vector<float> *)p_self; + return self->ptr(); +} + +float GDAPI *godot_packed_float32_array_ptrw(godot_packed_float32_array *p_self) { + Vector<float> *self = (Vector<float> *)p_self; + return self->ptrw(); +} + void GDAPI godot_packed_float32_array_append(godot_packed_float32_array *p_self, const float p_data) { Vector<float> *self = (Vector<float> *)p_self; self->push_back(p_data); @@ -414,6 +454,16 @@ void GDAPI godot_packed_float64_array_new_with_array(godot_packed_float64_array } } +const double GDAPI *godot_packed_float64_array_ptr(const godot_packed_float64_array *p_self) { + const Vector<double> *self = (const Vector<double> *)p_self; + return self->ptr(); +} + +double GDAPI *godot_packed_float64_array_ptrw(godot_packed_float64_array *p_self) { + Vector<double> *self = (Vector<double> *)p_self; + return self->ptrw(); +} + void GDAPI godot_packed_float64_array_append(godot_packed_float64_array *p_self, const double p_data) { Vector<double> *self = (Vector<double> *)p_self; self->push_back(p_data); @@ -498,6 +548,16 @@ void GDAPI godot_packed_string_array_new_with_array(godot_packed_string_array *r } } +const godot_string GDAPI *godot_packed_string_array_ptr(const godot_packed_string_array *p_self) { + const Vector<String> *self = (const Vector<String> *)p_self; + return (const godot_string *)self->ptr(); +} + +godot_string GDAPI *godot_packed_string_array_ptrw(godot_packed_string_array *p_self) { + Vector<String> *self = (Vector<String> *)p_self; + return (godot_string *)self->ptrw(); +} + void GDAPI godot_packed_string_array_append(godot_packed_string_array *p_self, const godot_string *p_data) { Vector<String> *self = (Vector<String> *)p_self; String &s = *(String *)p_data; @@ -590,6 +650,16 @@ void GDAPI godot_packed_vector2_array_new_with_array(godot_packed_vector2_array } } +const godot_vector2 GDAPI *godot_packed_vector2_array_ptr(const godot_packed_vector2_array *p_self) { + const Vector<Vector2> *self = (const Vector<Vector2> *)p_self; + return (const godot_vector2 *)self->ptr(); +} + +godot_vector2 GDAPI *godot_packed_vector2_array_ptrw(godot_packed_vector2_array *p_self) { + Vector<Vector2> *self = (Vector<Vector2> *)p_self; + return (godot_vector2 *)self->ptrw(); +} + void GDAPI godot_packed_vector2_array_append(godot_packed_vector2_array *p_self, const godot_vector2 *p_data) { Vector<Vector2> *self = (Vector<Vector2> *)p_self; Vector2 &s = *(Vector2 *)p_data; @@ -681,6 +751,16 @@ void GDAPI godot_packed_vector3_array_new_with_array(godot_packed_vector3_array } } +const godot_vector3 GDAPI *godot_packed_vector3_array_ptr(const godot_packed_vector3_array *p_self) { + const Vector<Vector3> *self = (const Vector<Vector3> *)p_self; + return (const godot_vector3 *)self->ptr(); +} + +godot_vector3 GDAPI *godot_packed_vector3_array_ptrw(godot_packed_vector3_array *p_self) { + Vector<Vector3> *self = (Vector<Vector3> *)p_self; + return (godot_vector3 *)self->ptrw(); +} + void GDAPI godot_packed_vector3_array_append(godot_packed_vector3_array *p_self, const godot_vector3 *p_data) { Vector<Vector3> *self = (Vector<Vector3> *)p_self; Vector3 &s = *(Vector3 *)p_data; @@ -772,6 +852,16 @@ void GDAPI godot_packed_color_array_new_with_array(godot_packed_color_array *r_d } } +const godot_color GDAPI *godot_packed_color_array_ptr(const godot_packed_color_array *p_self) { + const Vector<Color> *self = (const Vector<Color> *)p_self; + return (const godot_color *)self->ptr(); +} + +godot_color GDAPI *godot_packed_color_array_ptrw(godot_packed_color_array *p_self) { + Vector<Color> *self = (Vector<Color> *)p_self; + return (godot_color *)self->ptrw(); +} + void GDAPI godot_packed_color_array_append(godot_packed_color_array *p_self, const godot_color *p_data) { Vector<Color> *self = (Vector<Color> *)p_self; Color &s = *(Color *)p_data; diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 9c38c8b58d..ccd8d2041c 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -2,2248 +2,580 @@ "core": { "type": "CORE", "version": { - "major": 1, + "major": 4, "minor": 0 }, - "next": { - "type": "CORE", - "version": { - "major": 1, - "minor": 1 - }, - "next": { - "type": "CORE", - "version": { - "major": 1, - "minor": 2 - }, - "next": { - "type": "CORE", - "version": { - "major": 1, - "minor": 3 - }, - "next": null, - "api": [ - { - "name": "godot_object_get_instance_id", - "return_type": "uint64_t", - "arguments": [ - ["const godot_object *", "p_object"] - ] - }, - { - "name": "godot_array_new_packed_float64_array", - "return_type": "void", - "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_float64_array *", "p_pra"] - ] - }, - { - "name": "godot_array_new_packed_int64_array", - "return_type": "void", - "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_int64_array *", "p_pia"] - ] - }, - { - "name": "godot_callable_new_with_object", - "return_type": "void", - "arguments": [ - ["godot_callable *", "r_dest"], - ["const godot_object *", "p_object"], - ["const godot_string_name *", "p_method"] - ] - }, - { - "name": "godot_callable_new_with_object_id", - "return_type": "void", - "arguments": [ - ["godot_callable *", "r_dest"], - ["uint64_t", "p_objectid"], - ["const godot_string_name *", "p_method"] - ] - }, - { - "name": "godot_callable_new_copy", - "return_type": "void", - "arguments": [ - ["godot_callable *", "r_dest"], - ["const godot_callable *", "p_src"] - ] - }, - { - "name": "godot_callable_destroy", - "return_type": "void", - "arguments": [ - ["godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_call", - "return_type": "godot_int", - "arguments": [ - ["const godot_callable *", "p_self"], - ["const godot_variant **", "p_arguments"], - ["godot_int", "p_argcount"], - ["godot_variant *", "r_return_value"] - ] - }, - { - "name": "godot_callable_call_deferred", - "return_type": "void", - "arguments": [ - ["const godot_callable *", "p_self"], - ["const godot_variant **", "p_arguments"], - ["godot_int", "p_argcount"] - ] - }, - { - "name": "godot_callable_is_null", - "return_type": "godot_bool", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_is_custom", - "return_type": "godot_bool", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_is_standard", - "return_type": "godot_bool", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_get_object", - "return_type": "godot_object *", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_get_object_id", - "return_type": "uint64_t", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_get_method", - "return_type": "godot_string_name", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_hash", - "return_type": "uint32_t", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_as_string", - "return_type": "godot_string", - "arguments": [ - ["const godot_callable *", "p_self"] - ] - }, - { - "name": "godot_callable_operator_equal", - "return_type": "godot_bool", - "arguments": [ - ["const godot_callable *", "p_self"], - ["const godot_callable *", "p_other"] - ] - }, - { - "name": "godot_callable_operator_less", - "return_type": "godot_bool", - "arguments": [ - ["const godot_callable *", "p_self"], - ["const godot_callable *", "p_other"] - ] - }, - { - "name": "godot_signal_new_with_object", - "return_type": "void", - "arguments": [ - ["godot_signal *", "r_dest"], - ["const godot_object *", "p_object"], - ["const godot_string_name *", "p_method"] - ] - }, - { - "name": "godot_signal_new_with_object_id", - "return_type": "void", - "arguments": [ - ["godot_signal *", "r_dest"], - ["uint64_t", "p_objectid"], - ["const godot_string_name *", "p_method"] - ] - }, - { - "name": "godot_signal_new_copy", - "return_type": "void", - "arguments": [ - ["godot_signal *", "r_dest"], - ["const godot_signal *", "p_src"] - ] - }, - { - "name": "godot_signal_destroy", - "return_type": "void", - "arguments": [ - ["godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_emit", - "return_type": "godot_int", - "arguments": [ - ["const godot_signal *", "p_self"], - ["const godot_variant **", "p_arguments"], - ["godot_int", "p_argcount"] - ] - }, - { - "name": "godot_signal_connect", - "return_type": "godot_int", - "arguments": [ - ["godot_signal *", "p_self"], - ["const godot_callable *", "p_callable"], - ["const godot_array *", "p_binds"], - ["uint32_t", "p_flags"] - ] - }, - { - "name": "godot_signal_disconnect", - "return_type": "void", - "arguments": [ - ["godot_signal *", "p_self"], - ["const godot_callable *", "p_callable"] - ] - }, - { - "name": "godot_signal_is_null", - "return_type": "godot_bool", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_is_connected", - "return_type": "godot_bool", - "arguments": [ - ["const godot_signal *", "p_self"], - ["const godot_callable *", "p_callable"] - ] - }, - { - "name": "godot_signal_get_connections", - "return_type": "godot_array", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_get_object", - "return_type": "godot_object *", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_get_object_id", - "return_type": "uint64_t", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_get_name", - "return_type": "godot_string_name", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_as_string", - "return_type": "godot_string", - "arguments": [ - ["const godot_signal *", "p_self"] - ] - }, - { - "name": "godot_signal_operator_equal", - "return_type": "godot_bool", - "arguments": [ - ["const godot_signal *", "p_self"], - ["const godot_signal *", "p_other"] - ] - }, - { - "name": "godot_signal_operator_less", - "return_type": "godot_bool", - "arguments": [ - ["const godot_signal *", "p_self"], - ["const godot_signal *", "p_other"] - ] - }, - { - "name": "godot_packed_int64_array_new", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "r_dest"] - ] - }, - { - "name": "godot_packed_int64_array_new_copy", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "r_dest"], - ["const godot_packed_int64_array *", "p_src"] - ] - }, - { - "name": "godot_packed_int64_array_new_with_array", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "r_dest"], - ["const godot_array *", "p_a"] - ] - }, - { - "name": "godot_packed_int64_array_append", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const int64_t", "p_data"] - ] - }, - { - "name": "godot_packed_int64_array_append_array", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const godot_packed_int64_array *", "p_array"] - ] - }, - { - "name": "godot_packed_int64_array_insert", - "return_type": "godot_error", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const godot_int", "p_idx"], - ["const int64_t", "p_data"] - ] - }, - { - "name": "godot_packed_int64_array_invert", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"] - ] - }, - { - "name": "godot_packed_int64_array_push_back", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const int64_t", "p_data"] - ] - }, - { - "name": "godot_packed_int64_array_remove", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const godot_int", "p_idx"] - ] - }, - { - "name": "godot_packed_int64_array_resize", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const godot_int", "p_size"] - ] - }, - { - "name": "godot_packed_int64_array_set", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"], - ["const godot_int", "p_idx"], - ["const int64_t", "p_data"] - ] - }, - { - "name": "godot_packed_int64_array_get", - "return_type": "int64_t", - "arguments": [ - ["const godot_packed_int64_array *", "p_self"], - ["const godot_int", "p_idx"] - ] - }, - { - "name": "godot_packed_int64_array_size", - "return_type": "godot_int", - "arguments": [ - ["const godot_packed_int64_array *", "p_self"] - ] - }, - { - "name": "godot_packed_int64_array_destroy", - "return_type": "void", - "arguments": [ - ["godot_packed_int64_array *", "p_self"] - ] - }, - { - "name": "godot_packed_float64_array_new", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "r_dest"] - ] - }, - { - "name": "godot_packed_float64_array_new_copy", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "r_dest"], - ["const godot_packed_float64_array *", "p_src"] - ] - }, - { - "name": "godot_packed_float64_array_new_with_array", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "r_dest"], - ["const godot_array *", "p_a"] - ] - }, - { - "name": "godot_packed_float64_array_append", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const double", "p_data"] - ] - }, - { - "name": "godot_packed_float64_array_append_array", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const godot_packed_float64_array *", "p_array"] - ] - }, - { - "name": "godot_packed_float64_array_insert", - "return_type": "godot_error", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const godot_int", "p_idx"], - ["const double", "p_data"] - ] - }, - { - "name": "godot_packed_float64_array_invert", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"] - ] - }, - { - "name": "godot_packed_float64_array_push_back", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const double", "p_data"] - ] - }, - { - "name": "godot_packed_float64_array_remove", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const godot_int", "p_idx"] - ] - }, - { - "name": "godot_packed_float64_array_resize", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const godot_int", "p_size"] - ] - }, - { - "name": "godot_packed_float64_array_set", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"], - ["const godot_int", "p_idx"], - ["const double", "p_data"] - ] - }, - { - "name": "godot_packed_float64_array_get", - "return_type": "double", - "arguments": [ - ["const godot_packed_float64_array *", "p_self"], - ["const godot_int", "p_idx"] - ] - }, - { - "name": "godot_packed_float64_array_size", - "return_type": "godot_int", - "arguments": [ - ["const godot_packed_float64_array *", "p_self"] - ] - }, - { - "name": "godot_packed_float64_array_destroy", - "return_type": "void", - "arguments": [ - ["godot_packed_float64_array *", "p_self"] - ] - }, - { - "name": "godot_rect2_as_rect2i", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2 *", "p_self"] - ] - }, - { - "name": "godot_rect2i_new_with_position_and_size", - "return_type": "void", - "arguments": [ - ["godot_rect2i *", "r_dest"], - ["const godot_vector2i *", "p_pos"], - ["const godot_vector2i *", "p_size"] - ] - }, - { - "name": "godot_rect2i_new", - "return_type": "void", - "arguments": [ - ["godot_rect2i *", "r_dest"], - ["const godot_int", "p_x"], - ["const godot_int", "p_y"], - ["const godot_int", "p_width"], - ["const godot_int", "p_height"] - ] - }, - { - "name": "godot_rect2i_as_string", - "return_type": "godot_string", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_as_rect2", - "return_type": "godot_rect2", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_get_area", - "return_type": "godot_int", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_intersects", - "return_type": "godot_bool", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_rect2i *", "p_b"] - ] - }, - { - "name": "godot_rect2i_encloses", - "return_type": "godot_bool", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_rect2i *", "p_b"] - ] - }, - { - "name": "godot_rect2i_has_no_area", - "return_type": "godot_bool", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_clip", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_rect2i *", "p_b"] - ] - }, - { - "name": "godot_rect2i_merge", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_rect2i *", "p_b"] - ] - }, - { - "name": "godot_rect2i_has_point", - "return_type": "godot_bool", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_vector2i *", "p_point"] - ] - }, - { - "name": "godot_rect2i_grow", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_int", "p_by"] - ] - }, - { - "name": "godot_rect2i_grow_individual", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_int", "p_left"], - ["const godot_int", "p_top"], - ["const godot_int", "p_right"], - ["const godot_int", "p_bottom"] - ] - }, - { - "name": "godot_rect2i_grow_margin", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_int", "p_margin"], - ["const godot_int", "p_by"] - ] - }, - { - "name": "godot_rect2i_abs", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_expand", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_vector2i *", "p_to"] - ] - }, - { - "name": "godot_rect2i_operator_equal", - "return_type": "godot_bool", - "arguments": [ - ["const godot_rect2i *", "p_self"], - ["const godot_rect2i *", "p_b"] - ] - }, - { - "name": "godot_rect2i_get_position", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_get_size", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_rect2i *", "p_self"] - ] - }, - { - "name": "godot_rect2i_set_position", - "return_type": "void", - "arguments": [ - ["godot_rect2i *", "p_self"], - ["const godot_vector2i *", "p_pos"] - ] - }, - { - "name": "godot_rect2i_set_size", - "return_type": "void", - "arguments": [ - ["godot_rect2i *", "p_self"], - ["const godot_vector2i *", "p_size"] - ] - }, - { - "name": "godot_variant_new_string_name", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_string_name *", "p_s"] - ] - }, - { - "name": "godot_variant_new_vector2i", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_vector2i *", "p_v2"] - ] - }, - { - "name": "godot_variant_new_rect2i", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_rect2i *", "p_rect2"] - ] - }, - { - "name": "godot_variant_new_vector3i", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_vector3i *", "p_v3"] - ] - }, - { - "name": "godot_variant_new_callable", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_callable *", "p_cb"] - ] - }, - { - "name": "godot_variant_new_signal", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_signal *", "p_signal"] - ] - }, - { - "name": "godot_variant_new_packed_int64_array", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_packed_int64_array *", "p_pia"] - ] - }, - { - "name": "godot_variant_new_packed_float64_array", - "return_type": "void", - "arguments": [ - ["godot_variant *", "r_dest"], - ["const godot_packed_float64_array *", "p_pra"] - ] - }, - { - "name": "godot_variant_as_string_name", - "return_type": "godot_string_name", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_vector2i", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_rect2i", - "return_type": "godot_rect2i", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_vector3i", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_callable", - "return_type": "godot_callable", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_signal", - "return_type": "godot_signal", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_packed_int64_array", - "return_type": "godot_packed_int64_array", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_as_packed_float64_array", - "return_type": "godot_packed_float64_array", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_hash", - "return_type": "uint32_t", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_vector2_as_vector2i", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2 *", "p_self"] - ] - }, - { - "name": "godot_vector2_sign", - "return_type": "godot_vector2", - "arguments": [ - ["const godot_vector2 *", "p_self"] - ] - }, - { - "name": "godot_vector2i_new", - "return_type": "void", - "arguments": [ - ["godot_vector2i *", "r_dest"], - ["const godot_int", "p_x"], - ["const godot_int", "p_y"] - ] - }, - { - "name": "godot_vector2i_as_string", - "return_type": "godot_string", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_as_vector2", - "return_type": "godot_vector2", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_aspect", - "return_type": "godot_real", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_abs", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_sign", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_operator_add", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_subtract", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_multiply_vector", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_multiply_scalar", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_int", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_divide_vector", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_divide_scalar", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_int", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_equal", - "return_type": "godot_bool", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_less", - "return_type": "godot_bool", - "arguments": [ - ["const godot_vector2i *", "p_self"], - ["const godot_vector2i *", "p_b"] - ] - }, - { - "name": "godot_vector2i_operator_neg", - "return_type": "godot_vector2i", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_set_x", - "return_type": "void", - "arguments": [ - ["godot_vector2i *", "p_self"], - ["const godot_int", "p_x"] - ] - }, - { - "name": "godot_vector2i_set_y", - "return_type": "void", - "arguments": [ - ["godot_vector2i *", "p_self"], - ["const godot_int", "p_y"] - ] - }, - { - "name": "godot_vector2i_get_x", - "return_type": "godot_int", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector2i_get_y", - "return_type": "godot_int", - "arguments": [ - ["const godot_vector2i *", "p_self"] - ] - }, - { - "name": "godot_vector3_as_vector3i", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3 *", "p_self"] - ] - }, - { - "name": "godot_vector3_sign", - "return_type": "godot_vector3", - "arguments": [ - ["const godot_vector3 *", "p_self"] - ] - }, - { - "name": "godot_vector3i_new", - "return_type": "void", - "arguments": [ - ["godot_vector3i *", "r_dest"], - ["const godot_int", "p_x"], - ["const godot_int", "p_y"], - ["const godot_int", "p_z"] - ] - }, - { - "name": "godot_vector3i_as_string", - "return_type": "godot_string", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_as_vector3", - "return_type": "godot_vector3", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_min_axis", - "return_type": "godot_int", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_max_axis", - "return_type": "godot_int", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_abs", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_sign", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_operator_add", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_subtract", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_multiply_vector", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_multiply_scalar", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_int", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_divide_vector", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_divide_scalar", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_int", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_equal", - "return_type": "godot_bool", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_less", - "return_type": "godot_bool", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3i *", "p_b"] - ] - }, - { - "name": "godot_vector3i_operator_neg", - "return_type": "godot_vector3i", - "arguments": [ - ["const godot_vector3i *", "p_self"] - ] - }, - { - "name": "godot_vector3i_set_axis", - "return_type": "void", - "arguments": [ - ["godot_vector3i *", "p_self"], - ["const godot_vector3_axis", "p_axis"], - ["const godot_int", "p_val"] - ] - }, - { - "name": "godot_vector3i_get_axis", - "return_type": "godot_int", - "arguments": [ - ["const godot_vector3i *", "p_self"], - ["const godot_vector3_axis", "p_axis"] - ] - } - ] - }, - "api": [ - { - "name": "godot_dictionary_duplicate", - "return_type": "godot_dictionary", - "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_bool", "p_deep"] - ] - }, - { - "name": "godot_vector3_move_toward", - "return_type": "godot_vector3", - "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_to"], - ["const godot_real", "p_delta"] - ] - }, - { - "name": "godot_vector2_move_toward", - "return_type": "godot_vector2", - "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"], - ["const godot_real", "p_delta"] - ] - }, - { - "name": "godot_string_count", - "return_type": "godot_int", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"], - ["godot_int", "p_to"] - ] - }, - { - "name": "godot_string_countn", - "return_type": "godot_int", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"], - ["godot_int", "p_to"] - ] - }, - { - "name": "godot_vector3_direction_to", - "return_type": "godot_vector3", - "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_to"] - ] - }, - { - "name": "godot_vector2_direction_to", - "return_type": "godot_vector2", - "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"] - ] - }, - { - "name": "godot_array_slice", - "return_type": "godot_array", - "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_int", "p_begin"], - ["const godot_int", "p_end"], - ["const godot_int", "p_step"], - ["const godot_bool", "p_deep"] - ] - }, - { - "name": "godot_packed_byte_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_byte_array *", "p_self"] - ] - }, - { - "name": "godot_packed_int32_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_int32_array *", "p_self"] - ] - }, - { - "name": "godot_packed_float32_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_float32_array *", "p_self"] - ] - }, - { - "name": "godot_packed_string_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_string_array *", "p_self"] - ] - }, - { - "name": "godot_packed_vector2_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_vector2_array *", "p_self"] - ] - }, - { - "name": "godot_packed_vector3_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_vector3_array *", "p_self"] - ] - }, - { - "name": "godot_packed_color_array_empty", - "return_type": "godot_bool", - "arguments": [ - ["const godot_packed_color_array *", "p_self"] - ] - }, - { - "name": "godot_get_class_tag", - "return_type": "void *", - "arguments": [ - ["const godot_string_name *", "p_class"] - ] - }, - { - "name": "godot_object_cast_to", - "return_type": "godot_object *", - "arguments": [ - ["const godot_object *", "p_object"], - ["void *", "p_class_tag"] - ] - }, - { - "name": "godot_instance_from_id", - "return_type": "godot_object *", - "arguments": [ - ["uint64_t", "p_instance_id"] - ] - } - ] - }, - "api": [ - { - "name": "godot_color_to_abgr32", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_to_abgr64", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_to_argb64", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_to_rgba64", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_darkened", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_real", "p_amount"] - ] - }, - { - "name": "godot_color_from_hsv", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_real", "p_h"], - ["const godot_real", "p_s"], - ["const godot_real", "p_v"], - ["const godot_real", "p_a"] - ] - }, - { - "name": "godot_color_lightened", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_real", "p_amount"] - ] - }, - { - "name": "godot_array_duplicate", - "return_type": "godot_array", - "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_bool", "p_deep"] - ] - }, - { - "name": "godot_array_max", - "return_type": "godot_variant", - "arguments": [ - ["const godot_array *", "p_self"] - ] - }, - { - "name": "godot_array_min", - "return_type": "godot_variant", - "arguments": [ - ["const godot_array *", "p_self"] - ] - }, - { - "name": "godot_array_shuffle", - "return_type": "void", - "arguments": [ - ["godot_array *", "p_self"] - ] - }, - { - "name": "godot_basis_slerp", - "return_type": "godot_basis", - "arguments": [ - ["const godot_basis *", "p_self"], - ["const godot_basis *", "p_b"], - ["const godot_real", "p_t"] - ] - }, - { - "name": "godot_dictionary_get_with_default", - "return_type": "godot_variant", - "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"], - ["const godot_variant *", "p_default"] - ] - }, - { - "name": "godot_dictionary_erase_with_return", - "return_type": "bool", - "arguments": [ - ["godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] - ] - }, - { - "name": "godot_node_path_get_as_property_path", - "return_type": "godot_node_path", - "arguments": [ - ["const godot_node_path *", "p_self"] - ] - }, - { - "name": "godot_quat_set_axis_angle", - "return_type": "void", - "arguments": [ - ["godot_quat *", "p_self"], - ["const godot_vector3 *", "p_axis"], - ["const godot_real", "p_angle"] - ] - }, - { - "name": "godot_rect2_grow_individual", - "return_type": "godot_rect2", - "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_real", "p_left"], - ["const godot_real", "p_top"], - ["const godot_real", "p_right"], - ["const godot_real", "p_bottom"] - ] - }, - { - "name": "godot_rect2_grow_margin", - "return_type": "godot_rect2", - "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_int", "p_margin"], - ["const godot_real", "p_by"] - ] - }, - { - "name": "godot_rect2_abs", - "return_type": "godot_rect2", - "arguments": [ - ["const godot_rect2 *", "p_self"] - ] - }, - { - "name": "godot_string_dedent", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"] - ] - }, - { - "name": "godot_string_trim_prefix", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_prefix"] - ] - }, - { - "name": "godot_string_trim_suffix", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_suffix"] - ] - }, - { - "name": "godot_string_rstrip", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_chars"] - ] - }, - { - "name": "godot_string_rsplit", - "return_type": "godot_packed_string_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_divisor"], - ["const godot_bool", "p_allow_empty"], - ["const godot_int", "p_maxsplit"] - ] - }, - { - "name": "godot_basis_get_quat", - "return_type": "godot_quat", - "arguments": [ - ["const godot_basis *", "p_self"] - ] - }, - { - "name": "godot_basis_set_quat", - "return_type": "void", - "arguments": [ - ["godot_basis *", "p_self"], - ["const godot_quat *", "p_quat"] - ] - }, - { - "name": "godot_basis_set_axis_angle_scale", - "return_type": "void", - "arguments": [ - ["godot_basis *", "p_self"], - ["const godot_vector3 *", "p_axis"], - ["godot_real", "p_phi"], - ["const godot_vector3 *", "p_scale"] - ] - }, - { - "name": "godot_basis_set_euler_scale", - "return_type": "void", - "arguments": [ - ["godot_basis *", "p_self"], - ["const godot_vector3 *", "p_euler"], - ["const godot_vector3 *", "p_scale"] - ] - }, - { - "name": "godot_basis_set_quat_scale", - "return_type": "void", - "arguments": [ - ["godot_basis *", "p_self"], - ["const godot_quat *", "p_quat"], - ["const godot_vector3 *", "p_scale"] - ] - }, - { - "name": "godot_quat_new_with_basis", - "return_type": "void", - "arguments": [ - ["godot_quat *", "r_dest"], - ["const godot_basis *", "p_basis"] - ] - }, - { - "name": "godot_quat_new_with_euler", - "return_type": "void", - "arguments": [ - ["godot_quat *", "r_dest"], - ["const godot_vector3 *", "p_euler"] - ] - }, - { - "name": "godot_transform_new_with_quat", - "return_type": "void", - "arguments": [ - ["godot_transform *", "r_dest"], - ["const godot_quat *", "p_quat"] - ] - }, - { - "name": "godot_variant_get_operator_name", - "return_type": "godot_string", - "arguments": [ - ["godot_variant_operator", "p_op"] - ] - }, - { - "name": "godot_variant_evaluate", - "return_type": "void", - "arguments": [ - ["godot_variant_operator", "p_op"], - ["const godot_variant *", "p_a"], - ["const godot_variant *", "p_b"], - ["godot_variant *", "r_ret"], - ["godot_bool *", "r_valid"] - ] - } - ] - }, + "next": null, "api": [ { - "name": "godot_color_new_rgba", - "return_type": "void", - "arguments": [ - ["godot_color *", "r_dest"], - ["const godot_real", "p_r"], - ["const godot_real", "p_g"], - ["const godot_real", "p_b"], - ["const godot_real", "p_a"] - ] - }, - { - "name": "godot_color_new_rgb", - "return_type": "void", - "arguments": [ - ["godot_color *", "r_dest"], - ["const godot_real", "p_r"], - ["const godot_real", "p_g"], - ["const godot_real", "p_b"] - ] - }, - { - "name": "godot_color_get_r", - "return_type": "godot_real", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_set_r", - "return_type": "void", - "arguments": [ - ["godot_color *", "p_self"], - ["const godot_real", "r"] - ] - }, - { - "name": "godot_color_get_g", - "return_type": "godot_real", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_set_g", + "name": "godot_aabb_new", "return_type": "void", "arguments": [ - ["godot_color *", "p_self"], - ["const godot_real", "g"] + ["godot_aabb *", "r_dest"], + ["const godot_vector3 *", "p_pos"], + ["const godot_vector3 *", "p_size"] ] }, { - "name": "godot_color_get_b", - "return_type": "godot_real", + "name": "godot_aabb_get_position", + "return_type": "godot_vector3", "arguments": [ - ["const godot_color *", "p_self"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_color_set_b", + "name": "godot_aabb_set_position", "return_type": "void", "arguments": [ - ["godot_color *", "p_self"], - ["const godot_real", "b"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_v"] ] }, { - "name": "godot_color_get_a", - "return_type": "godot_real", + "name": "godot_aabb_get_size", + "return_type": "godot_vector3", "arguments": [ - ["const godot_color *", "p_self"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_color_set_a", + "name": "godot_aabb_set_size", "return_type": "void", "arguments": [ - ["godot_color *", "p_self"], - ["const godot_real", "a"] - ] - }, - { - "name": "godot_color_get_h", - "return_type": "godot_real", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_get_s", - "return_type": "godot_real", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_get_v", - "return_type": "godot_real", - "arguments": [ - ["const godot_color *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_v"] ] }, { - "name": "godot_color_as_string", + "name": "godot_aabb_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_to_rgba32", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_to_argb32", - "return_type": "godot_int", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_inverted", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_contrasted", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"] - ] - }, - { - "name": "godot_color_lerp", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_color *", "p_b"], - ["const godot_real", "p_t"] - ] - }, - { - "name": "godot_color_blend", - "return_type": "godot_color", - "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_color *", "p_over"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_color_to_html", - "return_type": "godot_string", + "name": "godot_aabb_get_area", + "return_type": "godot_real", "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_bool", "p_with_alpha"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_color_operator_equal", + "name": "godot_aabb_has_no_area", "return_type": "godot_bool", "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_color *", "p_b"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_color_operator_less", + "name": "godot_aabb_has_no_surface", "return_type": "godot_bool", "arguments": [ - ["const godot_color *", "p_self"], - ["const godot_color *", "p_b"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_new", - "return_type": "void", + "name": "godot_aabb_intersects", + "return_type": "godot_bool", "arguments": [ - ["godot_vector2 *", "r_dest"], - ["const godot_real", "p_x"], - ["const godot_real", "p_y"] + ["const godot_aabb *", "p_self"], + ["const godot_aabb *", "p_with"] ] }, { - "name": "godot_vector2_as_string", - "return_type": "godot_string", + "name": "godot_aabb_encloses", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_aabb *", "p_with"] ] }, { - "name": "godot_vector2_normalized", - "return_type": "godot_vector2", + "name": "godot_aabb_merge", + "return_type": "godot_aabb", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_aabb *", "p_with"] ] }, { - "name": "godot_vector2_length", - "return_type": "godot_real", + "name": "godot_aabb_intersection", + "return_type": "godot_aabb", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_aabb *", "p_with"] ] }, { - "name": "godot_vector2_angle", - "return_type": "godot_real", + "name": "godot_aabb_intersects_plane", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_plane *", "p_plane"] ] }, { - "name": "godot_vector2_length_squared", - "return_type": "godot_real", + "name": "godot_aabb_intersects_segment", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_from"], + ["const godot_vector3 *", "p_to"] ] }, { - "name": "godot_vector2_is_normalized", + "name": "godot_aabb_has_point", "return_type": "godot_bool", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_point"] ] }, { - "name": "godot_vector2_distance_to", - "return_type": "godot_real", + "name": "godot_aabb_get_support", + "return_type": "godot_vector3", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_dir"] ] }, { - "name": "godot_vector2_distance_squared_to", - "return_type": "godot_real", + "name": "godot_aabb_get_longest_axis", + "return_type": "godot_vector3", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_angle_to", - "return_type": "godot_real", + "name": "godot_aabb_get_longest_axis_index", + "return_type": "godot_int", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_angle_to_point", + "name": "godot_aabb_get_longest_axis_size", "return_type": "godot_real", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_to"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_lerp", - "return_type": "godot_vector2", + "name": "godot_aabb_get_shortest_axis", + "return_type": "godot_vector3", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"], - ["const godot_real", "p_t"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_cubic_interpolate", - "return_type": "godot_vector2", + "name": "godot_aabb_get_shortest_axis_index", + "return_type": "godot_int", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"], - ["const godot_vector2 *", "p_pre_a"], - ["const godot_vector2 *", "p_post_b"], - ["const godot_real", "p_t"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_rotated", - "return_type": "godot_vector2", + "name": "godot_aabb_get_shortest_axis_size", + "return_type": "godot_real", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_real", "p_phi"] + ["const godot_aabb *", "p_self"] ] }, { - "name": "godot_vector2_tangent", - "return_type": "godot_vector2", + "name": "godot_aabb_expand", + "return_type": "godot_aabb", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_vector3 *", "p_to_point"] ] }, { - "name": "godot_vector2_floor", - "return_type": "godot_vector2", + "name": "godot_aabb_grow", + "return_type": "godot_aabb", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_real", "p_by"] ] }, { - "name": "godot_vector2_snapped", - "return_type": "godot_vector2", + "name": "godot_aabb_get_endpoint", + "return_type": "godot_vector3", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_by"] + ["const godot_aabb *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_vector2_aspect", - "return_type": "godot_real", + "name": "godot_aabb_operator_equal", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_aabb *", "p_self"], + ["const godot_aabb *", "p_b"] ] }, { - "name": "godot_vector2_dot", - "return_type": "godot_real", + "name": "godot_array_new", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_with"] + ["godot_array *", "r_dest"] ] }, { - "name": "godot_vector2_slide", - "return_type": "godot_vector2", + "name": "godot_array_new_copy", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_n"] + ["godot_array *", "r_dest"], + ["const godot_array *", "p_src"] ] }, { - "name": "godot_vector2_bounce", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_color_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_n"] + ["godot_array *", "r_dest"], + ["const godot_packed_color_array *", "p_pca"] ] }, { - "name": "godot_vector2_reflect", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_vector3_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_n"] + ["godot_array *", "r_dest"], + ["const godot_packed_vector3_array *", "p_pv3a"] ] }, { - "name": "godot_vector2_abs", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_vector2_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["godot_array *", "r_dest"], + ["const godot_packed_vector2_array *", "p_pv2a"] ] }, { - "name": "godot_vector2_clamped", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_string_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_real", "p_length"] + ["godot_array *", "r_dest"], + ["const godot_packed_string_array *", "p_psa"] ] }, { - "name": "godot_vector2_operator_add", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_float32_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["godot_array *", "r_dest"], + ["const godot_packed_float32_array *", "p_pra"] ] }, { - "name": "godot_vector2_operator_subtract", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_float64_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["godot_array *", "r_dest"], + ["const godot_packed_float64_array *", "p_pra"] ] }, { - "name": "godot_vector2_operator_multiply_vector", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_int32_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["godot_array *", "r_dest"], + ["const godot_packed_int32_array *", "p_pia"] ] }, { - "name": "godot_vector2_operator_multiply_scalar", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_int64_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_real", "p_b"] + ["godot_array *", "r_dest"], + ["const godot_packed_int64_array *", "p_pia"] ] }, { - "name": "godot_vector2_operator_divide_vector", - "return_type": "godot_vector2", + "name": "godot_array_new_packed_byte_array", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["godot_array *", "r_dest"], + ["const godot_packed_byte_array *", "p_pba"] ] }, { - "name": "godot_vector2_operator_divide_scalar", - "return_type": "godot_vector2", + "name": "godot_array_set", + "return_type": "void", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_real", "p_b"] + ["godot_array *", "p_self"], + ["const godot_int", "p_idx"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_vector2_operator_equal", - "return_type": "godot_bool", + "name": "godot_array_get", + "return_type": "godot_variant", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["const godot_array *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_vector2_operator_less", - "return_type": "godot_bool", + "name": "godot_array_operator_index", + "return_type": "godot_variant *", "arguments": [ - ["const godot_vector2 *", "p_self"], - ["const godot_vector2 *", "p_b"] + ["godot_array *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_vector2_operator_neg", - "return_type": "godot_vector2", + "name": "godot_array_operator_index_const", + "return_type": "const godot_variant *", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_array *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_vector2_set_x", + "name": "godot_array_append", "return_type": "void", "arguments": [ - ["godot_vector2 *", "p_self"], - ["const godot_real", "p_x"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_vector2_set_y", + "name": "godot_array_clear", "return_type": "void", "arguments": [ - ["godot_vector2 *", "p_self"], - ["const godot_real", "p_y"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_vector2_get_x", - "return_type": "godot_real", + "name": "godot_array_count", + "return_type": "godot_int", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_vector2_get_y", - "return_type": "godot_real", + "name": "godot_array_duplicate", + "return_type": "godot_array", "arguments": [ - ["const godot_vector2 *", "p_self"] + ["const godot_array *", "p_self"], + ["const godot_bool", "p_deep"] ] }, { - "name": "godot_quat_new", - "return_type": "void", + "name": "godot_array_empty", + "return_type": "godot_bool", "arguments": [ - ["godot_quat *", "r_dest"], - ["const godot_real", "p_x"], - ["const godot_real", "p_y"], - ["const godot_real", "p_z"], - ["const godot_real", "p_w"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_new_with_axis_angle", + "name": "godot_array_erase", "return_type": "void", "arguments": [ - ["godot_quat *", "r_dest"], - ["const godot_vector3 *", "p_axis"], - ["const godot_real", "p_angle"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_quat_get_x", - "return_type": "godot_real", + "name": "godot_array_front", + "return_type": "godot_variant", "arguments": [ - ["const godot_quat *", "p_self"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_set_x", - "return_type": "void", + "name": "godot_array_back", + "return_type": "godot_variant", "arguments": [ - ["godot_quat *", "p_self"], - ["const godot_real", "val"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_get_y", - "return_type": "godot_real", + "name": "godot_array_find", + "return_type": "godot_int", "arguments": [ - ["const godot_quat *", "p_self"] + ["const godot_array *", "p_self"], + ["const godot_variant *", "p_what"], + ["const godot_int", "p_from"] ] }, { - "name": "godot_quat_set_y", - "return_type": "void", + "name": "godot_array_find_last", + "return_type": "godot_int", "arguments": [ - ["godot_quat *", "p_self"], - ["const godot_real", "val"] + ["const godot_array *", "p_self"], + ["const godot_variant *", "p_what"] ] }, { - "name": "godot_quat_get_z", - "return_type": "godot_real", + "name": "godot_array_has", + "return_type": "godot_bool", "arguments": [ - ["const godot_quat *", "p_self"] + ["const godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_quat_set_z", - "return_type": "void", + "name": "godot_array_hash", + "return_type": "godot_int", "arguments": [ - ["godot_quat *", "p_self"], - ["const godot_real", "val"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_get_w", - "return_type": "godot_real", + "name": "godot_array_insert", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"], + ["const godot_int", "p_pos"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_quat_set_w", + "name": "godot_array_invert", "return_type": "void", "arguments": [ - ["godot_quat *", "p_self"], - ["const godot_real", "val"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_quat_as_string", - "return_type": "godot_string", + "name": "godot_array_max", + "return_type": "godot_variant", "arguments": [ - ["const godot_quat *", "p_self"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_length", - "return_type": "godot_real", + "name": "godot_array_min", + "return_type": "godot_variant", "arguments": [ - ["const godot_quat *", "p_self"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_length_squared", - "return_type": "godot_real", + "name": "godot_array_pop_back", + "return_type": "godot_variant", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_quat_normalized", - "return_type": "godot_quat", + "name": "godot_array_pop_front", + "return_type": "godot_variant", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_quat_is_normalized", - "return_type": "godot_bool", + "name": "godot_array_push_back", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_quat_inverse", - "return_type": "godot_quat", + "name": "godot_array_push_front", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"] ] }, { - "name": "godot_quat_dot", - "return_type": "godot_real", + "name": "godot_array_remove", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"] + ["godot_array *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_quat_xform", - "return_type": "godot_vector3", + "name": "godot_array_resize", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_vector3 *", "p_v"] + ["godot_array *", "p_self"], + ["const godot_int", "p_size"] ] }, { - "name": "godot_quat_slerp", - "return_type": "godot_quat", + "name": "godot_array_rfind", + "return_type": "godot_int", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"], - ["const godot_real", "p_t"] + ["const godot_array *", "p_self"], + ["const godot_variant *", "p_what"], + ["const godot_int", "p_from"] ] }, { - "name": "godot_quat_slerpni", - "return_type": "godot_quat", + "name": "godot_array_size", + "return_type": "godot_int", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"], - ["const godot_real", "p_t"] + ["const godot_array *", "p_self"] ] }, { - "name": "godot_quat_cubic_slerp", - "return_type": "godot_quat", + "name": "godot_array_shuffle", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"], - ["const godot_quat *", "p_pre_a"], - ["const godot_quat *", "p_post_b"], - ["const godot_real", "p_t"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_quat_operator_multiply", - "return_type": "godot_quat", + "name": "godot_array_slice", + "return_type": "godot_array", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_real", "p_b"] + ["const godot_array *", "p_self"], + ["const godot_int", "p_begin"], + ["const godot_int", "p_end"], + ["const godot_int", "p_step"], + ["const godot_bool", "p_deep"] ] }, { - "name": "godot_quat_operator_add", - "return_type": "godot_quat", + "name": "godot_array_sort", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"] + ["godot_array *", "p_self"] ] }, { - "name": "godot_quat_operator_subtract", - "return_type": "godot_quat", + "name": "godot_array_sort_custom", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"] + ["godot_array *", "p_self"], + ["godot_object *", "p_obj"], + ["const godot_string *", "p_func"] ] }, { - "name": "godot_quat_operator_divide", - "return_type": "godot_quat", + "name": "godot_array_bsearch", + "return_type": "godot_int", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_real", "p_b"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"], + ["const godot_bool", "p_before"] ] }, { - "name": "godot_quat_operator_equal", - "return_type": "godot_bool", + "name": "godot_array_bsearch_custom", + "return_type": "godot_int", "arguments": [ - ["const godot_quat *", "p_self"], - ["const godot_quat *", "p_b"] + ["godot_array *", "p_self"], + ["const godot_variant *", "p_value"], + ["godot_object *", "p_obj"], + ["const godot_string *", "p_func"], + ["const godot_bool", "p_before"] ] }, { - "name": "godot_quat_operator_neg", - "return_type": "godot_quat", + "name": "godot_array_destroy", + "return_type": "void", "arguments": [ - ["const godot_quat *", "p_self"] + ["godot_array *", "p_self"] ] }, { @@ -2484,294 +816,803 @@ ] }, { - "name": "godot_vector3_new", + "name": "godot_basis_slerp", + "return_type": "godot_basis", + "arguments": [ + ["const godot_basis *", "p_self"], + ["const godot_basis *", "p_b"], + ["const godot_real", "p_t"] + ] + }, + { + "name": "godot_basis_get_quat", + "return_type": "godot_quat", + "arguments": [ + ["const godot_basis *", "p_self"] + ] + }, + { + "name": "godot_basis_set_quat", "return_type": "void", "arguments": [ - ["godot_vector3 *", "r_dest"], - ["const godot_real", "p_x"], - ["const godot_real", "p_y"], - ["const godot_real", "p_z"] + ["godot_basis *", "p_self"], + ["const godot_quat *", "p_quat"] ] }, { - "name": "godot_vector3_as_string", + "name": "godot_basis_set_axis_angle_scale", + "return_type": "void", + "arguments": [ + ["godot_basis *", "p_self"], + ["const godot_vector3 *", "p_axis"], + ["godot_real", "p_phi"], + ["const godot_vector3 *", "p_scale"] + ] + }, + { + "name": "godot_basis_set_euler_scale", + "return_type": "void", + "arguments": [ + ["godot_basis *", "p_self"], + ["const godot_vector3 *", "p_euler"], + ["const godot_vector3 *", "p_scale"] + ] + }, + { + "name": "godot_basis_set_quat_scale", + "return_type": "void", + "arguments": [ + ["godot_basis *", "p_self"], + ["const godot_quat *", "p_quat"], + ["const godot_vector3 *", "p_scale"] + ] + }, + { + "name": "godot_callable_new_with_object", + "return_type": "void", + "arguments": [ + ["godot_callable *", "r_dest"], + ["const godot_object *", "p_object"], + ["const godot_string_name *", "p_method"] + ] + }, + { + "name": "godot_callable_new_with_object_id", + "return_type": "void", + "arguments": [ + ["godot_callable *", "r_dest"], + ["uint64_t", "p_objectid"], + ["const godot_string_name *", "p_method"] + ] + }, + { + "name": "godot_callable_new_copy", + "return_type": "void", + "arguments": [ + ["godot_callable *", "r_dest"], + ["const godot_callable *", "p_src"] + ] + }, + { + "name": "godot_callable_destroy", + "return_type": "void", + "arguments": [ + ["godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_call", + "return_type": "godot_int", + "arguments": [ + ["const godot_callable *", "p_self"], + ["const godot_variant **", "p_arguments"], + ["godot_int", "p_argcount"], + ["godot_variant *", "r_return_value"] + ] + }, + { + "name": "godot_callable_call_deferred", + "return_type": "void", + "arguments": [ + ["const godot_callable *", "p_self"], + ["const godot_variant **", "p_arguments"], + ["godot_int", "p_argcount"] + ] + }, + { + "name": "godot_callable_is_null", + "return_type": "godot_bool", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_is_custom", + "return_type": "godot_bool", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_is_standard", + "return_type": "godot_bool", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_get_object", + "return_type": "godot_object *", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_get_object_id", + "return_type": "uint64_t", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_get_method", + "return_type": "godot_string_name", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_hash", + "return_type": "uint32_t", + "arguments": [ + ["const godot_callable *", "p_self"] + ] + }, + { + "name": "godot_callable_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_callable *", "p_self"] ] }, { - "name": "godot_vector3_min_axis", + "name": "godot_callable_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_callable *", "p_self"], + ["const godot_callable *", "p_other"] + ] + }, + { + "name": "godot_callable_operator_less", + "return_type": "godot_bool", + "arguments": [ + ["const godot_callable *", "p_self"], + ["const godot_callable *", "p_other"] + ] + }, + { + "name": "godot_signal_new_with_object", + "return_type": "void", + "arguments": [ + ["godot_signal *", "r_dest"], + ["const godot_object *", "p_object"], + ["const godot_string_name *", "p_method"] + ] + }, + { + "name": "godot_signal_new_with_object_id", + "return_type": "void", + "arguments": [ + ["godot_signal *", "r_dest"], + ["uint64_t", "p_objectid"], + ["const godot_string_name *", "p_method"] + ] + }, + { + "name": "godot_signal_new_copy", + "return_type": "void", + "arguments": [ + ["godot_signal *", "r_dest"], + ["const godot_signal *", "p_src"] + ] + }, + { + "name": "godot_signal_destroy", + "return_type": "void", + "arguments": [ + ["godot_signal *", "p_self"] + ] + }, + { + "name": "godot_signal_emit", "return_type": "godot_int", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_signal *", "p_self"], + ["const godot_variant **", "p_arguments"], + ["godot_int", "p_argcount"] ] }, { - "name": "godot_vector3_max_axis", + "name": "godot_signal_connect", "return_type": "godot_int", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["godot_signal *", "p_self"], + ["const godot_callable *", "p_callable"], + ["const godot_array *", "p_binds"], + ["uint32_t", "p_flags"] ] }, { - "name": "godot_vector3_length", - "return_type": "godot_real", + "name": "godot_signal_disconnect", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["godot_signal *", "p_self"], + ["const godot_callable *", "p_callable"] ] }, { - "name": "godot_vector3_length_squared", - "return_type": "godot_real", + "name": "godot_signal_is_null", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_signal *", "p_self"] ] }, { - "name": "godot_vector3_is_normalized", + "name": "godot_signal_is_connected", "return_type": "godot_bool", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_signal *", "p_self"], + ["const godot_callable *", "p_callable"] ] }, { - "name": "godot_vector3_normalized", - "return_type": "godot_vector3", + "name": "godot_signal_get_connections", + "return_type": "godot_array", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_signal *", "p_self"] ] }, { - "name": "godot_vector3_inverse", - "return_type": "godot_vector3", + "name": "godot_signal_get_object", + "return_type": "godot_object *", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_signal *", "p_self"] ] }, { - "name": "godot_vector3_snapped", - "return_type": "godot_vector3", + "name": "godot_signal_get_object_id", + "return_type": "uint64_t", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_by"] + ["const godot_signal *", "p_self"] ] }, { - "name": "godot_vector3_rotated", - "return_type": "godot_vector3", + "name": "godot_signal_get_name", + "return_type": "godot_string_name", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_axis"], - ["const godot_real", "p_phi"] + ["const godot_signal *", "p_self"] + ] + }, + { + "name": "godot_signal_as_string", + "return_type": "godot_string", + "arguments": [ + ["const godot_signal *", "p_self"] + ] + }, + { + "name": "godot_signal_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_signal *", "p_self"], + ["const godot_signal *", "p_other"] + ] + }, + { + "name": "godot_signal_operator_less", + "return_type": "godot_bool", + "arguments": [ + ["const godot_signal *", "p_self"], + ["const godot_signal *", "p_other"] ] }, { - "name": "godot_vector3_lerp", - "return_type": "godot_vector3", + "name": "godot_color_new_rgba", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"], - ["const godot_real", "p_t"] + ["godot_color *", "r_dest"], + ["const godot_real", "p_r"], + ["const godot_real", "p_g"], + ["const godot_real", "p_b"], + ["const godot_real", "p_a"] ] }, { - "name": "godot_vector3_cubic_interpolate", - "return_type": "godot_vector3", + "name": "godot_color_new_rgb", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"], - ["const godot_vector3 *", "p_pre_a"], - ["const godot_vector3 *", "p_post_b"], - ["const godot_real", "p_t"] + ["godot_color *", "r_dest"], + ["const godot_real", "p_r"], + ["const godot_real", "p_g"], + ["const godot_real", "p_b"] ] }, { - "name": "godot_vector3_dot", + "name": "godot_color_get_r", "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_cross", - "return_type": "godot_vector3", + "name": "godot_color_set_r", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["godot_color *", "p_self"], + ["const godot_real", "r"] ] }, { - "name": "godot_vector3_outer", - "return_type": "godot_basis", + "name": "godot_color_get_g", + "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_to_diagonal_matrix", - "return_type": "godot_basis", + "name": "godot_color_set_g", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["godot_color *", "p_self"], + ["const godot_real", "g"] ] }, { - "name": "godot_vector3_abs", - "return_type": "godot_vector3", + "name": "godot_color_get_b", + "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_floor", - "return_type": "godot_vector3", + "name": "godot_color_set_b", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["godot_color *", "p_self"], + ["const godot_real", "b"] ] }, { - "name": "godot_vector3_ceil", - "return_type": "godot_vector3", + "name": "godot_color_get_a", + "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_distance_to", + "name": "godot_color_set_a", + "return_type": "void", + "arguments": [ + ["godot_color *", "p_self"], + ["const godot_real", "a"] + ] + }, + { + "name": "godot_color_get_h", "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_distance_squared_to", + "name": "godot_color_get_s", "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_angle_to", + "name": "godot_color_get_v", "return_type": "godot_real", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_to"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_slide", - "return_type": "godot_vector3", + "name": "godot_color_as_string", + "return_type": "godot_string", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_n"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_bounce", - "return_type": "godot_vector3", + "name": "godot_color_to_rgba32", + "return_type": "godot_int", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_n"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_reflect", - "return_type": "godot_vector3", + "name": "godot_color_to_argb32", + "return_type": "godot_int", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_n"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_operator_add", - "return_type": "godot_vector3", + "name": "godot_color_inverted", + "return_type": "godot_color", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_operator_subtract", - "return_type": "godot_vector3", + "name": "godot_color_contrasted", + "return_type": "godot_color", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"] ] }, { - "name": "godot_vector3_operator_multiply_vector", - "return_type": "godot_vector3", + "name": "godot_color_lerp", + "return_type": "godot_color", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"], + ["const godot_color *", "p_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_vector3_operator_multiply_scalar", - "return_type": "godot_vector3", + "name": "godot_color_blend", + "return_type": "godot_color", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_real", "p_b"] + ["const godot_color *", "p_self"], + ["const godot_color *", "p_over"] ] }, { - "name": "godot_vector3_operator_divide_vector", - "return_type": "godot_vector3", + "name": "godot_color_to_html", + "return_type": "godot_string", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"], + ["const godot_bool", "p_with_alpha"] ] }, { - "name": "godot_vector3_operator_divide_scalar", - "return_type": "godot_vector3", + "name": "godot_color_operator_equal", + "return_type": "godot_bool", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_real", "p_b"] + ["const godot_color *", "p_self"], + ["const godot_color *", "p_b"] ] }, { - "name": "godot_vector3_operator_equal", + "name": "godot_color_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_color *", "p_self"], + ["const godot_color *", "p_b"] ] }, { - "name": "godot_vector3_operator_less", + "name": "godot_color_to_abgr32", + "return_type": "godot_int", + "arguments": [ + ["const godot_color *", "p_self"] + ] + }, + { + "name": "godot_color_to_abgr64", + "return_type": "godot_int", + "arguments": [ + ["const godot_color *", "p_self"] + ] + }, + { + "name": "godot_color_to_argb64", + "return_type": "godot_int", + "arguments": [ + ["const godot_color *", "p_self"] + ] + }, + { + "name": "godot_color_to_rgba64", + "return_type": "godot_int", + "arguments": [ + ["const godot_color *", "p_self"] + ] + }, + { + "name": "godot_color_darkened", + "return_type": "godot_color", + "arguments": [ + ["const godot_color *", "p_self"], + ["const godot_real", "p_amount"] + ] + }, + { + "name": "godot_color_from_hsv", + "return_type": "godot_color", + "arguments": [ + ["const godot_color *", "p_self"], + ["const godot_real", "p_h"], + ["const godot_real", "p_s"], + ["const godot_real", "p_v"], + ["const godot_real", "p_a"] + ] + }, + { + "name": "godot_color_lightened", + "return_type": "godot_color", + "arguments": [ + ["const godot_color *", "p_self"], + ["const godot_real", "p_amount"] + ] + }, + { + "name": "godot_dictionary_new", + "return_type": "void", + "arguments": [ + ["godot_dictionary *", "r_dest"] + ] + }, + { + "name": "godot_dictionary_new_copy", + "return_type": "void", + "arguments": [ + ["godot_dictionary *", "r_dest"], + ["const godot_dictionary *", "p_src"] + ] + }, + { + "name": "godot_dictionary_destroy", + "return_type": "void", + "arguments": [ + ["godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_size", + "return_type": "godot_int", + "arguments": [ + ["const godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_empty", "return_type": "godot_bool", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3 *", "p_b"] + ["const godot_dictionary *", "p_self"] ] }, { - "name": "godot_vector3_operator_neg", - "return_type": "godot_vector3", + "name": "godot_dictionary_clear", + "return_type": "void", "arguments": [ - ["const godot_vector3 *", "p_self"] + ["godot_dictionary *", "p_self"] ] }, { - "name": "godot_vector3_set_axis", + "name": "godot_dictionary_has", + "return_type": "godot_bool", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_dictionary_has_all", + "return_type": "godot_bool", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_array *", "p_keys"] + ] + }, + { + "name": "godot_dictionary_erase", "return_type": "void", "arguments": [ - ["godot_vector3 *", "p_self"], - ["const godot_vector3_axis", "p_axis"], - ["const godot_real", "p_val"] + ["godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] ] }, { - "name": "godot_vector3_get_axis", - "return_type": "godot_real", + "name": "godot_dictionary_hash", + "return_type": "godot_int", "arguments": [ - ["const godot_vector3 *", "p_self"], - ["const godot_vector3_axis", "p_axis"] + ["const godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_keys", + "return_type": "godot_array", + "arguments": [ + ["const godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_values", + "return_type": "godot_array", + "arguments": [ + ["const godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_get", + "return_type": "godot_variant", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_dictionary_set", + "return_type": "void", + "arguments": [ + ["godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"], + ["const godot_variant *", "p_value"] + ] + }, + { + "name": "godot_dictionary_operator_index", + "return_type": "godot_variant *", + "arguments": [ + ["godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_dictionary_operator_index_const", + "return_type": "const godot_variant *", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_dictionary_next", + "return_type": "godot_variant *", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_dictionary_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_dictionary *", "p_b"] + ] + }, + { + "name": "godot_dictionary_to_json", + "return_type": "godot_string", + "arguments": [ + ["const godot_dictionary *", "p_self"] + ] + }, + { + "name": "godot_dictionary_duplicate", + "return_type": "godot_dictionary", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_bool", "p_deep"] + ] + }, + { + "name": "godot_dictionary_get_with_default", + "return_type": "godot_variant", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"], + ["const godot_variant *", "p_default"] + ] + }, + { + "name": "godot_dictionary_erase_with_return", + "return_type": "bool", + "arguments": [ + ["godot_dictionary *", "p_self"], + ["const godot_variant *", "p_key"] + ] + }, + { + "name": "godot_node_path_new", + "return_type": "void", + "arguments": [ + ["godot_node_path *", "r_dest"], + ["const godot_string *", "p_from"] + ] + }, + { + "name": "godot_node_path_new_copy", + "return_type": "void", + "arguments": [ + ["godot_node_path *", "r_dest"], + ["const godot_node_path *", "p_src"] + ] + }, + { + "name": "godot_node_path_destroy", + "return_type": "void", + "arguments": [ + ["godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_as_string", + "return_type": "godot_string", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_is_absolute", + "return_type": "godot_bool", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_get_name_count", + "return_type": "godot_int", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_get_name", + "return_type": "godot_string", + "arguments": [ + ["const godot_node_path *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_node_path_get_subname_count", + "return_type": "godot_int", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_get_subname", + "return_type": "godot_string", + "arguments": [ + ["const godot_node_path *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_node_path_get_concatenated_subnames", + "return_type": "godot_string", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_is_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_node_path *", "p_self"] + ] + }, + { + "name": "godot_node_path_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_node_path *", "p_self"], + ["const godot_node_path *", "p_b"] + ] + }, + { + "name": "godot_node_path_get_as_property_path", + "return_type": "godot_node_path", + "arguments": [ + ["const godot_node_path *", "p_self"] ] }, { @@ -2798,6 +1639,13 @@ ] }, { + "name": "godot_packed_byte_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_byte_array *", "p_self"] + ] + }, + { "name": "godot_packed_byte_array_append", "return_type": "void", "arguments": [ @@ -2854,6 +1702,20 @@ ] }, { + "name": "godot_packed_byte_array_ptr", + "return_type": "const uint8_t *", + "arguments": [ + ["const godot_packed_byte_array *", "p_self"] + ] + }, + { + "name": "godot_packed_byte_array_ptrw", + "return_type": "uint8_t *", + "arguments": [ + ["godot_packed_byte_array *", "p_self"] + ] + }, + { "name": "godot_packed_byte_array_set", "return_type": "void", "arguments": [ @@ -2908,6 +1770,13 @@ ] }, { + "name": "godot_packed_int32_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_int32_array *", "p_self"] + ] + }, + { "name": "godot_packed_int32_array_append", "return_type": "void", "arguments": [ @@ -2964,6 +1833,20 @@ ] }, { + "name": "godot_packed_int32_array_ptr", + "return_type": "const int32_t *", + "arguments": [ + ["const godot_packed_int32_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int32_array_ptrw", + "return_type": "int32_t *", + "arguments": [ + ["godot_packed_int32_array *", "p_self"] + ] + }, + { "name": "godot_packed_int32_array_set", "return_type": "void", "arguments": [ @@ -2995,6 +1878,137 @@ ] }, { + "name": "godot_packed_int64_array_new", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "r_dest"] + ] + }, + { + "name": "godot_packed_int64_array_new_copy", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "r_dest"], + ["const godot_packed_int64_array *", "p_src"] + ] + }, + { + "name": "godot_packed_int64_array_new_with_array", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "r_dest"], + ["const godot_array *", "p_a"] + ] + }, + { + "name": "godot_packed_int64_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_int64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int64_array_append", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const int64_t", "p_data"] + ] + }, + { + "name": "godot_packed_int64_array_append_array", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const godot_packed_int64_array *", "p_array"] + ] + }, + { + "name": "godot_packed_int64_array_insert", + "return_type": "godot_error", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const godot_int", "p_idx"], + ["const int64_t", "p_data"] + ] + }, + { + "name": "godot_packed_int64_array_invert", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int64_array_push_back", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const int64_t", "p_data"] + ] + }, + { + "name": "godot_packed_int64_array_remove", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_packed_int64_array_resize", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const godot_int", "p_size"] + ] + }, + { + "name": "godot_packed_int64_array_ptr", + "return_type": "const int64_t *", + "arguments": [ + ["const godot_packed_int64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int64_array_ptrw", + "return_type": "int64_t *", + "arguments": [ + ["godot_packed_int64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int64_array_set", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"], + ["const godot_int", "p_idx"], + ["const int64_t", "p_data"] + ] + }, + { + "name": "godot_packed_int64_array_get", + "return_type": "int64_t", + "arguments": [ + ["const godot_packed_int64_array *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_packed_int64_array_size", + "return_type": "godot_int", + "arguments": [ + ["const godot_packed_int64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_int64_array_destroy", + "return_type": "void", + "arguments": [ + ["godot_packed_int64_array *", "p_self"] + ] + }, + { "name": "godot_packed_float32_array_new", "return_type": "void", "arguments": [ @@ -3018,6 +2032,13 @@ ] }, { + "name": "godot_packed_float32_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_float32_array *", "p_self"] + ] + }, + { "name": "godot_packed_float32_array_append", "return_type": "void", "arguments": [ @@ -3074,6 +2095,20 @@ ] }, { + "name": "godot_packed_float32_array_ptr", + "return_type": "const float *", + "arguments": [ + ["const godot_packed_float32_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float32_array_ptrw", + "return_type": "float *", + "arguments": [ + ["godot_packed_float32_array *", "p_self"] + ] + }, + { "name": "godot_packed_float32_array_set", "return_type": "void", "arguments": [ @@ -3105,6 +2140,137 @@ ] }, { + "name": "godot_packed_float64_array_new", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "r_dest"] + ] + }, + { + "name": "godot_packed_float64_array_new_copy", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "r_dest"], + ["const godot_packed_float64_array *", "p_src"] + ] + }, + { + "name": "godot_packed_float64_array_new_with_array", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "r_dest"], + ["const godot_array *", "p_a"] + ] + }, + { + "name": "godot_packed_float64_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_float64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float64_array_append", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const double", "p_data"] + ] + }, + { + "name": "godot_packed_float64_array_append_array", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const godot_packed_float64_array *", "p_array"] + ] + }, + { + "name": "godot_packed_float64_array_insert", + "return_type": "godot_error", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const godot_int", "p_idx"], + ["const double", "p_data"] + ] + }, + { + "name": "godot_packed_float64_array_invert", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float64_array_push_back", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const double", "p_data"] + ] + }, + { + "name": "godot_packed_float64_array_remove", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_packed_float64_array_resize", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const godot_int", "p_size"] + ] + }, + { + "name": "godot_packed_float64_array_ptr", + "return_type": "const double *", + "arguments": [ + ["const godot_packed_float64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float64_array_ptrw", + "return_type": "double *", + "arguments": [ + ["godot_packed_float64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float64_array_set", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"], + ["const godot_int", "p_idx"], + ["const double", "p_data"] + ] + }, + { + "name": "godot_packed_float64_array_get", + "return_type": "double", + "arguments": [ + ["const godot_packed_float64_array *", "p_self"], + ["const godot_int", "p_idx"] + ] + }, + { + "name": "godot_packed_float64_array_size", + "return_type": "godot_int", + "arguments": [ + ["const godot_packed_float64_array *", "p_self"] + ] + }, + { + "name": "godot_packed_float64_array_destroy", + "return_type": "void", + "arguments": [ + ["godot_packed_float64_array *", "p_self"] + ] + }, + { "name": "godot_packed_string_array_new", "return_type": "void", "arguments": [ @@ -3128,6 +2294,13 @@ ] }, { + "name": "godot_packed_string_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_string_array *", "p_self"] + ] + }, + { "name": "godot_packed_string_array_append", "return_type": "void", "arguments": [ @@ -3184,6 +2357,20 @@ ] }, { + "name": "godot_packed_string_array_ptr", + "return_type": "const godot_string *", + "arguments": [ + ["const godot_packed_string_array *", "p_self"] + ] + }, + { + "name": "godot_packed_string_array_ptrw", + "return_type": "godot_string *", + "arguments": [ + ["godot_packed_string_array *", "p_self"] + ] + }, + { "name": "godot_packed_string_array_set", "return_type": "void", "arguments": [ @@ -3238,6 +2425,13 @@ ] }, { + "name": "godot_packed_vector2_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_vector2_array *", "p_self"] + ] + }, + { "name": "godot_packed_vector2_array_append", "return_type": "void", "arguments": [ @@ -3294,6 +2488,20 @@ ] }, { + "name": "godot_packed_vector2_array_ptr", + "return_type": "const godot_vector2 *", + "arguments": [ + ["const godot_packed_vector2_array *", "p_self"] + ] + }, + { + "name": "godot_packed_vector2_array_ptrw", + "return_type": "godot_vector2 *", + "arguments": [ + ["godot_packed_vector2_array *", "p_self"] + ] + }, + { "name": "godot_packed_vector2_array_set", "return_type": "void", "arguments": [ @@ -3348,6 +2556,13 @@ ] }, { + "name": "godot_packed_vector3_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_vector3_array *", "p_self"] + ] + }, + { "name": "godot_packed_vector3_array_append", "return_type": "void", "arguments": [ @@ -3404,6 +2619,20 @@ ] }, { + "name": "godot_packed_vector3_array_ptr", + "return_type": "const godot_vector3 *", + "arguments": [ + ["const godot_packed_vector3_array *", "p_self"] + ] + }, + { + "name": "godot_packed_vector3_array_ptrw", + "return_type": "godot_vector3 *", + "arguments": [ + ["godot_packed_vector3_array *", "p_self"] + ] + }, + { "name": "godot_packed_vector3_array_set", "return_type": "void", "arguments": [ @@ -3458,6 +2687,13 @@ ] }, { + "name": "godot_packed_color_array_empty", + "return_type": "godot_bool", + "arguments": [ + ["const godot_packed_color_array *", "p_self"] + ] + }, + { "name": "godot_packed_color_array_append", "return_type": "void", "arguments": [ @@ -3512,6 +2748,20 @@ ["godot_packed_color_array *", "p_self"], ["const godot_int", "p_size"] ] + }, + { + "name": "godot_packed_color_array_ptr", + "return_type": "const godot_color *", + "arguments": [ + ["const godot_packed_color_array *", "p_self"] + ] + }, + { + "name": "godot_packed_color_array_ptrw", + "return_type": "godot_color *", + "arguments": [ + ["godot_packed_color_array *", "p_self"] + ] }, { "name": "godot_packed_color_array_set", @@ -3545,1090 +2795,2064 @@ ] }, { - "name": "godot_array_new", + "name": "godot_plane_new_with_reals", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"] + ["godot_plane *", "r_dest"], + ["const godot_real", "p_a"], + ["const godot_real", "p_b"], + ["const godot_real", "p_c"], + ["const godot_real", "p_d"] ] }, { - "name": "godot_array_new_copy", + "name": "godot_plane_new_with_vectors", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_array *", "p_src"] + ["godot_plane *", "r_dest"], + ["const godot_vector3 *", "p_v1"], + ["const godot_vector3 *", "p_v2"], + ["const godot_vector3 *", "p_v3"] ] }, { - "name": "godot_array_new_packed_color_array", + "name": "godot_plane_new_with_normal", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_color_array *", "p_pca"] + ["godot_plane *", "r_dest"], + ["const godot_vector3 *", "p_normal"], + ["const godot_real", "p_d"] ] }, { - "name": "godot_array_new_packed_vector3_array", + "name": "godot_plane_as_string", + "return_type": "godot_string", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_normalized", + "return_type": "godot_plane", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_center", + "return_type": "godot_vector3", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_get_any_point", + "return_type": "godot_vector3", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_is_point_over", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["const godot_vector3 *", "p_point"] + ] + }, + { + "name": "godot_plane_distance_to", + "return_type": "godot_real", + "arguments": [ + ["const godot_plane *", "p_self"], + ["const godot_vector3 *", "p_point"] + ] + }, + { + "name": "godot_plane_has_point", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["const godot_vector3 *", "p_point"], + ["const godot_real", "p_epsilon"] + ] + }, + { + "name": "godot_plane_project", + "return_type": "godot_vector3", + "arguments": [ + ["const godot_plane *", "p_self"], + ["const godot_vector3 *", "p_point"] + ] + }, + { + "name": "godot_plane_intersect_3", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["godot_vector3 *", "r_dest"], + ["const godot_plane *", "p_b"], + ["const godot_plane *", "p_c"] + ] + }, + { + "name": "godot_plane_intersects_ray", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["godot_vector3 *", "r_dest"], + ["const godot_vector3 *", "p_from"], + ["const godot_vector3 *", "p_dir"] + ] + }, + { + "name": "godot_plane_intersects_segment", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["godot_vector3 *", "r_dest"], + ["const godot_vector3 *", "p_begin"], + ["const godot_vector3 *", "p_end"] + ] + }, + { + "name": "godot_plane_operator_neg", + "return_type": "godot_plane", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_plane *", "p_self"], + ["const godot_plane *", "p_b"] + ] + }, + { + "name": "godot_plane_set_normal", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_vector3_array *", "p_pv3a"] + ["godot_plane *", "p_self"], + ["const godot_vector3 *", "p_normal"] ] }, { - "name": "godot_array_new_packed_vector2_array", + "name": "godot_plane_get_normal", + "return_type": "godot_vector3", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_get_d", + "return_type": "godot_real", + "arguments": [ + ["const godot_plane *", "p_self"] + ] + }, + { + "name": "godot_plane_set_d", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_vector2_array *", "p_pv2a"] + ["godot_plane *", "p_self"], + ["const godot_real", "p_d"] ] }, { - "name": "godot_array_new_packed_string_array", + "name": "godot_quat_new", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_string_array *", "p_psa"] + ["godot_quat *", "r_dest"], + ["const godot_real", "p_x"], + ["const godot_real", "p_y"], + ["const godot_real", "p_z"], + ["const godot_real", "p_w"] ] }, { - "name": "godot_array_new_packed_float32_array", + "name": "godot_quat_new_with_axis_angle", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_float32_array *", "p_pra"] + ["godot_quat *", "r_dest"], + ["const godot_vector3 *", "p_axis"], + ["const godot_real", "p_angle"] ] }, { - "name": "godot_array_new_packed_int32_array", + "name": "godot_quat_new_with_basis", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_int32_array *", "p_pia"] + ["godot_quat *", "r_dest"], + ["const godot_basis *", "p_basis"] ] }, { - "name": "godot_array_new_packed_byte_array", + "name": "godot_quat_new_with_euler", "return_type": "void", "arguments": [ - ["godot_array *", "r_dest"], - ["const godot_packed_byte_array *", "p_pba"] + ["godot_quat *", "r_dest"], + ["const godot_vector3 *", "p_euler"] ] }, { - "name": "godot_array_set", + "name": "godot_quat_get_x", + "return_type": "godot_real", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_set_x", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_int", "p_idx"], - ["const godot_variant *", "p_value"] + ["godot_quat *", "p_self"], + ["const godot_real", "val"] ] }, { - "name": "godot_array_get", - "return_type": "godot_variant", + "name": "godot_quat_get_y", + "return_type": "godot_real", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_quat *", "p_self"] ] }, { - "name": "godot_array_operator_index", - "return_type": "godot_variant *", + "name": "godot_quat_set_y", + "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_int", "p_idx"] + ["godot_quat *", "p_self"], + ["const godot_real", "val"] ] }, { - "name": "godot_array_operator_index_const", - "return_type": "const godot_variant *", + "name": "godot_quat_get_z", + "return_type": "godot_real", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_quat *", "p_self"] ] }, { - "name": "godot_array_append", + "name": "godot_quat_set_z", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["godot_quat *", "p_self"], + ["const godot_real", "val"] ] }, { - "name": "godot_array_clear", + "name": "godot_quat_get_w", + "return_type": "godot_real", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_set_w", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"] + ["godot_quat *", "p_self"], + ["const godot_real", "val"] ] }, { - "name": "godot_array_count", - "return_type": "godot_int", + "name": "godot_quat_set_axis_angle", + "return_type": "void", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["godot_quat *", "p_self"], + ["const godot_vector3 *", "p_axis"], + ["const godot_real", "p_angle"] ] }, { - "name": "godot_array_empty", + "name": "godot_quat_as_string", + "return_type": "godot_string", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_length", + "return_type": "godot_real", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_length_squared", + "return_type": "godot_real", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_normalized", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"] + ] + }, + { + "name": "godot_quat_is_normalized", "return_type": "godot_bool", "arguments": [ - ["const godot_array *", "p_self"] + ["const godot_quat *", "p_self"] ] }, { - "name": "godot_array_erase", - "return_type": "void", + "name": "godot_quat_inverse", + "return_type": "godot_quat", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["const godot_quat *", "p_self"] ] }, { - "name": "godot_array_front", - "return_type": "godot_variant", + "name": "godot_quat_dot", + "return_type": "godot_real", "arguments": [ - ["const godot_array *", "p_self"] + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"] ] }, { - "name": "godot_array_back", - "return_type": "godot_variant", + "name": "godot_quat_xform", + "return_type": "godot_vector3", "arguments": [ - ["const godot_array *", "p_self"] + ["const godot_quat *", "p_self"], + ["const godot_vector3 *", "p_v"] ] }, { - "name": "godot_array_find", - "return_type": "godot_int", + "name": "godot_quat_slerp", + "return_type": "godot_quat", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_variant *", "p_what"], - ["const godot_int", "p_from"] + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_array_find_last", - "return_type": "godot_int", + "name": "godot_quat_slerpni", + "return_type": "godot_quat", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_variant *", "p_what"] + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_array_has", + "name": "godot_quat_cubic_slerp", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"], + ["const godot_quat *", "p_pre_a"], + ["const godot_quat *", "p_post_b"], + ["const godot_real", "p_t"] + ] + }, + { + "name": "godot_quat_operator_multiply", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"], + ["const godot_real", "p_b"] + ] + }, + { + "name": "godot_quat_operator_add", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"] + ] + }, + { + "name": "godot_quat_operator_subtract", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"] + ] + }, + { + "name": "godot_quat_operator_divide", + "return_type": "godot_quat", + "arguments": [ + ["const godot_quat *", "p_self"], + ["const godot_real", "p_b"] + ] + }, + { + "name": "godot_quat_operator_equal", "return_type": "godot_bool", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["const godot_quat *", "p_self"], + ["const godot_quat *", "p_b"] ] }, { - "name": "godot_array_hash", - "return_type": "godot_int", + "name": "godot_quat_operator_neg", + "return_type": "godot_quat", "arguments": [ - ["const godot_array *", "p_self"] + ["const godot_quat *", "p_self"] ] }, { - "name": "godot_array_insert", + "name": "godot_rect2_new_with_position_and_size", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_int", "p_pos"], - ["const godot_variant *", "p_value"] + ["godot_rect2 *", "r_dest"], + ["const godot_vector2 *", "p_pos"], + ["const godot_vector2 *", "p_size"] ] }, { - "name": "godot_array_invert", + "name": "godot_rect2_new", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"] + ["godot_rect2 *", "r_dest"], + ["const godot_real", "p_x"], + ["const godot_real", "p_y"], + ["const godot_real", "p_width"], + ["const godot_real", "p_height"] ] }, { - "name": "godot_array_pop_back", - "return_type": "godot_variant", + "name": "godot_rect2_as_rect2i", + "return_type": "godot_rect2i", "arguments": [ - ["godot_array *", "p_self"] + ["const godot_rect2 *", "p_self"] ] }, { - "name": "godot_array_pop_front", - "return_type": "godot_variant", + "name": "godot_rect2_as_string", + "return_type": "godot_string", "arguments": [ - ["godot_array *", "p_self"] + ["const godot_rect2 *", "p_self"] ] }, { - "name": "godot_array_push_back", + "name": "godot_rect2_get_area", + "return_type": "godot_real", + "arguments": [ + ["const godot_rect2 *", "p_self"] + ] + }, + { + "name": "godot_rect2_grow_individual", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_real", "p_left"], + ["const godot_real", "p_top"], + ["const godot_real", "p_right"], + ["const godot_real", "p_bottom"] + ] + }, + { + "name": "godot_rect2_grow_margin", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_int", "p_margin"], + ["const godot_real", "p_by"] + ] + }, + { + "name": "godot_rect2_abs", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"] + ] + }, + { + "name": "godot_rect2_intersects", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_rect2 *", "p_b"] + ] + }, + { + "name": "godot_rect2_encloses", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_rect2 *", "p_b"] + ] + }, + { + "name": "godot_rect2_has_no_area", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2 *", "p_self"] + ] + }, + { + "name": "godot_rect2_clip", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_rect2 *", "p_b"] + ] + }, + { + "name": "godot_rect2_merge", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_rect2 *", "p_b"] + ] + }, + { + "name": "godot_rect2_has_point", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_vector2 *", "p_point"] + ] + }, + { + "name": "godot_rect2_grow", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_real", "p_by"] + ] + }, + { + "name": "godot_rect2_expand", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_vector2 *", "p_to"] + ] + }, + { + "name": "godot_rect2_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2 *", "p_self"], + ["const godot_rect2 *", "p_b"] + ] + }, + { + "name": "godot_rect2_get_position", + "return_type": "godot_vector2", + "arguments": [ + ["const godot_rect2 *", "p_self"] + ] + }, + { + "name": "godot_rect2_get_size", + "return_type": "godot_vector2", + "arguments": [ + ["const godot_rect2 *", "p_self"] + ] + }, + { + "name": "godot_rect2_set_position", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["godot_rect2 *", "p_self"], + ["const godot_vector2 *", "p_pos"] ] }, { - "name": "godot_array_push_front", + "name": "godot_rect2_set_size", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"] + ["godot_rect2 *", "p_self"], + ["const godot_vector2 *", "p_size"] ] }, { - "name": "godot_array_remove", + "name": "godot_rect2i_new_with_position_and_size", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_int", "p_idx"] + ["godot_rect2i *", "r_dest"], + ["const godot_vector2i *", "p_pos"], + ["const godot_vector2i *", "p_size"] ] }, { - "name": "godot_array_resize", + "name": "godot_rect2i_new", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_int", "p_size"] + ["godot_rect2i *", "r_dest"], + ["const godot_int", "p_x"], + ["const godot_int", "p_y"], + ["const godot_int", "p_width"], + ["const godot_int", "p_height"] ] }, { - "name": "godot_array_rfind", - "return_type": "godot_int", + "name": "godot_rect2i_as_string", + "return_type": "godot_string", "arguments": [ - ["const godot_array *", "p_self"], - ["const godot_variant *", "p_what"], - ["const godot_int", "p_from"] + ["const godot_rect2i *", "p_self"] ] }, { - "name": "godot_array_size", + "name": "godot_rect2i_as_rect2", + "return_type": "godot_rect2", + "arguments": [ + ["const godot_rect2i *", "p_self"] + ] + }, + { + "name": "godot_rect2i_get_area", "return_type": "godot_int", "arguments": [ - ["const godot_array *", "p_self"] + ["const godot_rect2i *", "p_self"] ] }, { - "name": "godot_array_sort", + "name": "godot_rect2i_intersects", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_rect2i *", "p_b"] + ] + }, + { + "name": "godot_rect2i_encloses", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_rect2i *", "p_b"] + ] + }, + { + "name": "godot_rect2i_has_no_area", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2i *", "p_self"] + ] + }, + { + "name": "godot_rect2i_clip", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_rect2i *", "p_b"] + ] + }, + { + "name": "godot_rect2i_merge", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_rect2i *", "p_b"] + ] + }, + { + "name": "godot_rect2i_has_point", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_vector2i *", "p_point"] + ] + }, + { + "name": "godot_rect2i_grow", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_int", "p_by"] + ] + }, + { + "name": "godot_rect2i_grow_individual", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_int", "p_left"], + ["const godot_int", "p_top"], + ["const godot_int", "p_right"], + ["const godot_int", "p_bottom"] + ] + }, + { + "name": "godot_rect2i_grow_margin", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_int", "p_margin"], + ["const godot_int", "p_by"] + ] + }, + { + "name": "godot_rect2i_abs", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"] + ] + }, + { + "name": "godot_rect2i_expand", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_vector2i *", "p_to"] + ] + }, + { + "name": "godot_rect2i_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rect2i *", "p_self"], + ["const godot_rect2i *", "p_b"] + ] + }, + { + "name": "godot_rect2i_get_position", + "return_type": "godot_vector2i", + "arguments": [ + ["const godot_rect2i *", "p_self"] + ] + }, + { + "name": "godot_rect2i_get_size", + "return_type": "godot_vector2i", + "arguments": [ + ["const godot_rect2i *", "p_self"] + ] + }, + { + "name": "godot_rect2i_set_position", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"] + ["godot_rect2i *", "p_self"], + ["const godot_vector2i *", "p_pos"] ] }, { - "name": "godot_array_sort_custom", + "name": "godot_rect2i_set_size", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"], - ["godot_object *", "p_obj"], - ["const godot_string *", "p_func"] + ["godot_rect2i *", "p_self"], + ["const godot_vector2i *", "p_size"] ] }, { - "name": "godot_array_bsearch", + "name": "godot_rid_new", + "return_type": "void", + "arguments": [ + ["godot_rid *", "r_dest"] + ] + }, + { + "name": "godot_rid_get_id", "return_type": "godot_int", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"], - ["const godot_bool", "p_before"] + ["const godot_rid *", "p_self"] ] }, { - "name": "godot_array_bsearch_custom", + "name": "godot_rid_new_with_resource", + "return_type": "void", + "arguments": [ + ["godot_rid *", "r_dest"], + ["const godot_object *", "p_from"] + ] + }, + { + "name": "godot_rid_operator_equal", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rid *", "p_self"], + ["const godot_rid *", "p_b"] + ] + }, + { + "name": "godot_rid_operator_less", + "return_type": "godot_bool", + "arguments": [ + ["const godot_rid *", "p_self"], + ["const godot_rid *", "p_b"] + ] + }, + { + "name": "godot_char_string_length", "return_type": "godot_int", "arguments": [ - ["godot_array *", "p_self"], - ["const godot_variant *", "p_value"], - ["godot_object *", "p_obj"], - ["const godot_string *", "p_func"], - ["const godot_bool", "p_before"] + ["const godot_char_string *", "p_cs"] ] }, { - "name": "godot_array_destroy", + "name": "godot_char_string_get_data", + "return_type": "const char *", + "arguments": [ + ["const godot_char_string *", "p_cs"] + ] + }, + { + "name": "godot_char_string_destroy", "return_type": "void", "arguments": [ - ["godot_array *", "p_self"] + ["godot_char_string *", "p_cs"] ] }, { - "name": "godot_dictionary_new", + "name": "godot_string_new", "return_type": "void", "arguments": [ - ["godot_dictionary *", "r_dest"] + ["godot_string *", "r_dest"] ] }, { - "name": "godot_dictionary_new_copy", + "name": "godot_string_new_copy", "return_type": "void", "arguments": [ - ["godot_dictionary *", "r_dest"], - ["const godot_dictionary *", "p_src"] + ["godot_string *", "r_dest"], + ["const godot_string *", "p_src"] ] }, { - "name": "godot_dictionary_destroy", + "name": "godot_string_new_with_wide_string", "return_type": "void", "arguments": [ - ["godot_dictionary *", "p_self"] + ["godot_string *", "r_dest"], + ["const wchar_t *", "p_contents"], + ["const int", "p_size"] ] }, { - "name": "godot_dictionary_size", - "return_type": "godot_int", + "name": "godot_string_operator_index", + "return_type": "const wchar_t *", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["godot_string *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_dictionary_empty", - "return_type": "godot_bool", + "name": "godot_string_operator_index_const", + "return_type": "wchar_t", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_int", "p_idx"] ] }, { - "name": "godot_dictionary_clear", - "return_type": "void", + "name": "godot_string_wide_str", + "return_type": "const wchar_t *", "arguments": [ - ["godot_dictionary *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_dictionary_has", + "name": "godot_string_operator_equal", "return_type": "godot_bool", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_b"] ] }, { - "name": "godot_dictionary_has_all", + "name": "godot_string_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_array *", "p_keys"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_b"] ] }, { - "name": "godot_dictionary_erase", - "return_type": "void", + "name": "godot_string_operator_plus", + "return_type": "godot_string", "arguments": [ - ["godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_b"] ] }, { - "name": "godot_dictionary_hash", + "name": "godot_string_count", "return_type": "godot_int", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"], + ["godot_int", "p_to"] ] }, { - "name": "godot_dictionary_keys", - "return_type": "godot_array", + "name": "godot_string_countn", + "return_type": "godot_int", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"], + ["godot_int", "p_to"] ] }, { - "name": "godot_dictionary_values", - "return_type": "godot_array", + "name": "godot_string_dedent", + "return_type": "godot_string", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_dictionary_get", - "return_type": "godot_variant", + "name": "godot_string_length", + "return_type": "godot_int", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_dictionary_set", - "return_type": "void", + "name": "godot_string_casecmp_to", + "return_type": "signed char", "arguments": [ - ["godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"], - ["const godot_variant *", "p_value"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_str"] ] }, { - "name": "godot_dictionary_operator_index", - "return_type": "godot_variant *", + "name": "godot_string_nocasecmp_to", + "return_type": "signed char", "arguments": [ - ["godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_str"] ] }, { - "name": "godot_dictionary_operator_index_const", - "return_type": "const godot_variant *", + "name": "godot_string_naturalnocasecmp_to", + "return_type": "signed char", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_str"] ] }, { - "name": "godot_dictionary_next", - "return_type": "godot_variant *", + "name": "godot_string_begins_with", + "return_type": "godot_bool", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_variant *", "p_key"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_string"] ] }, { - "name": "godot_dictionary_operator_equal", + "name": "godot_string_begins_with_char_array", "return_type": "godot_bool", "arguments": [ - ["const godot_dictionary *", "p_self"], - ["const godot_dictionary *", "p_b"] + ["const godot_string *", "p_self"], + ["const char *", "p_char_array"] ] }, { - "name": "godot_dictionary_to_json", + "name": "godot_string_bigrams", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_chr", "return_type": "godot_string", "arguments": [ - ["const godot_dictionary *", "p_self"] + ["wchar_t", "p_character"] ] }, { - "name": "godot_node_path_new", - "return_type": "void", + "name": "godot_string_ends_with", + "return_type": "godot_bool", "arguments": [ - ["godot_node_path *", "r_dest"], - ["const godot_string *", "p_from"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_string"] ] }, { - "name": "godot_node_path_new_copy", - "return_type": "void", + "name": "godot_string_find", + "return_type": "godot_int", "arguments": [ - ["godot_node_path *", "r_dest"], - ["const godot_node_path *", "p_src"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"] ] }, { - "name": "godot_node_path_destroy", - "return_type": "void", + "name": "godot_string_find_from", + "return_type": "godot_int", "arguments": [ - ["godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"] ] }, { - "name": "godot_node_path_as_string", - "return_type": "godot_string", + "name": "godot_string_findmk", + "return_type": "godot_int", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_array *", "p_keys"] ] }, { - "name": "godot_node_path_is_absolute", - "return_type": "godot_bool", + "name": "godot_string_findmk_from", + "return_type": "godot_int", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_array *", "p_keys"], + ["godot_int", "p_from"] ] }, { - "name": "godot_node_path_get_name_count", + "name": "godot_string_findmk_from_in_place", "return_type": "godot_int", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_array *", "p_keys"], + ["godot_int", "p_from"], + ["godot_int *", "r_key"] ] }, { - "name": "godot_node_path_get_name", + "name": "godot_string_findn", + "return_type": "godot_int", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_string", "p_what"] + ] + }, + { + "name": "godot_string_findn_from", + "return_type": "godot_int", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"] + ] + }, + { + "name": "godot_string_find_last", + "return_type": "godot_int", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_string", "p_what"] + ] + }, + { + "name": "godot_string_format", "return_type": "godot_string", "arguments": [ - ["const godot_node_path *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_string *", "p_self"], + ["const godot_variant *", "p_values"] ] }, { - "name": "godot_node_path_get_subname_count", + "name": "godot_string_format_with_custom_placeholder", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_variant *", "p_values"], + ["const char *", "p_placeholder"] + ] + }, + { + "name": "godot_string_hex_encode_buffer", + "return_type": "godot_string", + "arguments": [ + ["const uint8_t *", "p_buffer"], + ["godot_int", "p_len"] + ] + }, + { + "name": "godot_string_hex_to_int", "return_type": "godot_int", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_node_path_get_subname", + "name": "godot_string_hex_to_int_without_prefix", + "return_type": "godot_int", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_insert", "return_type": "godot_string", "arguments": [ - ["const godot_node_path *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_string *", "p_self"], + ["godot_int", "p_at_pos"], + ["godot_string", "p_string"] ] }, { - "name": "godot_node_path_get_concatenated_subnames", + "name": "godot_string_is_numeric", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_is_subsequence_of", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_string"] + ] + }, + { + "name": "godot_string_is_subsequence_ofi", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_string"] + ] + }, + { + "name": "godot_string_lpad", "return_type": "godot_string", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_int", "p_min_length"] ] }, { - "name": "godot_node_path_is_empty", + "name": "godot_string_lpad_with_custom_character", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_int", "p_min_length"], + ["const godot_string *", "p_character"] + ] + }, + { + "name": "godot_string_match", "return_type": "godot_bool", "arguments": [ - ["const godot_node_path *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_wildcard"] ] }, { - "name": "godot_node_path_operator_equal", + "name": "godot_string_matchn", "return_type": "godot_bool", "arguments": [ - ["const godot_node_path *", "p_self"], - ["const godot_node_path *", "p_b"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_wildcard"] ] }, { - "name": "godot_plane_new_with_reals", - "return_type": "void", + "name": "godot_string_md5", + "return_type": "godot_string", "arguments": [ - ["godot_plane *", "r_dest"], - ["const godot_real", "p_a"], - ["const godot_real", "p_b"], - ["const godot_real", "p_c"], - ["const godot_real", "p_d"] + ["const uint8_t *", "p_md5"] ] }, { - "name": "godot_plane_new_with_vectors", - "return_type": "void", + "name": "godot_string_num", + "return_type": "godot_string", "arguments": [ - ["godot_plane *", "r_dest"], - ["const godot_vector3 *", "p_v1"], - ["const godot_vector3 *", "p_v2"], - ["const godot_vector3 *", "p_v3"] + ["double", "p_num"] ] }, { - "name": "godot_plane_new_with_normal", - "return_type": "void", + "name": "godot_string_num_int64", + "return_type": "godot_string", "arguments": [ - ["godot_plane *", "r_dest"], - ["const godot_vector3 *", "p_normal"], - ["const godot_real", "p_d"] + ["int64_t", "p_num"], + ["godot_int", "p_base"] ] }, { - "name": "godot_plane_as_string", + "name": "godot_string_num_int64_capitalized", "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"] + ["int64_t", "p_num"], + ["godot_int", "p_base"], + ["godot_bool", "p_capitalize_hex"] ] }, { - "name": "godot_plane_normalized", - "return_type": "godot_plane", + "name": "godot_string_num_real", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"] + ["double", "p_num"] ] }, { - "name": "godot_plane_center", - "return_type": "godot_vector3", + "name": "godot_string_num_scientific", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"] + ["double", "p_num"] ] }, { - "name": "godot_plane_get_any_point", - "return_type": "godot_vector3", + "name": "godot_string_num_with_decimals", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"] + ["double", "p_num"], + ["godot_int", "p_decimals"] ] }, { - "name": "godot_plane_is_point_over", - "return_type": "godot_bool", + "name": "godot_string_pad_decimals", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"], - ["const godot_vector3 *", "p_point"] + ["const godot_string *", "p_self"], + ["godot_int", "p_digits"] ] }, { - "name": "godot_plane_distance_to", - "return_type": "godot_real", + "name": "godot_string_pad_zeros", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"], - ["const godot_vector3 *", "p_point"] + ["const godot_string *", "p_self"], + ["godot_int", "p_digits"] ] }, { - "name": "godot_plane_has_point", - "return_type": "godot_bool", + "name": "godot_string_replace_first", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"], - ["const godot_vector3 *", "p_point"], - ["const godot_real", "p_epsilon"] + ["const godot_string *", "p_self"], + ["godot_string", "p_key"], + ["godot_string", "p_with"] ] }, { - "name": "godot_plane_project", - "return_type": "godot_vector3", + "name": "godot_string_replace", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"], - ["const godot_vector3 *", "p_point"] + ["const godot_string *", "p_self"], + ["godot_string", "p_key"], + ["godot_string", "p_with"] ] }, { - "name": "godot_plane_intersect_3", - "return_type": "godot_bool", + "name": "godot_string_replacen", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"], - ["godot_vector3 *", "r_dest"], - ["const godot_plane *", "p_b"], - ["const godot_plane *", "p_c"] + ["const godot_string *", "p_self"], + ["godot_string", "p_key"], + ["godot_string", "p_with"] ] }, { - "name": "godot_plane_intersects_ray", - "return_type": "godot_bool", + "name": "godot_string_rfind", + "return_type": "godot_int", "arguments": [ - ["const godot_plane *", "p_self"], - ["godot_vector3 *", "r_dest"], - ["const godot_vector3 *", "p_from"], - ["const godot_vector3 *", "p_dir"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"] ] }, { - "name": "godot_plane_intersects_segment", - "return_type": "godot_bool", + "name": "godot_string_rfindn", + "return_type": "godot_int", "arguments": [ - ["const godot_plane *", "p_self"], - ["godot_vector3 *", "r_dest"], - ["const godot_vector3 *", "p_begin"], - ["const godot_vector3 *", "p_end"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"] ] }, { - "name": "godot_plane_operator_neg", - "return_type": "godot_plane", + "name": "godot_string_rfind_from", + "return_type": "godot_int", "arguments": [ - ["const godot_plane *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"] ] }, { - "name": "godot_plane_operator_equal", - "return_type": "godot_bool", + "name": "godot_string_rfindn_from", + "return_type": "godot_int", "arguments": [ - ["const godot_plane *", "p_self"], - ["const godot_plane *", "p_b"] + ["const godot_string *", "p_self"], + ["godot_string", "p_what"], + ["godot_int", "p_from"] ] }, { - "name": "godot_plane_set_normal", - "return_type": "void", + "name": "godot_string_rpad", + "return_type": "godot_string", "arguments": [ - ["godot_plane *", "p_self"], - ["const godot_vector3 *", "p_normal"] + ["const godot_string *", "p_self"], + ["godot_int", "p_min_length"] ] }, { - "name": "godot_plane_get_normal", - "return_type": "godot_vector3", + "name": "godot_string_rpad_with_custom_character", + "return_type": "godot_string", "arguments": [ - ["const godot_plane *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_int", "p_min_length"], + ["const godot_string *", "p_character"] ] }, { - "name": "godot_plane_get_d", + "name": "godot_string_similarity", "return_type": "godot_real", "arguments": [ - ["const godot_plane *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_string"] ] }, { - "name": "godot_plane_set_d", - "return_type": "void", + "name": "godot_string_sprintf", + "return_type": "godot_string", "arguments": [ - ["godot_plane *", "p_self"], - ["const godot_real", "p_d"] + ["const godot_string *", "p_self"], + ["const godot_array *", "p_values"], + ["godot_bool *", "p_error"] ] }, { - "name": "godot_rect2_new_with_position_and_size", - "return_type": "void", + "name": "godot_string_substr", + "return_type": "godot_string", "arguments": [ - ["godot_rect2 *", "r_dest"], - ["const godot_vector2 *", "p_pos"], - ["const godot_vector2 *", "p_size"] + ["const godot_string *", "p_self"], + ["godot_int", "p_from"], + ["godot_int", "p_chars"] ] }, { - "name": "godot_rect2_new", - "return_type": "void", + "name": "godot_string_to_double", + "return_type": "double", "arguments": [ - ["godot_rect2 *", "r_dest"], - ["const godot_real", "p_x"], - ["const godot_real", "p_y"], - ["const godot_real", "p_width"], - ["const godot_real", "p_height"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_as_string", + "name": "godot_string_to_float", + "return_type": "godot_real", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_to_int", + "return_type": "godot_int", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_camelcase_to_underscore", "return_type": "godot_string", "arguments": [ - ["const godot_rect2 *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_get_area", - "return_type": "godot_real", + "name": "godot_string_camelcase_to_underscore_lowercased", + "return_type": "godot_string", "arguments": [ - ["const godot_rect2 *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_intersects", - "return_type": "godot_bool", + "name": "godot_string_capitalize", + "return_type": "godot_string", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_rect2 *", "p_b"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_encloses", - "return_type": "godot_bool", + "name": "godot_string_char_to_double", + "return_type": "double", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_rect2 *", "p_b"] + ["const char *", "p_what"] ] }, { - "name": "godot_rect2_has_no_area", - "return_type": "godot_bool", + "name": "godot_string_char_to_int", + "return_type": "godot_int", "arguments": [ - ["const godot_rect2 *", "p_self"] + ["const char *", "p_what"] ] }, { - "name": "godot_rect2_clip", - "return_type": "godot_rect2", + "name": "godot_string_wchar_to_int", + "return_type": "int64_t", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_rect2 *", "p_b"] + ["const wchar_t *", "p_str"] ] }, { - "name": "godot_rect2_merge", - "return_type": "godot_rect2", + "name": "godot_string_char_to_int_with_len", + "return_type": "godot_int", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_rect2 *", "p_b"] + ["const char *", "p_what"], + ["godot_int", "p_len"] ] }, { - "name": "godot_rect2_has_point", - "return_type": "godot_bool", + "name": "godot_string_char_to_int64_with_len", + "return_type": "int64_t", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_vector2 *", "p_point"] + ["const wchar_t *", "p_str"], + ["int", "p_len"] ] }, { - "name": "godot_rect2_grow", - "return_type": "godot_rect2", + "name": "godot_string_hex_to_int64", + "return_type": "int64_t", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_real", "p_by"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_expand", - "return_type": "godot_rect2", + "name": "godot_string_hex_to_int64_with_prefix", + "return_type": "int64_t", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_vector2 *", "p_to"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_operator_equal", - "return_type": "godot_bool", + "name": "godot_string_to_int64", + "return_type": "int64_t", "arguments": [ - ["const godot_rect2 *", "p_self"], - ["const godot_rect2 *", "p_b"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rect2_get_position", - "return_type": "godot_vector2", + "name": "godot_string_unicode_char_to_double", + "return_type": "double", "arguments": [ - ["const godot_rect2 *", "p_self"] + ["const wchar_t *", "p_str"], + ["const wchar_t **", "r_end"] ] }, { - "name": "godot_rect2_get_size", - "return_type": "godot_vector2", + "name": "godot_string_get_slice_count", + "return_type": "godot_int", "arguments": [ - ["const godot_rect2 *", "p_self"] + ["const godot_string *", "p_self"], + ["godot_string", "p_splitter"] ] }, { - "name": "godot_rect2_set_position", - "return_type": "void", + "name": "godot_string_get_slice", + "return_type": "godot_string", "arguments": [ - ["godot_rect2 *", "p_self"], - ["const godot_vector2 *", "p_pos"] + ["const godot_string *", "p_self"], + ["godot_string", "p_splitter"], + ["godot_int", "p_slice"] ] }, { - "name": "godot_rect2_set_size", - "return_type": "void", + "name": "godot_string_get_slicec", + "return_type": "godot_string", "arguments": [ - ["godot_rect2 *", "p_self"], - ["const godot_vector2 *", "p_size"] + ["const godot_string *", "p_self"], + ["wchar_t", "p_splitter"], + ["godot_int", "p_slice"] ] }, { - "name": "godot_aabb_new", - "return_type": "void", + "name": "godot_string_split", + "return_type": "godot_array", "arguments": [ - ["godot_aabb *", "r_dest"], - ["const godot_vector3 *", "p_pos"], - ["const godot_vector3 *", "p_size"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] ] }, { - "name": "godot_aabb_get_position", - "return_type": "godot_vector3", + "name": "godot_string_split_allow_empty", + "return_type": "godot_array", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] ] }, { - "name": "godot_aabb_set_position", - "return_type": "void", + "name": "godot_string_split_floats", + "return_type": "godot_array", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_v"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] ] }, { - "name": "godot_aabb_get_size", - "return_type": "godot_vector3", + "name": "godot_string_split_floats_allows_empty", + "return_type": "godot_array", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] ] }, { - "name": "godot_aabb_set_size", - "return_type": "void", + "name": "godot_string_split_floats_mk", + "return_type": "godot_array", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_v"] + ["const godot_string *", "p_self"], + ["const godot_array *", "p_splitters"] ] }, { - "name": "godot_aabb_as_string", + "name": "godot_string_split_floats_mk_allows_empty", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_array *", "p_splitters"] + ] + }, + { + "name": "godot_string_split_ints", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] + ] + }, + { + "name": "godot_string_split_ints_allows_empty", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_splitter"] + ] + }, + { + "name": "godot_string_split_ints_mk", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_array *", "p_splitters"] + ] + }, + { + "name": "godot_string_split_ints_mk_allows_empty", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_array *", "p_splitters"] + ] + }, + { + "name": "godot_string_split_spaces", + "return_type": "godot_array", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_rstrip", "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_chars"] ] }, { - "name": "godot_aabb_get_area", - "return_type": "godot_real", + "name": "godot_string_rsplit", + "return_type": "godot_packed_string_array", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_divisor"], + ["const godot_bool", "p_allow_empty"], + ["const godot_int", "p_maxsplit"] ] }, { - "name": "godot_aabb_has_no_area", - "return_type": "godot_bool", + "name": "godot_string_trim_prefix", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_prefix"] ] }, { - "name": "godot_aabb_has_no_surface", + "name": "godot_string_trim_suffix", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_suffix"] + ] + }, + { + "name": "godot_string_char_lowercase", + "return_type": "wchar_t", + "arguments": [ + ["wchar_t", "p_char"] + ] + }, + { + "name": "godot_string_char_uppercase", + "return_type": "wchar_t", + "arguments": [ + ["wchar_t", "p_char"] + ] + }, + { + "name": "godot_string_to_lower", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_to_upper", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_get_basename", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_get_extension", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_left", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_int", "p_pos"] + ] + }, + { + "name": "godot_string_ord_at", + "return_type": "wchar_t", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_int", "p_idx"] + ] + }, + { + "name": "godot_string_plus_file", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["const godot_string *", "p_file"] + ] + }, + { + "name": "godot_string_right", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_int", "p_pos"] + ] + }, + { + "name": "godot_string_strip_edges", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_bool", "p_left"], + ["godot_bool", "p_right"] + ] + }, + { + "name": "godot_string_strip_escapes", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_erase", + "return_type": "void", + "arguments": [ + ["godot_string *", "p_self"], + ["godot_int", "p_pos"], + ["godot_int", "p_chars"] + ] + }, + { + "name": "godot_string_ascii", + "return_type": "godot_char_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_ascii_extended", + "return_type": "godot_char_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_utf8", + "return_type": "godot_char_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_parse_utf8", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"] + ["godot_string *", "p_self"], + ["const char *", "p_utf8"] ] }, { - "name": "godot_aabb_intersects", + "name": "godot_string_parse_utf8_with_len", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_aabb *", "p_with"] + ["godot_string *", "p_self"], + ["const char *", "p_utf8"], + ["godot_int", "p_len"] ] }, { - "name": "godot_aabb_encloses", + "name": "godot_string_chars_to_utf8", + "return_type": "godot_string", + "arguments": [ + ["const char *", "p_utf8"] + ] + }, + { + "name": "godot_string_chars_to_utf8_with_len", + "return_type": "godot_string", + "arguments": [ + ["const char *", "p_utf8"], + ["godot_int", "p_len"] + ] + }, + { + "name": "godot_string_hash", + "return_type": "uint32_t", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_hash64", + "return_type": "uint64_t", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_hash_chars", + "return_type": "uint32_t", + "arguments": [ + ["const char *", "p_cstr"] + ] + }, + { + "name": "godot_string_hash_chars_with_len", + "return_type": "uint32_t", + "arguments": [ + ["const char *", "p_cstr"], + ["godot_int", "p_len"] + ] + }, + { + "name": "godot_string_hash_utf8_chars", + "return_type": "uint32_t", + "arguments": [ + ["const wchar_t *", "p_str"] + ] + }, + { + "name": "godot_string_hash_utf8_chars_with_len", + "return_type": "uint32_t", + "arguments": [ + ["const wchar_t *", "p_str"], + ["godot_int", "p_len"] + ] + }, + { + "name": "godot_string_md5_buffer", + "return_type": "godot_packed_byte_array", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_md5_text", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_sha256_buffer", + "return_type": "godot_packed_byte_array", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_sha256_text", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_empty", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_aabb *", "p_with"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_merge", - "return_type": "godot_aabb", + "name": "godot_string_get_base_dir", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_aabb *", "p_with"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_intersection", - "return_type": "godot_aabb", + "name": "godot_string_get_file", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_aabb *", "p_with"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_intersects_plane", + "name": "godot_string_humanize_size", + "return_type": "godot_string", + "arguments": [ + ["size_t", "p_size"] + ] + }, + { + "name": "godot_string_is_abs_path", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_plane *", "p_plane"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_intersects_segment", + "name": "godot_string_is_rel_path", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_from"], - ["const godot_vector3 *", "p_to"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_has_point", + "name": "godot_string_is_resource_file", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_point"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_support", - "return_type": "godot_vector3", + "name": "godot_string_path_to", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_dir"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_path"] ] }, { - "name": "godot_aabb_get_longest_axis", - "return_type": "godot_vector3", + "name": "godot_string_path_to_file", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"], + ["const godot_string *", "p_path"] ] }, { - "name": "godot_aabb_get_longest_axis_index", - "return_type": "godot_int", + "name": "godot_string_simplify_path", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_longest_axis_size", - "return_type": "godot_real", + "name": "godot_string_c_escape", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_shortest_axis", - "return_type": "godot_vector3", + "name": "godot_string_c_escape_multiline", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_shortest_axis_index", - "return_type": "godot_int", + "name": "godot_string_c_unescape", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_shortest_axis_size", - "return_type": "godot_real", + "name": "godot_string_http_escape", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_expand", - "return_type": "godot_aabb", + "name": "godot_string_http_unescape", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_vector3 *", "p_to_point"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_grow", - "return_type": "godot_aabb", + "name": "godot_string_json_escape", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_real", "p_by"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_aabb_get_endpoint", - "return_type": "godot_vector3", + "name": "godot_string_word_wrap", + "return_type": "godot_string", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_string *", "p_self"], + ["godot_int", "p_chars_per_line"] ] }, { - "name": "godot_aabb_operator_equal", + "name": "godot_string_xml_escape", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_xml_escape_with_quotes", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_xml_unescape", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_percent_decode", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_percent_encode", + "return_type": "godot_string", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_is_valid_float", "return_type": "godot_bool", "arguments": [ - ["const godot_aabb *", "p_self"], - ["const godot_aabb *", "p_b"] + ["const godot_string *", "p_self"] ] }, { - "name": "godot_rid_new", + "name": "godot_string_is_valid_hex_number", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"], + ["godot_bool", "p_with_prefix"] + ] + }, + { + "name": "godot_string_is_valid_html_color", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_is_valid_identifier", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_is_valid_integer", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_is_valid_ip_address", + "return_type": "godot_bool", + "arguments": [ + ["const godot_string *", "p_self"] + ] + }, + { + "name": "godot_string_destroy", "return_type": "void", "arguments": [ - ["godot_rid *", "r_dest"] + ["godot_string *", "p_self"] ] }, { - "name": "godot_rid_get_id", - "return_type": "godot_int", + "name": "godot_string_name_new", + "return_type": "void", "arguments": [ - ["const godot_rid *", "p_self"] + ["godot_string_name *", "r_dest"], + ["const godot_string *", "p_name"] ] }, { - "name": "godot_rid_new_with_resource", + "name": "godot_string_name_new_data", "return_type": "void", "arguments": [ - ["godot_rid *", "r_dest"], - ["const godot_object *", "p_from"] + ["godot_string_name *", "r_dest"], + ["const char *", "p_name"] ] }, { - "name": "godot_rid_operator_equal", + "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_rid *", "p_self"], - ["const godot_rid *", "p_b"] + ["const godot_string_name *", "p_self"], + ["const godot_string_name *", "p_other"] ] }, { - "name": "godot_rid_operator_less", + "name": "godot_string_name_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_rid *", "p_self"], - ["const godot_rid *", "p_b"] + ["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"] ] }, { @@ -4643,6 +4867,14 @@ ] }, { + "name": "godot_transform_new_with_quat", + "return_type": "void", + "arguments": [ + ["godot_transform *", "r_dest"], + ["const godot_quat *", "p_quat"] + ] + }, + { "name": "godot_transform_new", "return_type": "void", "arguments": [ @@ -5049,6 +5281,14 @@ ] }, { + "name": "godot_variant_new_string_name", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_string_name *", "p_s"] + ] + }, + { "name": "godot_variant_new_vector2", "return_type": "void", "arguments": [ @@ -5057,6 +5297,14 @@ ] }, { + "name": "godot_variant_new_vector2i", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_vector2i *", "p_v2"] + ] + }, + { "name": "godot_variant_new_rect2", "return_type": "void", "arguments": [ @@ -5065,6 +5313,14 @@ ] }, { + "name": "godot_variant_new_rect2i", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_rect2i *", "p_rect2"] + ] + }, + { "name": "godot_variant_new_vector3", "return_type": "void", "arguments": [ @@ -5073,6 +5329,14 @@ ] }, { + "name": "godot_variant_new_vector3i", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_vector3i *", "p_v3"] + ] + }, + { "name": "godot_variant_new_transform2d", "return_type": "void", "arguments": [ @@ -5153,6 +5417,22 @@ ] }, { + "name": "godot_variant_new_callable", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_callable *", "p_cb"] + ] + }, + { + "name": "godot_variant_new_signal", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_signal *", "p_signal"] + ] + }, + { "name": "godot_variant_new_dictionary", "return_type": "void", "arguments": [ @@ -5185,6 +5465,14 @@ ] }, { + "name": "godot_variant_new_packed_int64_array", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_packed_int64_array *", "p_pia"] + ] + }, + { "name": "godot_variant_new_packed_float32_array", "return_type": "void", "arguments": [ @@ -5193,6 +5481,14 @@ ] }, { + "name": "godot_variant_new_packed_float64_array", + "return_type": "void", + "arguments": [ + ["godot_variant *", "r_dest"], + ["const godot_packed_float64_array *", "p_pra"] + ] + }, + { "name": "godot_variant_new_packed_string_array", "return_type": "void", "arguments": [ @@ -5260,6 +5556,13 @@ ] }, { + "name": "godot_variant_as_string_name", + "return_type": "godot_string_name", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_vector2", "return_type": "godot_vector2", "arguments": [ @@ -5267,6 +5570,13 @@ ] }, { + "name": "godot_variant_as_vector2i", + "return_type": "godot_vector2i", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_rect2", "return_type": "godot_rect2", "arguments": [ @@ -5274,6 +5584,13 @@ ] }, { + "name": "godot_variant_as_rect2i", + "return_type": "godot_rect2i", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_vector3", "return_type": "godot_vector3", "arguments": [ @@ -5281,6 +5598,13 @@ ] }, { + "name": "godot_variant_as_vector3i", + "return_type": "godot_vector3i", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_transform2d", "return_type": "godot_transform2d", "arguments": [ @@ -5351,6 +5675,20 @@ ] }, { + "name": "godot_variant_as_callable", + "return_type": "godot_callable", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { + "name": "godot_variant_as_signal", + "return_type": "godot_signal", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_dictionary", "return_type": "godot_dictionary", "arguments": [ @@ -5379,6 +5717,13 @@ ] }, { + "name": "godot_variant_as_packed_int64_array", + "return_type": "godot_packed_int64_array", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_packed_float32_array", "return_type": "godot_packed_float32_array", "arguments": [ @@ -5386,6 +5731,13 @@ ] }, { + "name": "godot_variant_as_packed_float64_array", + "return_type": "godot_packed_float64_array", + "arguments": [ + ["const godot_variant *", "p_self"] + ] + }, + { "name": "godot_variant_as_packed_string_array", "return_type": "godot_packed_string_array", "arguments": [ @@ -5433,15 +5785,14 @@ ] }, { - "name": "godot_variant_operator_equal", - "return_type": "godot_bool", + "name": "godot_variant_hash", + "return_type": "uint32_t", "arguments": [ - ["const godot_variant *", "p_self"], - ["const godot_variant *", "p_other"] + ["const godot_variant *", "p_self"] ] }, { - "name": "godot_variant_operator_less", + "name": "godot_variant_operator_equal", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], @@ -5449,7 +5800,7 @@ ] }, { - "name": "godot_variant_hash_compare", + "name": "godot_variant_operator_less", "return_type": "godot_bool", "arguments": [ ["const godot_variant *", "p_self"], @@ -5457,1236 +5808,1005 @@ ] }, { - "name": "godot_variant_booleanize", - "return_type": "godot_bool", - "arguments": [ - ["const godot_variant *", "p_self"] - ] - }, - { - "name": "godot_variant_destroy", - "return_type": "void", - "arguments": [ - ["godot_variant *", "p_self"] - ] - }, - { - "name": "godot_char_string_length", - "return_type": "godot_int", + "name": "godot_variant_get_operator_name", + "return_type": "godot_string", "arguments": [ - ["const godot_char_string *", "p_cs"] + ["godot_variant_operator", "p_op"] ] }, { - "name": "godot_char_string_get_data", - "return_type": "const char *", - "arguments": [ - ["const godot_char_string *", "p_cs"] - ] - }, - { - "name": "godot_char_string_destroy", + "name": "godot_variant_evaluate", "return_type": "void", "arguments": [ - ["godot_char_string *", "p_cs"] + ["godot_variant_operator", "p_op"], + ["const godot_variant *", "p_a"], + ["const godot_variant *", "p_b"], + ["godot_variant *", "r_ret"], + ["godot_bool *", "r_valid"] ] }, { - "name": "godot_string_new", - "return_type": "void", + "name": "godot_variant_hash_compare", + "return_type": "godot_bool", "arguments": [ - ["godot_string *", "r_dest"] + ["const godot_variant *", "p_self"], + ["const godot_variant *", "p_other"] ] }, { - "name": "godot_string_new_copy", - "return_type": "void", + "name": "godot_variant_booleanize", + "return_type": "godot_bool", "arguments": [ - ["godot_string *", "r_dest"], - ["const godot_string *", "p_src"] + ["const godot_variant *", "p_self"] ] }, { - "name": "godot_string_new_with_wide_string", + "name": "godot_variant_destroy", "return_type": "void", "arguments": [ - ["godot_string *", "r_dest"], - ["const wchar_t *", "p_contents"], - ["const int", "p_size"] + ["godot_variant *", "p_self"] ] }, { - "name": "godot_string_operator_index", - "return_type": "const wchar_t *", + "name": "godot_vector2_as_vector2i", + "return_type": "godot_vector2i", "arguments": [ - ["godot_string *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_operator_index_const", - "return_type": "wchar_t", + "name": "godot_vector2_sign", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_int", "p_idx"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_wide_str", - "return_type": "const wchar_t *", + "name": "godot_vector2_move_toward", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"], + ["const godot_real", "p_delta"] ] }, { - "name": "godot_string_operator_equal", - "return_type": "godot_bool", + "name": "godot_vector2_direction_to", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_b"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"] ] }, { - "name": "godot_string_operator_less", - "return_type": "godot_bool", + "name": "godot_vector2_new", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_b"] + ["godot_vector2 *", "r_dest"], + ["const godot_real", "p_x"], + ["const godot_real", "p_y"] ] }, { - "name": "godot_string_operator_plus", + "name": "godot_vector2_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_b"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_length", - "return_type": "godot_int", + "name": "godot_vector2_normalized", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_casecmp_to", - "return_type": "signed char", + "name": "godot_vector2_length", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_str"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_nocasecmp_to", - "return_type": "signed char", + "name": "godot_vector2_angle", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_str"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_naturalnocasecmp_to", - "return_type": "signed char", + "name": "godot_vector2_length_squared", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_str"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_begins_with", + "name": "godot_vector2_is_normalized", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_string"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_begins_with_char_array", - "return_type": "godot_bool", + "name": "godot_vector2_distance_to", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const char *", "p_char_array"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"] ] }, { - "name": "godot_string_bigrams", - "return_type": "godot_array", + "name": "godot_vector2_distance_squared_to", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"] ] }, { - "name": "godot_string_chr", - "return_type": "godot_string", + "name": "godot_vector2_angle_to", + "return_type": "godot_real", "arguments": [ - ["wchar_t", "p_character"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"] ] }, { - "name": "godot_string_ends_with", - "return_type": "godot_bool", + "name": "godot_vector2_angle_to_point", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_string"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"] ] }, { - "name": "godot_string_find", - "return_type": "godot_int", + "name": "godot_vector2_lerp", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_string_find_from", - "return_type": "godot_int", + "name": "godot_vector2_cubic_interpolate", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"], + ["const godot_vector2 *", "p_pre_a"], + ["const godot_vector2 *", "p_post_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_string_findmk", - "return_type": "godot_int", + "name": "godot_vector2_rotated", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_keys"] + ["const godot_vector2 *", "p_self"], + ["const godot_real", "p_phi"] ] }, { - "name": "godot_string_findmk_from", - "return_type": "godot_int", + "name": "godot_vector2_tangent", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_keys"], - ["godot_int", "p_from"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_findmk_from_in_place", - "return_type": "godot_int", + "name": "godot_vector2_floor", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_keys"], - ["godot_int", "p_from"], - ["godot_int *", "r_key"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_findn", - "return_type": "godot_int", + "name": "godot_vector2_snapped", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_by"] ] }, { - "name": "godot_string_findn_from", - "return_type": "godot_int", + "name": "godot_vector2_aspect", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_find_last", - "return_type": "godot_int", + "name": "godot_vector2_dot", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_with"] ] }, { - "name": "godot_string_format", - "return_type": "godot_string", + "name": "godot_vector2_slide", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_variant *", "p_values"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_n"] ] }, { - "name": "godot_string_format_with_custom_placeholder", - "return_type": "godot_string", + "name": "godot_vector2_bounce", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_variant *", "p_values"], - ["const char *", "p_placeholder"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_n"] ] }, { - "name": "godot_string_hex_encode_buffer", - "return_type": "godot_string", + "name": "godot_vector2_reflect", + "return_type": "godot_vector2", "arguments": [ - ["const uint8_t *", "p_buffer"], - ["godot_int", "p_len"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_n"] ] }, { - "name": "godot_string_hex_to_int", - "return_type": "godot_int", + "name": "godot_vector2_abs", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_hex_to_int_without_prefix", - "return_type": "godot_int", + "name": "godot_vector2_clamped", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"], + ["const godot_real", "p_length"] ] }, { - "name": "godot_string_insert", - "return_type": "godot_string", + "name": "godot_vector2_operator_add", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_at_pos"], - ["godot_string", "p_string"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_is_numeric", - "return_type": "godot_bool", + "name": "godot_vector2_operator_subtract", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_is_subsequence_of", - "return_type": "godot_bool", + "name": "godot_vector2_operator_multiply_vector", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_string"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_is_subsequence_ofi", - "return_type": "godot_bool", + "name": "godot_vector2_operator_multiply_scalar", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_string"] + ["const godot_vector2 *", "p_self"], + ["const godot_real", "p_b"] ] }, { - "name": "godot_string_lpad", - "return_type": "godot_string", + "name": "godot_vector2_operator_divide_vector", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_min_length"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_lpad_with_custom_character", - "return_type": "godot_string", + "name": "godot_vector2_operator_divide_scalar", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_min_length"], - ["const godot_string *", "p_character"] + ["const godot_vector2 *", "p_self"], + ["const godot_real", "p_b"] ] }, { - "name": "godot_string_match", + "name": "godot_vector2_operator_equal", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_wildcard"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_matchn", + "name": "godot_vector2_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_wildcard"] - ] - }, - { - "name": "godot_string_md5", - "return_type": "godot_string", - "arguments": [ - ["const uint8_t *", "p_md5"] - ] - }, - { - "name": "godot_string_num", - "return_type": "godot_string", - "arguments": [ - ["double", "p_num"] - ] - }, - { - "name": "godot_string_num_int64", - "return_type": "godot_string", - "arguments": [ - ["int64_t", "p_num"], - ["godot_int", "p_base"] - ] - }, - { - "name": "godot_string_num_int64_capitalized", - "return_type": "godot_string", - "arguments": [ - ["int64_t", "p_num"], - ["godot_int", "p_base"], - ["godot_bool", "p_capitalize_hex"] - ] - }, - { - "name": "godot_string_num_real", - "return_type": "godot_string", - "arguments": [ - ["double", "p_num"] - ] - }, - { - "name": "godot_string_num_scientific", - "return_type": "godot_string", - "arguments": [ - ["double", "p_num"] - ] - }, - { - "name": "godot_string_num_with_decimals", - "return_type": "godot_string", - "arguments": [ - ["double", "p_num"], - ["godot_int", "p_decimals"] - ] - }, - { - "name": "godot_string_pad_decimals", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_digits"] - ] - }, - { - "name": "godot_string_pad_zeros", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_digits"] - ] - }, - { - "name": "godot_string_replace_first", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_key"], - ["godot_string", "p_with"] - ] - }, - { - "name": "godot_string_replace", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_key"], - ["godot_string", "p_with"] - ] - }, - { - "name": "godot_string_replacen", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_key"], - ["godot_string", "p_with"] - ] - }, - { - "name": "godot_string_rfind", - "return_type": "godot_int", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"] - ] - }, - { - "name": "godot_string_rfindn", - "return_type": "godot_int", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"] + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_b"] ] }, { - "name": "godot_string_rfind_from", - "return_type": "godot_int", + "name": "godot_vector2_operator_neg", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_rfindn_from", - "return_type": "godot_int", + "name": "godot_vector2_set_x", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_what"], - ["godot_int", "p_from"] + ["godot_vector2 *", "p_self"], + ["const godot_real", "p_x"] ] }, { - "name": "godot_string_rpad", - "return_type": "godot_string", + "name": "godot_vector2_set_y", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_min_length"] + ["godot_vector2 *", "p_self"], + ["const godot_real", "p_y"] ] }, { - "name": "godot_string_rpad_with_custom_character", - "return_type": "godot_string", + "name": "godot_vector2_get_x", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_min_length"], - ["const godot_string *", "p_character"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_similarity", + "name": "godot_vector2_get_y", "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_string"] + ["const godot_vector2 *", "p_self"] ] }, { - "name": "godot_string_sprintf", - "return_type": "godot_string", + "name": "godot_vector2i_new", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_values"], - ["godot_bool *", "p_error"] + ["godot_vector2i *", "r_dest"], + ["const godot_int", "p_x"], + ["const godot_int", "p_y"] ] }, { - "name": "godot_string_substr", + "name": "godot_vector2i_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_from"], - ["godot_int", "p_chars"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_to_double", - "return_type": "double", + "name": "godot_vector2i_as_vector2", + "return_type": "godot_vector2", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_to_float", + "name": "godot_vector2i_aspect", "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_to_int", - "return_type": "godot_int", + "name": "godot_vector2i_abs", + "return_type": "godot_vector2i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_camelcase_to_underscore", - "return_type": "godot_string", + "name": "godot_vector2i_sign", + "return_type": "godot_vector2i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_camelcase_to_underscore_lowercased", - "return_type": "godot_string", + "name": "godot_vector2i_operator_add", + "return_type": "godot_vector2i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_capitalize", - "return_type": "godot_string", + "name": "godot_vector2i_operator_subtract", + "return_type": "godot_vector2i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_char_to_double", - "return_type": "double", + "name": "godot_vector2i_operator_multiply_vector", + "return_type": "godot_vector2i", "arguments": [ - ["const char *", "p_what"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_char_to_int", - "return_type": "godot_int", + "name": "godot_vector2i_operator_multiply_scalar", + "return_type": "godot_vector2i", "arguments": [ - ["const char *", "p_what"] + ["const godot_vector2i *", "p_self"], + ["const godot_int", "p_b"] ] }, { - "name": "godot_string_wchar_to_int", - "return_type": "int64_t", + "name": "godot_vector2i_operator_divide_vector", + "return_type": "godot_vector2i", "arguments": [ - ["const wchar_t *", "p_str"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_char_to_int_with_len", - "return_type": "godot_int", + "name": "godot_vector2i_operator_divide_scalar", + "return_type": "godot_vector2i", "arguments": [ - ["const char *", "p_what"], - ["godot_int", "p_len"] + ["const godot_vector2i *", "p_self"], + ["const godot_int", "p_b"] ] }, { - "name": "godot_string_char_to_int64_with_len", - "return_type": "int64_t", + "name": "godot_vector2i_operator_equal", + "return_type": "godot_bool", "arguments": [ - ["const wchar_t *", "p_str"], - ["int", "p_len"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_hex_to_int64", - "return_type": "int64_t", + "name": "godot_vector2i_operator_less", + "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"], + ["const godot_vector2i *", "p_b"] ] }, { - "name": "godot_string_hex_to_int64_with_prefix", - "return_type": "int64_t", + "name": "godot_vector2i_operator_neg", + "return_type": "godot_vector2i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_to_int64", - "return_type": "int64_t", + "name": "godot_vector2i_set_x", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"] + ["godot_vector2i *", "p_self"], + ["const godot_int", "p_x"] ] }, { - "name": "godot_string_unicode_char_to_double", - "return_type": "double", + "name": "godot_vector2i_set_y", + "return_type": "void", "arguments": [ - ["const wchar_t *", "p_str"], - ["const wchar_t **", "r_end"] + ["godot_vector2i *", "p_self"], + ["const godot_int", "p_y"] ] }, { - "name": "godot_string_get_slice_count", + "name": "godot_vector2i_get_x", "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_splitter"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_get_slice", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["godot_string", "p_splitter"], - ["godot_int", "p_slice"] - ] - }, - { - "name": "godot_string_get_slicec", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["wchar_t", "p_splitter"], - ["godot_int", "p_slice"] - ] - }, - { - "name": "godot_string_split", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_allow_empty", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_floats", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_floats_allows_empty", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_floats_mk", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_splitters"] - ] - }, - { - "name": "godot_string_split_floats_mk_allows_empty", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_splitters"] - ] - }, - { - "name": "godot_string_split_ints", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_ints_allows_empty", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_splitter"] - ] - }, - { - "name": "godot_string_split_ints_mk", - "return_type": "godot_array", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_splitters"] - ] - }, - { - "name": "godot_string_split_ints_mk_allows_empty", - "return_type": "godot_array", + "name": "godot_vector2i_get_y", + "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_array *", "p_splitters"] + ["const godot_vector2i *", "p_self"] ] }, { - "name": "godot_string_split_spaces", - "return_type": "godot_array", + "name": "godot_vector3_as_vector3i", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_char_lowercase", - "return_type": "wchar_t", + "name": "godot_vector3_sign", + "return_type": "godot_vector3", "arguments": [ - ["wchar_t", "p_char"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_char_uppercase", - "return_type": "wchar_t", + "name": "godot_vector3_move_toward", + "return_type": "godot_vector3", "arguments": [ - ["wchar_t", "p_char"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_to"], + ["const godot_real", "p_delta"] ] }, { - "name": "godot_string_to_lower", - "return_type": "godot_string", + "name": "godot_vector3_direction_to", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_to"] ] }, { - "name": "godot_string_to_upper", - "return_type": "godot_string", + "name": "godot_vector3_new", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"] + ["godot_vector3 *", "r_dest"], + ["const godot_real", "p_x"], + ["const godot_real", "p_y"], + ["const godot_real", "p_z"] ] }, { - "name": "godot_string_get_basename", + "name": "godot_vector3_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_get_extension", - "return_type": "godot_string", + "name": "godot_vector3_min_axis", + "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_left", - "return_type": "godot_string", + "name": "godot_vector3_max_axis", + "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_pos"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_ord_at", - "return_type": "wchar_t", + "name": "godot_vector3_length", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_idx"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_plus_file", - "return_type": "godot_string", + "name": "godot_vector3_length_squared", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_file"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_right", - "return_type": "godot_string", + "name": "godot_vector3_is_normalized", + "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_pos"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_strip_edges", - "return_type": "godot_string", + "name": "godot_vector3_normalized", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_bool", "p_left"], - ["godot_bool", "p_right"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_strip_escapes", - "return_type": "godot_string", + "name": "godot_vector3_inverse", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_erase", - "return_type": "void", + "name": "godot_vector3_snapped", + "return_type": "godot_vector3", "arguments": [ - ["godot_string *", "p_self"], - ["godot_int", "p_pos"], - ["godot_int", "p_chars"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_by"] ] }, { - "name": "godot_string_ascii", - "return_type": "godot_char_string", + "name": "godot_vector3_rotated", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_axis"], + ["const godot_real", "p_phi"] ] }, { - "name": "godot_string_ascii_extended", - "return_type": "godot_char_string", + "name": "godot_vector3_lerp", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_string_utf8", - "return_type": "godot_char_string", + "name": "godot_vector3_cubic_interpolate", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"], + ["const godot_vector3 *", "p_pre_a"], + ["const godot_vector3 *", "p_post_b"], + ["const godot_real", "p_t"] ] }, { - "name": "godot_string_parse_utf8", - "return_type": "godot_bool", + "name": "godot_vector3_dot", + "return_type": "godot_real", "arguments": [ - ["godot_string *", "p_self"], - ["const char *", "p_utf8"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_parse_utf8_with_len", - "return_type": "godot_bool", + "name": "godot_vector3_cross", + "return_type": "godot_vector3", "arguments": [ - ["godot_string *", "p_self"], - ["const char *", "p_utf8"], - ["godot_int", "p_len"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_chars_to_utf8", - "return_type": "godot_string", + "name": "godot_vector3_outer", + "return_type": "godot_basis", "arguments": [ - ["const char *", "p_utf8"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_chars_to_utf8_with_len", - "return_type": "godot_string", + "name": "godot_vector3_to_diagonal_matrix", + "return_type": "godot_basis", "arguments": [ - ["const char *", "p_utf8"], - ["godot_int", "p_len"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_hash", - "return_type": "uint32_t", + "name": "godot_vector3_abs", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_hash64", - "return_type": "uint64_t", + "name": "godot_vector3_floor", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_hash_chars", - "return_type": "uint32_t", + "name": "godot_vector3_ceil", + "return_type": "godot_vector3", "arguments": [ - ["const char *", "p_cstr"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_hash_chars_with_len", - "return_type": "uint32_t", + "name": "godot_vector3_distance_to", + "return_type": "godot_real", "arguments": [ - ["const char *", "p_cstr"], - ["godot_int", "p_len"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_hash_utf8_chars", - "return_type": "uint32_t", + "name": "godot_vector3_distance_squared_to", + "return_type": "godot_real", "arguments": [ - ["const wchar_t *", "p_str"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_hash_utf8_chars_with_len", - "return_type": "uint32_t", + "name": "godot_vector3_angle_to", + "return_type": "godot_real", "arguments": [ - ["const wchar_t *", "p_str"], - ["godot_int", "p_len"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_to"] ] }, { - "name": "godot_string_md5_buffer", - "return_type": "godot_packed_byte_array", + "name": "godot_vector3_slide", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_n"] ] }, { - "name": "godot_string_md5_text", - "return_type": "godot_string", + "name": "godot_vector3_bounce", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_n"] ] }, { - "name": "godot_string_sha256_buffer", - "return_type": "godot_packed_byte_array", + "name": "godot_vector3_reflect", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_n"] ] }, { - "name": "godot_string_sha256_text", - "return_type": "godot_string", + "name": "godot_vector3_operator_add", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_empty", - "return_type": "godot_bool", + "name": "godot_vector3_operator_subtract", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_get_base_dir", - "return_type": "godot_string", + "name": "godot_vector3_operator_multiply_vector", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_get_file", - "return_type": "godot_string", + "name": "godot_vector3_operator_multiply_scalar", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_real", "p_b"] ] }, { - "name": "godot_string_humanize_size", - "return_type": "godot_string", + "name": "godot_vector3_operator_divide_vector", + "return_type": "godot_vector3", "arguments": [ - ["size_t", "p_size"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_is_abs_path", - "return_type": "godot_bool", + "name": "godot_vector3_operator_divide_scalar", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_real", "p_b"] ] }, { - "name": "godot_string_is_rel_path", + "name": "godot_vector3_operator_equal", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_is_resource_file", + "name": "godot_vector3_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"] - ] - }, - { - "name": "godot_string_path_to", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_path"] - ] - }, - { - "name": "godot_string_path_to_file", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"], - ["const godot_string *", "p_path"] - ] - }, - { - "name": "godot_string_simplify_path", - "return_type": "godot_string", - "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_b"] ] }, { - "name": "godot_string_c_escape", - "return_type": "godot_string", + "name": "godot_vector3_operator_neg", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"] ] }, { - "name": "godot_string_c_escape_multiline", - "return_type": "godot_string", + "name": "godot_vector3_set_axis", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"] + ["godot_vector3 *", "p_self"], + ["const godot_vector3_axis", "p_axis"], + ["const godot_real", "p_val"] ] }, { - "name": "godot_string_c_unescape", - "return_type": "godot_string", + "name": "godot_vector3_get_axis", + "return_type": "godot_real", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3 *", "p_self"], + ["const godot_vector3_axis", "p_axis"] ] }, { - "name": "godot_string_http_escape", - "return_type": "godot_string", + "name": "godot_vector3i_new", + "return_type": "void", "arguments": [ - ["const godot_string *", "p_self"] + ["godot_vector3i *", "r_dest"], + ["const godot_int", "p_x"], + ["const godot_int", "p_y"], + ["const godot_int", "p_z"] ] }, { - "name": "godot_string_http_unescape", + "name": "godot_vector3i_as_string", "return_type": "godot_string", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_json_escape", - "return_type": "godot_string", + "name": "godot_vector3i_as_vector3", + "return_type": "godot_vector3", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_word_wrap", - "return_type": "godot_string", + "name": "godot_vector3i_min_axis", + "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_int", "p_chars_per_line"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_xml_escape", - "return_type": "godot_string", + "name": "godot_vector3i_max_axis", + "return_type": "godot_int", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_xml_escape_with_quotes", - "return_type": "godot_string", + "name": "godot_vector3i_abs", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_xml_unescape", - "return_type": "godot_string", + "name": "godot_vector3i_sign", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_percent_decode", - "return_type": "godot_string", + "name": "godot_vector3i_operator_add", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_percent_encode", - "return_type": "godot_string", + "name": "godot_vector3i_operator_subtract", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_is_valid_float", - "return_type": "godot_bool", + "name": "godot_vector3i_operator_multiply_vector", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_is_valid_hex_number", - "return_type": "godot_bool", + "name": "godot_vector3i_operator_multiply_scalar", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"], - ["godot_bool", "p_with_prefix"] + ["const godot_vector3i *", "p_self"], + ["const godot_int", "p_b"] ] }, { - "name": "godot_string_is_valid_html_color", - "return_type": "godot_bool", + "name": "godot_vector3i_operator_divide_vector", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_is_valid_identifier", - "return_type": "godot_bool", + "name": "godot_vector3i_operator_divide_scalar", + "return_type": "godot_vector3i", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_int", "p_b"] ] }, { - "name": "godot_string_is_valid_integer", + "name": "godot_vector3i_operator_equal", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_is_valid_ip_address", + "name": "godot_vector3i_operator_less", "return_type": "godot_bool", "arguments": [ - ["const godot_string *", "p_self"] - ] - }, - { - "name": "godot_string_destroy", - "return_type": "void", - "arguments": [ - ["godot_string *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3i *", "p_b"] ] }, { - "name": "godot_string_name_new", - "return_type": "void", + "name": "godot_vector3i_operator_neg", + "return_type": "godot_vector3i", "arguments": [ - ["godot_string_name *", "r_dest"], - ["const godot_string *", "p_name"] + ["const godot_vector3i *", "p_self"] ] }, { - "name": "godot_string_name_new_data", + "name": "godot_vector3i_set_axis", "return_type": "void", "arguments": [ - ["godot_string_name *", "r_dest"], - ["const char *", "p_name"] + ["godot_vector3i *", "p_self"], + ["const godot_vector3_axis", "p_axis"], + ["const godot_int", "p_val"] ] }, { - "name": "godot_string_name_get_name", - "return_type": "godot_string", + "name": "godot_vector3i_get_axis", + "return_type": "godot_int", "arguments": [ - ["const godot_string_name *", "p_self"] + ["const godot_vector3i *", "p_self"], + ["const godot_vector3_axis", "p_axis"] ] }, { - "name": "godot_string_name_get_hash", - "return_type": "uint32_t", + "name": "godot_global_get_singleton", + "return_type": "godot_object *", "arguments": [ - ["const godot_string_name *", "p_self"] + ["char *", "p_name"] ] }, { - "name": "godot_string_name_get_data_unique_pointer", - "return_type": "const void *", + "name": "godot_get_class_tag", + "return_type": "void *", "arguments": [ - ["const godot_string_name *", "p_self"] + ["const godot_string_name *", "p_class"] ] }, { - "name": "godot_string_name_operator_equal", - "return_type": "godot_bool", + "name": "godot_object_cast_to", + "return_type": "godot_object *", "arguments": [ - ["const godot_string_name *", "p_self"], - ["const godot_string_name *", "p_other"] + ["const godot_object *", "p_object"], + ["void *", "p_class_tag"] ] }, { - "name": "godot_string_name_operator_less", - "return_type": "godot_bool", + "name": "godot_object_get_instance_id", + "return_type": "uint64_t", "arguments": [ - ["const godot_string_name *", "p_self"], - ["const godot_string_name *", "p_other"] + ["const godot_object *", "p_object"] ] }, { - "name": "godot_string_name_destroy", - "return_type": "void", + "name": "godot_instance_from_id", + "return_type": "godot_object *", "arguments": [ - ["godot_string_name *", "p_self"] + ["uint64_t", "p_instance_id"] ] }, { @@ -6697,13 +6817,6 @@ ] }, { - "name": "godot_global_get_singleton", - "return_type": "godot_object *", - "arguments": [ - ["char *", "p_name"] - ] - }, - { "name": "godot_method_bind_get_method", "return_type": "godot_method_bind *", "arguments": [ @@ -6809,132 +6922,10 @@ "name": "nativescript", "type": "NATIVESCRIPT", "version": { - "major": 1, + "major": 4, "minor": 0 }, - "next": { - "type": "NATIVESCRIPT", - "version": { - "major": 1, - "minor": 1 - }, - "next": null, - "api": [ - { - "name": "godot_nativescript_set_method_argument_information", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["const char *", "p_function_name"], - ["int", "p_num_args"], - ["const godot_method_arg *", "p_args"] - ] - }, - { - "name": "godot_nativescript_set_class_documentation", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["godot_string", "p_documentation"] - ] - }, - { - "name": "godot_nativescript_set_method_documentation", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["const char *", "p_function_name"], - ["godot_string", "p_documentation"] - ] - }, - { - "name": "godot_nativescript_set_property_documentation", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["const char *", "p_path"], - ["godot_string", "p_documentation"] - ] - }, - { - "name": "godot_nativescript_set_signal_documentation", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["const char *", "p_signal_name"], - ["godot_string", "p_documentation"] - ] - }, - { - "name": "godot_nativescript_set_global_type_tag", - "return_type": "void", - "arguments": [ - ["int", "p_idx"], - ["const char *", "p_name"], - ["const void *", "p_type_tag"] - ] - }, - { - "name": "godot_nativescript_get_global_type_tag", - "return_type": "const void *", - "arguments": [ - ["int", "p_idx"], - ["const char *", "p_name"] - ] - }, - { - "name": "godot_nativescript_set_type_tag", - "return_type": "void", - "arguments": [ - ["void *", "p_gdnative_handle"], - ["const char *", "p_name"], - ["const void *", "p_type_tag"] - ] - }, - { - "name": "godot_nativescript_get_type_tag", - "return_type": "const void *", - "arguments": [ - ["const godot_object *", "p_object"] - ] - }, - { - "name": "godot_nativescript_register_instance_binding_data_functions", - "return_type": "int", - "arguments": [ - ["godot_instance_binding_functions", "p_binding_functions"] - ] - }, - { - "name": "godot_nativescript_unregister_instance_binding_data_functions", - "return_type": "void", - "arguments": [ - ["int", "p_idx"] - ] - }, - { - "name": "godot_nativescript_get_instance_binding_data", - "return_type": "void *", - "arguments": [ - ["int", "p_idx"], - ["godot_object *", "p_object"] - ] - }, - { - "name": "godot_nativescript_profiling_add_data", - "return_type": "void", - "arguments": [ - ["const char *", "p_signature"], - ["uint64_t", "p_line"] - ] - } - ] - }, + "next": null, "api": [ { "name": "godot_nativescript_register_class", @@ -6943,8 +6934,8 @@ ["void *", "p_gdnative_handle"], ["const char *", "p_name"], ["const char *", "p_base"], - ["godot_instance_create_func", "p_create_func"], - ["godot_instance_destroy_func", "p_destroy_func"] + ["godot_nativescript_instance_create_func", "p_create_func"], + ["godot_nativescript_instance_destroy_func", "p_destroy_func"] ] }, { @@ -6954,8 +6945,8 @@ ["void *", "p_gdnative_handle"], ["const char *", "p_name"], ["const char *", "p_base"], - ["godot_instance_create_func", "p_create_func"], - ["godot_instance_destroy_func", "p_destroy_func"] + ["godot_nativescript_instance_create_func", "p_create_func"], + ["godot_nativescript_instance_destroy_func", "p_destroy_func"] ] }, { @@ -6965,8 +6956,19 @@ ["void *", "p_gdnative_handle"], ["const char *", "p_name"], ["const char *", "p_function_name"], - ["godot_method_attributes", "p_attr"], - ["godot_instance_method", "p_method"] + ["godot_nativescript_method_attributes", "p_attr"], + ["godot_nativescript_instance_method", "p_method"] + ] + }, + { + "name": "godot_nativescript_set_method_argument_information", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["const char *", "p_function_name"], + ["int", "p_num_args"], + ["const godot_nativescript_method_argument *", "p_args"] ] }, { @@ -6976,9 +6978,9 @@ ["void *", "p_gdnative_handle"], ["const char *", "p_name"], ["const char *", "p_path"], - ["godot_property_attributes *", "p_attr"], - ["godot_property_set_func", "p_set_func"], - ["godot_property_get_func", "p_get_func"] + ["godot_nativescript_property_attributes *", "p_attr"], + ["godot_nativescript_property_set_func", "p_set_func"], + ["godot_nativescript_property_get_func", "p_get_func"] ] }, { @@ -6996,6 +6998,108 @@ "arguments": [ ["godot_object *", "p_instance"] ] + }, + { + "name": "godot_nativescript_set_class_documentation", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["godot_string", "p_documentation"] + ] + }, + { + "name": "godot_nativescript_set_method_documentation", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["const char *", "p_function_name"], + ["godot_string", "p_documentation"] + ] + }, + { + "name": "godot_nativescript_set_property_documentation", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["const char *", "p_path"], + ["godot_string", "p_documentation"] + ] + }, + { + "name": "godot_nativescript_set_signal_documentation", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["const char *", "p_signal_name"], + ["godot_string", "p_documentation"] + ] + }, + { + "name": "godot_nativescript_set_global_type_tag", + "return_type": "void", + "arguments": [ + ["int", "p_idx"], + ["const char *", "p_name"], + ["const void *", "p_type_tag"] + ] + }, + { + "name": "godot_nativescript_get_global_type_tag", + "return_type": "const void *", + "arguments": [ + ["int", "p_idx"], + ["const char *", "p_name"] + ] + }, + { + "name": "godot_nativescript_set_type_tag", + "return_type": "void", + "arguments": [ + ["void *", "p_gdnative_handle"], + ["const char *", "p_name"], + ["const void *", "p_type_tag"] + ] + }, + { + "name": "godot_nativescript_get_type_tag", + "return_type": "const void *", + "arguments": [ + ["const godot_object *", "p_object"] + ] + }, + { + "name": "godot_nativescript_register_instance_binding_data_functions", + "return_type": "int", + "arguments": [ + ["godot_nativescript_instance_binding_functions", "p_binding_functions"] + ] + }, + { + "name": "godot_nativescript_unregister_instance_binding_data_functions", + "return_type": "void", + "arguments": [ + ["int", "p_idx"] + ] + }, + { + "name": "godot_nativescript_get_instance_binding_data", + "return_type": "void *", + "arguments": [ + ["int", "p_idx"], + ["godot_object *", "p_object"] + ] + }, + { + "name": "godot_nativescript_profiling_add_data", + "return_type": "void", + "arguments": [ + ["const char *", "p_signature"], + ["uint64_t", "p_line"] + ] } ] }, @@ -7189,42 +7293,10 @@ "name": "net", "type": "NET", "version": { - "major": 3, - "minor": 1 - }, - "next": { - "type": "NET", - "version": { - "major": 3, - "minor": 2 - }, - "next": null, - "api": [ - { - "name": "godot_net_set_webrtc_library", - "return_type": "godot_error", - "arguments": [ - ["const godot_net_webrtc_library *", "p_library"] - ] - }, - { - "name": "godot_net_bind_webrtc_peer_connection", - "return_type": "void", - "arguments": [ - ["godot_object *", "p_obj"], - ["const godot_net_webrtc_peer_connection *", "p_interface"] - ] - }, - { - "name": "godot_net_bind_webrtc_data_channel", - "return_type": "void", - "arguments": [ - ["godot_object *", "p_obj"], - ["const godot_net_webrtc_data_channel *", "p_interface"] - ] - } - ] + "major": 4, + "minor": 0 }, + "next": null, "api": [ { "name": "godot_net_bind_stream_peer", @@ -7249,6 +7321,29 @@ ["godot_object *", "p_obj"], ["const godot_net_multiplayer_peer *", "p_interface"] ] + }, + { + "name": "godot_net_set_webrtc_library", + "return_type": "godot_error", + "arguments": [ + ["const godot_net_webrtc_library *", "p_library"] + ] + }, + { + "name": "godot_net_bind_webrtc_peer_connection", + "return_type": "void", + "arguments": [ + ["godot_object *", "p_obj"], + ["const godot_net_webrtc_peer_connection *", "p_interface"] + ] + }, + { + "name": "godot_net_bind_webrtc_data_channel", + "return_type": "void", + "arguments": [ + ["godot_object *", "p_obj"], + ["const godot_net_webrtc_data_channel *", "p_interface"] + ] } ] } diff --git a/modules/gdnative/gdnative_builders.py b/modules/gdnative/gdnative_builders.py index 620935795f..a6f8afb85b 100644 --- a/modules/gdnative/gdnative_builders.py +++ b/modules/gdnative/gdnative_builders.py @@ -228,7 +228,16 @@ def _build_gdnative_api_struct_source(api): "extern const godot_gdnative_core_api_struct api_struct = {", "\tGDNATIVE_" + api["core"]["type"] + ",", "\t{" + str(api["core"]["version"]["major"]) + ", " + str(api["core"]["version"]["minor"]) + "},", - "\t(const godot_gdnative_api_struct *)&api_1_1,", + "\t" + + ( + "nullptr, " + if not api["core"]["next"] + else ( + "(const godot_gdnative_api_struct *)& api_{0}_{1},".format( + api["core"]["next"]["version"]["major"], api["core"]["next"]["version"]["minor"] + ) + ) + ), "\t" + str(len(api["extensions"])) + ",", "\tgdnative_extensions_pointers,", ] diff --git a/modules/gdnative/gdnative_library_editor_plugin.cpp b/modules/gdnative/gdnative_library_editor_plugin.cpp index 2a9836329e..5896da4640 100644 --- a/modules/gdnative/gdnative_library_editor_plugin.cpp +++ b/modules/gdnative/gdnative_library_editor_plugin.cpp @@ -283,7 +283,7 @@ GDNativeLibraryEditor::GDNativeLibraryEditor() { platforms["Haiku"] = platform_haiku; NativePlatformConfig platform_uwp; - platform_uwp.name = "Windows Universal"; + platform_uwp.name = "UWP"; platform_uwp.entries.push_back("arm"); platform_uwp.entries.push_back("32"); platform_uwp.entries.push_back("64"); diff --git a/modules/gdnative/include/gdnative/packed_arrays.h b/modules/gdnative/include/gdnative/packed_arrays.h index d5bad70bdc..8cff6d49a5 100644 --- a/modules/gdnative/include/gdnative/packed_arrays.h +++ b/modules/gdnative/include/gdnative/packed_arrays.h @@ -158,6 +158,9 @@ void GDAPI godot_packed_byte_array_new(godot_packed_byte_array *r_dest); void GDAPI godot_packed_byte_array_new_copy(godot_packed_byte_array *r_dest, const godot_packed_byte_array *p_src); void GDAPI godot_packed_byte_array_new_with_array(godot_packed_byte_array *r_dest, const godot_array *p_a); +const uint8_t GDAPI *godot_packed_byte_array_ptr(const godot_packed_byte_array *p_self); +uint8_t GDAPI *godot_packed_byte_array_ptrw(godot_packed_byte_array *p_self); + void GDAPI godot_packed_byte_array_append(godot_packed_byte_array *p_self, const uint8_t p_data); void GDAPI godot_packed_byte_array_append_array(godot_packed_byte_array *p_self, const godot_packed_byte_array *p_array); @@ -187,6 +190,9 @@ void GDAPI godot_packed_int32_array_new(godot_packed_int32_array *r_dest); void GDAPI godot_packed_int32_array_new_copy(godot_packed_int32_array *r_dest, const godot_packed_int32_array *p_src); void GDAPI godot_packed_int32_array_new_with_array(godot_packed_int32_array *r_dest, const godot_array *p_a); +const int32_t GDAPI *godot_packed_int32_array_ptr(const godot_packed_int32_array *p_self); +int32_t GDAPI *godot_packed_int32_array_ptrw(godot_packed_int32_array *p_self); + void GDAPI godot_packed_int32_array_append(godot_packed_int32_array *p_self, const int32_t p_data); void GDAPI godot_packed_int32_array_append_array(godot_packed_int32_array *p_self, const godot_packed_int32_array *p_array); @@ -216,6 +222,9 @@ void GDAPI godot_packed_int64_array_new(godot_packed_int64_array *r_dest); void GDAPI godot_packed_int64_array_new_copy(godot_packed_int64_array *r_dest, const godot_packed_int64_array *p_src); void GDAPI godot_packed_int64_array_new_with_array(godot_packed_int64_array *r_dest, const godot_array *p_a); +const int64_t GDAPI *godot_packed_int64_array_ptr(const godot_packed_int64_array *p_self); +int64_t GDAPI *godot_packed_int64_array_ptrw(godot_packed_int64_array *p_self); + void GDAPI godot_packed_int64_array_append(godot_packed_int64_array *p_self, const int64_t p_data); void GDAPI godot_packed_int64_array_append_array(godot_packed_int64_array *p_self, const godot_packed_int64_array *p_array); @@ -245,6 +254,9 @@ void GDAPI godot_packed_float32_array_new(godot_packed_float32_array *r_dest); void GDAPI godot_packed_float32_array_new_copy(godot_packed_float32_array *r_dest, const godot_packed_float32_array *p_src); void GDAPI godot_packed_float32_array_new_with_array(godot_packed_float32_array *r_dest, const godot_array *p_a); +const float GDAPI *godot_packed_float32_array_ptr(const godot_packed_float32_array *p_self); +float GDAPI *godot_packed_float32_array_ptrw(godot_packed_float32_array *p_self); + void GDAPI godot_packed_float32_array_append(godot_packed_float32_array *p_self, const float p_data); void GDAPI godot_packed_float32_array_append_array(godot_packed_float32_array *p_self, const godot_packed_float32_array *p_array); @@ -274,6 +286,9 @@ void GDAPI godot_packed_float64_array_new(godot_packed_float64_array *r_dest); void GDAPI godot_packed_float64_array_new_copy(godot_packed_float64_array *r_dest, const godot_packed_float64_array *p_src); void GDAPI godot_packed_float64_array_new_with_array(godot_packed_float64_array *r_dest, const godot_array *p_a); +const double GDAPI *godot_packed_float64_array_ptr(const godot_packed_float64_array *p_self); +double GDAPI *godot_packed_float64_array_ptrw(godot_packed_float64_array *p_self); + void GDAPI godot_packed_float64_array_append(godot_packed_float64_array *p_self, const double p_data); void GDAPI godot_packed_float64_array_append_array(godot_packed_float64_array *p_self, const godot_packed_float64_array *p_array); @@ -303,6 +318,9 @@ void GDAPI godot_packed_string_array_new(godot_packed_string_array *r_dest); void GDAPI godot_packed_string_array_new_copy(godot_packed_string_array *r_dest, const godot_packed_string_array *p_src); void GDAPI godot_packed_string_array_new_with_array(godot_packed_string_array *r_dest, const godot_array *p_a); +const godot_string GDAPI *godot_packed_string_array_ptr(const godot_packed_string_array *p_self); +godot_string GDAPI *godot_packed_string_array_ptrw(godot_packed_string_array *p_self); + void GDAPI godot_packed_string_array_append(godot_packed_string_array *p_self, const godot_string *p_data); void GDAPI godot_packed_string_array_append_array(godot_packed_string_array *p_self, const godot_packed_string_array *p_array); @@ -332,6 +350,9 @@ void GDAPI godot_packed_vector2_array_new(godot_packed_vector2_array *r_dest); void GDAPI godot_packed_vector2_array_new_copy(godot_packed_vector2_array *r_dest, const godot_packed_vector2_array *p_src); void GDAPI godot_packed_vector2_array_new_with_array(godot_packed_vector2_array *r_dest, const godot_array *p_a); +const godot_vector2 GDAPI *godot_packed_vector2_array_ptr(const godot_packed_vector2_array *p_self); +godot_vector2 GDAPI *godot_packed_vector2_array_ptrw(godot_packed_vector2_array *p_self); + void GDAPI godot_packed_vector2_array_append(godot_packed_vector2_array *p_self, const godot_vector2 *p_data); void GDAPI godot_packed_vector2_array_append_array(godot_packed_vector2_array *p_self, const godot_packed_vector2_array *p_array); @@ -361,6 +382,9 @@ void GDAPI godot_packed_vector3_array_new(godot_packed_vector3_array *r_dest); void GDAPI godot_packed_vector3_array_new_copy(godot_packed_vector3_array *r_dest, const godot_packed_vector3_array *p_src); void GDAPI godot_packed_vector3_array_new_with_array(godot_packed_vector3_array *r_dest, const godot_array *p_a); +const godot_vector3 GDAPI *godot_packed_vector3_array_ptr(const godot_packed_vector3_array *p_self); +godot_vector3 GDAPI *godot_packed_vector3_array_ptrw(godot_packed_vector3_array *p_self); + void GDAPI godot_packed_vector3_array_append(godot_packed_vector3_array *p_self, const godot_vector3 *p_data); void GDAPI godot_packed_vector3_array_append_array(godot_packed_vector3_array *p_self, const godot_packed_vector3_array *p_array); @@ -390,6 +414,9 @@ void GDAPI godot_packed_color_array_new(godot_packed_color_array *r_dest); void GDAPI godot_packed_color_array_new_copy(godot_packed_color_array *r_dest, const godot_packed_color_array *p_src); void GDAPI godot_packed_color_array_new_with_array(godot_packed_color_array *r_dest, const godot_array *p_a); +const godot_color GDAPI *godot_packed_color_array_ptr(const godot_packed_color_array *p_self); +godot_color GDAPI *godot_packed_color_array_ptrw(godot_packed_color_array *p_self); + void GDAPI godot_packed_color_array_append(godot_packed_color_array *p_self, const godot_color *p_data); void GDAPI godot_packed_color_array_append_array(godot_packed_color_array *p_self, const godot_packed_color_array *p_array); diff --git a/modules/gdnative/include/nativescript/godot_nativescript.h b/modules/gdnative/include/nativescript/godot_nativescript.h index d65b3f91f4..825033c99c 100644 --- a/modules/gdnative/include/nativescript/godot_nativescript.h +++ b/modules/gdnative/include/nativescript/godot_nativescript.h @@ -45,7 +45,7 @@ typedef enum { GODOT_METHOD_RPC_MODE_REMOTESYNC, GODOT_METHOD_RPC_MODE_MASTERSYNC, GODOT_METHOD_RPC_MODE_PUPPETSYNC, -} godot_method_rpc_mode; +} godot_nativescript_method_rpc_mode; typedef enum { GODOT_PROPERTY_HINT_NONE, ///< no hint provided. @@ -82,7 +82,7 @@ typedef enum { GODOT_PROPERTY_HINT_PROPERTY_OF_INSTANCE, ///< a property of an instance GODOT_PROPERTY_HINT_PROPERTY_OF_SCRIPT, ///< a property of a script & base GODOT_PROPERTY_HINT_MAX, -} godot_property_hint; +} godot_nativescript_property_hint; typedef enum { @@ -106,71 +106,80 @@ typedef enum { GODOT_PROPERTY_USAGE_DEFAULT = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK, GODOT_PROPERTY_USAGE_DEFAULT_INTL = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_EDITOR | GODOT_PROPERTY_USAGE_NETWORK | GODOT_PROPERTY_USAGE_INTERNATIONALIZED, GODOT_PROPERTY_USAGE_NOEDITOR = GODOT_PROPERTY_USAGE_STORAGE | GODOT_PROPERTY_USAGE_NETWORK, -} godot_property_usage_flags; +} godot_nativescript_property_usage_flags; typedef struct { - godot_method_rpc_mode rset_type; + godot_nativescript_method_rpc_mode rset_type; godot_int type; - godot_property_hint hint; + godot_nativescript_property_hint hint; godot_string hint_string; - godot_property_usage_flags usage; + godot_nativescript_property_usage_flags usage; godot_variant default_value; -} godot_property_attributes; +} godot_nativescript_property_attributes; typedef struct { // instance pointer, method_data - return user data GDCALLINGCONV void *(*create_func)(godot_object *, void *); void *method_data; GDCALLINGCONV void (*free_func)(void *); -} godot_instance_create_func; +} godot_nativescript_instance_create_func; typedef struct { // instance pointer, method data, user data GDCALLINGCONV void (*destroy_func)(godot_object *, void *, void *); void *method_data; GDCALLINGCONV void (*free_func)(void *); -} godot_instance_destroy_func; +} godot_nativescript_instance_destroy_func; -void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func); +void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func); -void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func); +void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func); typedef struct { - godot_method_rpc_mode rpc_type; -} godot_method_attributes; + godot_nativescript_method_rpc_mode rpc_type; +} godot_nativescript_method_attributes; + +typedef struct { + godot_string name; + + godot_variant_type type; + godot_nativescript_property_hint hint; + godot_string hint_string; +} godot_nativescript_method_argument; typedef struct { // instance pointer, method data, user data, num args, args - return result as varaint GDCALLINGCONV godot_variant (*method)(godot_object *, void *, void *, int, godot_variant **); void *method_data; GDCALLINGCONV void (*free_func)(void *); -} godot_instance_method; +} godot_nativescript_instance_method; -void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method); +void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_nativescript_method_attributes p_attr, godot_nativescript_instance_method p_method); +void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_nativescript_method_argument *p_args); typedef struct { // instance pointer, method data, user data, value GDCALLINGCONV void (*set_func)(godot_object *, void *, void *, godot_variant *); void *method_data; GDCALLINGCONV void (*free_func)(void *); -} godot_property_set_func; +} godot_nativescript_property_set_func; typedef struct { // instance pointer, method data, user data, value GDCALLINGCONV godot_variant (*get_func)(godot_object *, void *, void *); void *method_data; GDCALLINGCONV void (*free_func)(void *); -} godot_property_get_func; +} godot_nativescript_property_get_func; -void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func); +void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_nativescript_property_attributes *p_attr, godot_nativescript_property_set_func p_set_func, godot_nativescript_property_get_func p_get_func); typedef struct { godot_string name; godot_int type; - godot_property_hint hint; + godot_nativescript_property_hint hint; godot_string hint_string; - godot_property_usage_flags usage; + godot_nativescript_property_usage_flags usage; godot_variant default_value; } godot_nativescript_signal_argument; @@ -186,26 +195,6 @@ void GDAPI godot_nativescript_register_signal(void *p_gdnative_handle, const cha void GDAPI *godot_nativescript_get_userdata(godot_object *p_instance); -/* - * - * - * NativeScript 1.1 - * - * - */ - -// method registering with argument names - -typedef struct { - godot_string name; - - godot_variant_type type; - godot_property_hint hint; - godot_string hint_string; -} godot_method_arg; - -void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args); - // documentation void GDAPI godot_nativescript_set_class_documentation(void *p_gdnative_handle, const char *p_name, godot_string p_documentation); @@ -230,9 +219,9 @@ typedef struct { GDCALLINGCONV bool (*refcount_decremented_instance_binding)(void *, godot_object *); void *data; GDCALLINGCONV void (*free_func)(void *); -} godot_instance_binding_functions; +} godot_nativescript_instance_binding_functions; -int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions); +int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_nativescript_instance_binding_functions p_binding_functions); void GDAPI godot_nativescript_unregister_instance_binding_data_functions(int p_idx); void GDAPI *godot_nativescript_get_instance_binding_data(int p_idx, godot_object *p_object); diff --git a/modules/gdnative/nativescript/godot_nativescript.cpp b/modules/gdnative/nativescript/godot_nativescript.cpp index 1aea8ad160..e47548f3e9 100644 --- a/modules/gdnative/nativescript/godot_nativescript.cpp +++ b/modules/gdnative/nativescript/godot_nativescript.cpp @@ -51,7 +51,7 @@ extern "C" void _native_script_hook() { // Script API -void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) { +void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func) { String *s = (String *)p_gdnative_handle; Map<StringName, NativeScriptDesc> *classes = &NSL->library_classes[*s]; @@ -83,7 +83,7 @@ void GDAPI godot_nativescript_register_class(void *p_gdnative_handle, const char classes->insert(p_name, desc); } -void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_instance_create_func p_create_func, godot_instance_destroy_func p_destroy_func) { +void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const char *p_name, const char *p_base, godot_nativescript_instance_create_func p_create_func, godot_nativescript_instance_destroy_func p_destroy_func) { String *s = (String *)p_gdnative_handle; Map<StringName, NativeScriptDesc> *classes = &NSL->library_classes[*s]; @@ -116,7 +116,7 @@ void GDAPI godot_nativescript_register_tool_class(void *p_gdnative_handle, const classes->insert(p_name, desc); } -void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_method_attributes p_attr, godot_instance_method p_method) { +void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const char *p_name, const char *p_function_name, godot_nativescript_method_attributes p_attr, godot_nativescript_instance_method p_method) { String *s = (String *)p_gdnative_handle; Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name); @@ -135,7 +135,7 @@ void GDAPI godot_nativescript_register_method(void *p_gdnative_handle, const cha E->get().methods.insert(p_function_name, method); } -void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_property_attributes *p_attr, godot_property_set_func p_set_func, godot_property_get_func p_get_func) { +void GDAPI godot_nativescript_register_property(void *p_gdnative_handle, const char *p_name, const char *p_path, godot_nativescript_property_attributes *p_attr, godot_nativescript_property_set_func p_set_func, godot_nativescript_property_get_func p_get_func) { String *s = (String *)p_gdnative_handle; Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name); @@ -221,7 +221,7 @@ void GDAPI *godot_nativescript_get_userdata(godot_object *p_instance) { * */ -void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_method_arg *p_args) { +void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_handle, const char *p_name, const char *p_function_name, int p_num_args, const godot_nativescript_method_argument *p_args) { String *s = (String *)p_gdnative_handle; Map<StringName, NativeScriptDesc>::Element *E = NSL->library_classes[*s].find(p_name); @@ -235,7 +235,7 @@ void GDAPI godot_nativescript_set_method_argument_information(void *p_gdnative_h List<PropertyInfo> args; for (int i = 0; i < p_num_args; i++) { - godot_method_arg arg = p_args[i]; + godot_nativescript_method_argument arg = p_args[i]; String name = *(String *)&arg.name; String hint_string = *(String *)&arg.hint_string; @@ -329,7 +329,7 @@ const void GDAPI *godot_nativescript_get_type_tag(const godot_object *p_object) return nullptr; } -int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_instance_binding_functions p_binding_functions) { +int GDAPI godot_nativescript_register_instance_binding_data_functions(godot_nativescript_instance_binding_functions p_binding_functions) { return NativeScriptLanguage::get_singleton()->register_binding_functions(p_binding_functions); } diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp index f3dfd0b68e..06b9534fce 100644 --- a/modules/gdnative/nativescript/nativescript.cpp +++ b/modules/gdnative/nativescript/nativescript.cpp @@ -1498,7 +1498,7 @@ void NativeScriptLanguage::profiling_add_data(StringName p_signature, uint64_t p #endif } -int NativeScriptLanguage::register_binding_functions(godot_instance_binding_functions p_binding_functions) { +int NativeScriptLanguage::register_binding_functions(godot_nativescript_instance_binding_functions p_binding_functions) { // find index int idx = -1; diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h index 1aca142889..fabf4bb87e 100644 --- a/modules/gdnative/nativescript/nativescript.h +++ b/modules/gdnative/nativescript/nativescript.h @@ -48,7 +48,7 @@ struct NativeScriptDesc { struct Method { - godot_instance_method method; + godot_nativescript_instance_method method; MethodInfo info; int rpc_mode; uint16_t rpc_method_id; @@ -56,8 +56,8 @@ struct NativeScriptDesc { }; struct Property { - godot_property_set_func setter; - godot_property_get_func getter; + godot_nativescript_property_set_func setter; + godot_nativescript_property_get_func getter; PropertyInfo info; Variant default_value; int rset_mode; @@ -78,8 +78,8 @@ struct NativeScriptDesc { StringName base; StringName base_native_type; NativeScriptDesc *base_data; - godot_instance_create_func create_func; - godot_instance_destroy_func destroy_func; + godot_nativescript_instance_create_func create_func; + godot_nativescript_instance_destroy_func destroy_func; String documentation; @@ -88,8 +88,8 @@ struct NativeScriptDesc { bool is_tool; inline NativeScriptDesc() { - zeromem(&create_func, sizeof(godot_instance_create_func)); - zeromem(&destroy_func, sizeof(godot_instance_destroy_func)); + zeromem(&create_func, sizeof(godot_nativescript_instance_create_func)); + zeromem(&destroy_func, sizeof(godot_nativescript_instance_destroy_func)); } }; @@ -267,7 +267,7 @@ private: void call_libraries_cb(const StringName &name); - Vector<Pair<bool, godot_instance_binding_functions>> binding_functions; + Vector<Pair<bool, godot_nativescript_instance_binding_functions>> binding_functions; Set<Vector<void *> *> binding_instances; Map<int, HashMap<StringName, const void *>> global_type_tags; @@ -360,7 +360,7 @@ public: virtual int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max); virtual int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max); - int register_binding_functions(godot_instance_binding_functions p_binding_functions); + int register_binding_functions(godot_nativescript_instance_binding_functions p_binding_functions); void unregister_binding_functions(int p_idx); void *get_instance_binding_data(int p_idx, Object *p_object); diff --git a/modules/gdnavigation/nav_map.cpp b/modules/gdnavigation/nav_map.cpp index 4bea007104..7919e6a01f 100644 --- a/modules/gdnavigation/nav_map.cpp +++ b/modules/gdnavigation/nav_map.cpp @@ -155,7 +155,7 @@ Vector<Vector3> NavMap::get_path(Vector3 p_origin, Vector3 p_destination, bool p least_cost_poly->poly->points[(i + 1) % least_cost_poly->poly->points.size()].pos }; - const Vector3 new_entry = Geometry::get_closest_point_to_segment(least_cost_poly->entry, edge_line); + const Vector3 new_entry = Geometry3D::get_closest_point_to_segment(least_cost_poly->entry, edge_line); const float new_distance = least_cost_poly->entry.distance_to(new_entry) + least_cost_poly->traveled_distance; #else const float new_distance = least_cost_poly->poly->center.distance_to(edge.other_polygon->center) + least_cost_poly->traveled_distance; @@ -413,7 +413,7 @@ Vector3 NavMap::get_closest_point_to_segment(const Vector3 &p_from, const Vector for (size_t point_id = 0; point_id < p.points.size(); point_id += 1) { Vector3 a, b; - Geometry::get_closest_points_between_segments( + Geometry3D::get_closest_points_between_segments( p_from, p_to, p.points[point_id].pos, diff --git a/modules/gdnavigation/navigation_mesh_editor_plugin.cpp b/modules/gdnavigation/navigation_mesh_editor_plugin.cpp index 5fe1060aae..648f4f7cdd 100644 --- a/modules/gdnavigation/navigation_mesh_editor_plugin.cpp +++ b/modules/gdnavigation/navigation_mesh_editor_plugin.cpp @@ -95,13 +95,15 @@ void NavigationMeshEditor::_bind_methods() { NavigationMeshEditor::NavigationMeshEditor() { bake_hbox = memnew(HBoxContainer); - button_bake = memnew(ToolButton); + button_bake = memnew(Button); + button_bake->set_flat(true); bake_hbox->add_child(button_bake); button_bake->set_toggle_mode(true); button_bake->set_text(TTR("Bake NavMesh")); button_bake->connect("pressed", callable_mp(this, &NavigationMeshEditor::_bake_pressed)); - button_reset = memnew(ToolButton); + button_reset = memnew(Button); + button_reset->set_flat(true); bake_hbox->add_child(button_reset); // No button text, we only use a revert icon which is set when entering the tree. button_reset->set_tooltip(TTR("Clear the navigation mesh.")); diff --git a/modules/gdnavigation/navigation_mesh_editor_plugin.h b/modules/gdnavigation/navigation_mesh_editor_plugin.h index da3a981f8c..728f958eaa 100644 --- a/modules/gdnavigation/navigation_mesh_editor_plugin.h +++ b/modules/gdnavigation/navigation_mesh_editor_plugin.h @@ -46,8 +46,8 @@ class NavigationMeshEditor : public Control { AcceptDialog *err_dialog; HBoxContainer *bake_hbox; - ToolButton *button_bake; - ToolButton *button_reset; + Button *button_bake; + Button *button_reset; Label *bake_info; NavigationRegion3D *node; diff --git a/modules/gdnavigation/navigation_mesh_generator.cpp b/modules/gdnavigation/navigation_mesh_generator.cpp index 7dc08fbf29..5329600e39 100644 --- a/modules/gdnavigation/navigation_mesh_generator.cpp +++ b/modules/gdnavigation/navigation_mesh_generator.cpp @@ -218,7 +218,7 @@ void NavigationMeshGenerator::_parse_geometry(Transform p_accumulated_transform, ConvexPolygonShape3D *convex_polygon = Object::cast_to<ConvexPolygonShape3D>(*s); if (convex_polygon) { Vector<Vector3> varr = Variant(convex_polygon->get_points()); - Geometry::MeshData md; + Geometry3D::MeshData md; Error err = QuickHull::build(varr, md); @@ -226,7 +226,7 @@ void NavigationMeshGenerator::_parse_geometry(Transform p_accumulated_transform, PackedVector3Array faces; for (int j = 0; j < md.faces.size(); ++j) { - Geometry::MeshData::Face face = md.faces[j]; + Geometry3D::MeshData::Face face = md.faces[j]; for (int k = 2; k < face.indices.size(); ++k) { faces.push_back(md.vertices[face.indices[0]]); diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index bc095ae1f9..5bc9003c29 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -1422,6 +1422,10 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo codegen.opcodes.push_back(0); codegen.opcodes.write[else_addr] = codegen.opcodes.size(); + codegen.opcodes.push_back(GDScriptFunction::OPCODE_LINE); + codegen.opcodes.push_back(cf->body_else->line); + codegen.current_line = cf->body_else->line; + Error err2 = _parse_block(codegen, cf->body_else, p_stack_level, p_break_addr, p_continue_addr); if (err2) { return err2; diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 7433c4a5bc..3a5db3687b 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -2082,7 +2082,11 @@ static void _find_identifiers_in_base(const GDScriptCompletionContext &p_context if (!p_only_functions) { List<PropertyInfo> members; - tmp.get_property_list(&members); + if (p_base.value.get_type() != Variant::NIL) { + p_base.value.get_property_list(&members); + } else { + tmp.get_property_list(&members); + } for (List<PropertyInfo>::Element *E = members.front(); E; E = E->next()) { if (String(E->get().name).find("/") == -1) { @@ -3089,6 +3093,14 @@ static Error _lookup_symbol_from_base(const GDScriptParser::DataType &p_base, co return OK; } } + + for (int i = 0; i < base_type.class_type->subclasses.size(); i++) { + if (base_type.class_type->subclasses[i]->name == p_symbol) { + r_result.type = ScriptLanguage::LookupResult::RESULT_SCRIPT_LOCATION; + r_result.location = base_type.class_type->subclasses[i]->line; + return OK; + } + } } base_type = base_type.class_type->base_type; } diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp index fc0c4b3138..1aab71d161 100644 --- a/modules/gdscript/gdscript_function.cpp +++ b/modules/gdscript/gdscript_function.cpp @@ -363,6 +363,8 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a } } + static_ref = script; + String err_text; #ifdef DEBUG_ENABLED @@ -1430,11 +1432,14 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a #ifdef DEBUG_ENABLED GET_VARIANT_PTR(test, 1); - GET_VARIANT_PTR(message, 2); bool result = test->booleanize(); if (!result) { - const String &message_str = *message; + String message_str; + if (_code_ptr[ip + 2] != 0) { + GET_VARIANT_PTR(message, 2); + message_str = *message; + } if (message_str.empty()) { err_text = "Assertion failed."; } else { diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 0e498f6895..ca452bf008 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -2821,6 +2821,8 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { #ifdef DEBUG_ENABLED + pending_newline = -1; // reset for the new block + NewLineNode *nl = alloc_node<NewLineNode>(); nl->line = tokenizer->get_token_line(); @@ -3178,6 +3180,22 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) { IdentifierNode *id = alloc_node<IdentifierNode>(); id->name = tokenizer->get_token_identifier(); +#ifdef DEBUG_ENABLED + for (int j = 0; j < current_class->variables.size(); j++) { + if (current_class->variables[j].identifier == id->name) { + _add_warning(GDScriptWarning::SHADOWED_VARIABLE, id->line, id->name, itos(current_class->variables[j].line)); + } + } +#endif // DEBUG_ENABLED + + BlockNode *check_block = p_block; + while (check_block) { + if (check_block->variables.has(id->name)) { + _set_error("Variable \"" + String(id->name) + "\" already defined in the scope (at line " + itos(check_block->variables[id->name]->line) + ")."); + return; + } + check_block = check_block->parent_block; + } tokenizer->advance(); @@ -7336,8 +7354,8 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat } else if (!_is_type_compatible(arg_types[i - arg_diff], par_type, true)) { // Supertypes are acceptable for dynamic compliance if (!_is_type_compatible(par_type, arg_types[i - arg_diff])) { - _set_error("At \"" + callee_name + "()\" call, argument " + itos(i - arg_diff + 1) + ". Assigned type (" + - par_type.to_string() + ") doesn't match the function argument's type (" + + _set_error("At \"" + callee_name + "()\" call, argument " + itos(i - arg_diff + 1) + ". The passed argument's type (" + + par_type.to_string() + ") doesn't match the function's expected argument type (" + arg_types[i - arg_diff].to_string() + ").", p_call->line); return DataType(); diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp index f87e8687e5..330530be80 100644 --- a/modules/gdscript/language_server/gdscript_extend_parser.cpp +++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "gdscript_extend_parser.h" + #include "../gdscript.h" #include "core/io/json.h" #include "gdscript_language_protocol.h" diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp index 35bf4287b8..2a67d2ff4f 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.cpp +++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "gdscript_language_protocol.h" + #include "core/io/json.h" #include "core/os/copymem.h" #include "core/project_settings.h" @@ -161,7 +162,7 @@ void GDScriptLanguageProtocol::_bind_methods() { ClassDB::bind_method(D_METHOD("initialized", "params"), &GDScriptLanguageProtocol::initialized); ClassDB::bind_method(D_METHOD("on_client_connected"), &GDScriptLanguageProtocol::on_client_connected); ClassDB::bind_method(D_METHOD("on_client_disconnected"), &GDScriptLanguageProtocol::on_client_disconnected); - ClassDB::bind_method(D_METHOD("notify_client", "p_method", "p_params"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("notify_client", "method", "params"), &GDScriptLanguageProtocol::notify_client, DEFVAL(Variant()), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("is_smart_resolve_enabled"), &GDScriptLanguageProtocol::is_smart_resolve_enabled); ClassDB::bind_method(D_METHOD("get_text_document"), &GDScriptLanguageProtocol::get_text_document); ClassDB::bind_method(D_METHOD("get_workspace"), &GDScriptLanguageProtocol::get_workspace); @@ -187,8 +188,10 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) { Dictionary params; params["path"] = workspace->root; - Dictionary request = make_notification("gdscrip_client/changeWorkspace", params); + Dictionary request = make_notification("gdscript_client/changeWorkspace", params); + ERR_FAIL_COND_V_MSG(!clients.has(latest_client_id), ret.to_json(), + vformat("GDScriptLanguageProtocol: Can't initialize invalid peer '%d'.", latest_client_id)); Ref<LSPeer> peer = clients.get(latest_client_id); if (peer != nullptr) { String msg = JSON::print(request); @@ -268,8 +271,11 @@ void GDScriptLanguageProtocol::stop() { void GDScriptLanguageProtocol::notify_client(const String &p_method, const Variant &p_params, int p_client_id) { if (p_client_id == -1) { + ERR_FAIL_COND_MSG(latest_client_id == -1, + "GDScript LSP: Can't notify client as none was connected."); p_client_id = latest_client_id; } + ERR_FAIL_COND(!clients.has(p_client_id)); Ref<LSPeer> peer = clients.get(p_client_id); ERR_FAIL_COND(peer == nullptr); @@ -290,13 +296,10 @@ bool GDScriptLanguageProtocol::is_goto_native_symbols_enabled() const { GDScriptLanguageProtocol::GDScriptLanguageProtocol() { server.instance(); singleton = this; - _initialized = false; workspace.instance(); text_document.instance(); set_scope("textDocument", text_document.ptr()); set_scope("completionItem", text_document.ptr()); set_scope("workspace", workspace.ptr()); workspace->root = ProjectSettings::get_singleton()->get_resource_path(); - latest_client_id = 0; - next_client_id = 0; } diff --git a/modules/gdscript/language_server/gdscript_language_protocol.h b/modules/gdscript/language_server/gdscript_language_protocol.h index d929fd255d..cf5242e8c5 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.h +++ b/modules/gdscript/language_server/gdscript_language_protocol.h @@ -70,8 +70,8 @@ private: HashMap<int, Ref<LSPeer>> clients; Ref<TCP_Server> server; - int latest_client_id; - int next_client_id; + int latest_client_id = 0; + int next_client_id = 0; Ref<GDScriptTextDocument> text_document; Ref<GDScriptWorkspace> workspace; @@ -82,7 +82,7 @@ private: String process_message(const String &p_text); String format_output(const String &p_text); - bool _initialized; + bool _initialized = false; protected: static void _bind_methods(); diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp index d53914814f..3387d262f8 100644 --- a/modules/gdscript/language_server/gdscript_language_server.cpp +++ b/modules/gdscript/language_server/gdscript_language_server.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "gdscript_language_server.h" + #include "core/os/file_access.h" #include "core/os/os.h" #include "editor/editor_log.h" diff --git a/modules/gdscript/language_server/gdscript_text_document.cpp b/modules/gdscript/language_server/gdscript_text_document.cpp index 778cb4d254..c6fe3169dc 100644 --- a/modules/gdscript/language_server/gdscript_text_document.cpp +++ b/modules/gdscript/language_server/gdscript_text_document.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "gdscript_text_document.h" + #include "../gdscript.h" #include "core/os/os.h" #include "editor/editor_settings.h" diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp index 9285d88157..a203b9bfdb 100644 --- a/modules/gdscript/language_server/gdscript_workspace.cpp +++ b/modules/gdscript/language_server/gdscript_workspace.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "gdscript_workspace.h" + #include "../gdscript.h" #include "../gdscript_parser.h" #include "core/project_settings.h" @@ -41,12 +42,12 @@ void GDScriptWorkspace::_bind_methods() { ClassDB::bind_method(D_METHOD("symbol"), &GDScriptWorkspace::symbol); - ClassDB::bind_method(D_METHOD("parse_script", "p_path", "p_content"), &GDScriptWorkspace::parse_script); - ClassDB::bind_method(D_METHOD("parse_local_script", "p_path"), &GDScriptWorkspace::parse_local_script); - ClassDB::bind_method(D_METHOD("get_file_path", "p_uri"), &GDScriptWorkspace::get_file_path); - ClassDB::bind_method(D_METHOD("get_file_uri", "p_path"), &GDScriptWorkspace::get_file_uri); - ClassDB::bind_method(D_METHOD("publish_diagnostics", "p_path"), &GDScriptWorkspace::publish_diagnostics); - ClassDB::bind_method(D_METHOD("generate_script_api", "p_path"), &GDScriptWorkspace::generate_script_api); + ClassDB::bind_method(D_METHOD("parse_script", "path", "content"), &GDScriptWorkspace::parse_script); + ClassDB::bind_method(D_METHOD("parse_local_script", "path"), &GDScriptWorkspace::parse_local_script); + ClassDB::bind_method(D_METHOD("get_file_path", "uri"), &GDScriptWorkspace::get_file_path); + ClassDB::bind_method(D_METHOD("get_file_uri", "path"), &GDScriptWorkspace::get_file_uri); + ClassDB::bind_method(D_METHOD("publish_diagnostics", "path"), &GDScriptWorkspace::publish_diagnostics); + ClassDB::bind_method(D_METHOD("generate_script_api", "path"), &GDScriptWorkspace::generate_script_api); } void GDScriptWorkspace::remove_cache_parser(const String &p_path) { diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp index 2bae43510a..1b7ce98721 100644 --- a/modules/gridmap/grid_map_editor_plugin.cpp +++ b/modules/gridmap/grid_map_editor_plugin.cpp @@ -35,7 +35,6 @@ #include "editor/plugins/node_3d_editor_plugin.h" #include "scene/3d/camera_3d.h" -#include "core/math/geometry.h" #include "core/os/keyboard.h" #include "scene/main/window.h" @@ -1242,14 +1241,16 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) { search_box->connect("text_changed", callable_mp(this, &GridMapEditor::_text_changed)); search_box->connect("gui_input", callable_mp(this, &GridMapEditor::_sbox_input)); - mode_thumbnail = memnew(ToolButton); + mode_thumbnail = memnew(Button); + mode_thumbnail->set_flat(true); mode_thumbnail->set_toggle_mode(true); mode_thumbnail->set_pressed(true); mode_thumbnail->set_icon(p_editor->get_gui_base()->get_theme_icon("FileThumbnail", "EditorIcons")); hb->add_child(mode_thumbnail); mode_thumbnail->connect("pressed", callable_mp(this, &GridMapEditor::_set_display_mode), varray(DISPLAY_THUMBNAIL)); - mode_list = memnew(ToolButton); + mode_list = memnew(Button); + mode_list->set_flat(true); mode_list->set_toggle_mode(true); mode_list->set_pressed(false); mode_list->set_icon(p_editor->get_gui_base()->get_theme_icon("FileList", "EditorIcons")); diff --git a/modules/gridmap/grid_map_editor_plugin.h b/modules/gridmap/grid_map_editor_plugin.h index 19eea18965..0ae9b27833 100644 --- a/modules/gridmap/grid_map_editor_plugin.h +++ b/modules/gridmap/grid_map_editor_plugin.h @@ -74,8 +74,8 @@ class GridMapEditor : public VBoxContainer { MenuButton *options; SpinBox *floor; double accumulated_floor_delta; - ToolButton *mode_thumbnail; - ToolButton *mode_list; + Button *mode_thumbnail; + Button *mode_list; LineEdit *search_box; HSlider *size_slider; HBoxContainer *spatial_editor_hb; diff --git a/modules/lightmapper_rd/lightmapper_rd.cpp b/modules/lightmapper_rd/lightmapper_rd.cpp index b55c73e9bc..4de523baa0 100644 --- a/modules/lightmapper_rd/lightmapper_rd.cpp +++ b/modules/lightmapper_rd/lightmapper_rd.cpp @@ -29,7 +29,7 @@ /*************************************************************************/ #include "lightmapper_rd.h" -#include "core/math/geometry.h" +#include "core/math/geometry_2d.h" #include "core/project_settings.h" #include "lm_blendseams.glsl.gen.h" #include "lm_compute.glsl.gen.h" @@ -137,7 +137,7 @@ void LightmapperRD::_plot_triangle_into_triangle_index_list(int p_size, const Ve { Vector3 qsize = aabb.size * 0.5; //quarter size, for fast aabb test - if (!Geometry::triangle_box_overlap(aabb.position + qsize, qsize, p_points)) { + if (!Geometry3D::triangle_box_overlap(aabb.position + qsize, qsize, p_points)) { //does not fit in child, go on continue; } @@ -198,7 +198,7 @@ Lightmapper::BakeError LightmapperRD::_blit_meshes_into_atlas(int p_max_texture_ int slices = 0; while (source_sizes.size() > 0) { - Vector<Vector3i> offsets = Geometry::partial_pack_rects(source_sizes, atlas_size); + Vector<Vector3i> offsets = Geometry2D::partial_pack_rects(source_sizes, atlas_size); Vector<int> new_indices; Vector<Vector2i> new_sources; for (int i = 0; i < offsets.size(); i++) { @@ -488,9 +488,9 @@ void LightmapperRD::_create_acceleration_structures(RenderingDevice *rd, Size2i } //generate SDF for raytracing - Vector<uint32_t> euclidean_pos = Geometry::generate_edf(solid, Vector3i(grid_size, grid_size, grid_size), false); - Vector<uint32_t> euclidean_neg = Geometry::generate_edf(solid, Vector3i(grid_size, grid_size, grid_size), true); - Vector<int8_t> sdf8 = Geometry::generate_sdf8(euclidean_pos, euclidean_neg); + Vector<uint32_t> euclidean_pos = Geometry3D::generate_edf(solid, Vector3i(grid_size, grid_size, grid_size), false); + Vector<uint32_t> euclidean_neg = Geometry3D::generate_edf(solid, Vector3i(grid_size, grid_size, grid_size), true); + Vector<int8_t> sdf8 = Geometry3D::generate_sdf8(euclidean_pos, euclidean_neg); /*****************************/ /*** CREATE GPU STRUCTURES ***/ diff --git a/modules/mono/build_scripts/godot_tools_build.py b/modules/mono/build_scripts/godot_tools_build.py index 7391e8790d..3bbbf29d3b 100644 --- a/modules/mono/build_scripts/godot_tools_build.py +++ b/modules/mono/build_scripts/godot_tools_build.py @@ -15,7 +15,9 @@ def build_godot_tools(source, target, env): from .solution_builder import build_solution - build_solution(env, solution_path, build_config) + extra_msbuild_args = ["/p:GodotPlatform=" + env["platform"]] + + build_solution(env, solution_path, build_config, extra_msbuild_args) # No need to copy targets. The GodotTools csproj takes care of copying them. diff --git a/modules/mono/build_scripts/mono_configure.py b/modules/mono/build_scripts/mono_configure.py index 23f01b3cca..80e3b59325 100644 --- a/modules/mono/build_scripts/mono_configure.py +++ b/modules/mono/build_scripts/mono_configure.py @@ -191,17 +191,16 @@ def configure(env, env_mono): env.Append(LIBS=["psapi"]) env.Append(LIBS=["version"]) else: - mono_lib_name = find_name_in_dir_files( - mono_lib_path, mono_lib_names, prefixes=["", "lib"], extensions=lib_suffixes - ) + mono_lib_file = find_file_in_dir(mono_lib_path, mono_lib_names, extensions=lib_suffixes) - if not mono_lib_name: + if not mono_lib_file: raise RuntimeError("Could not find mono library in: " + mono_lib_path) if env.msvc: - env.Append(LINKFLAGS=mono_lib_name + ".lib") + env.Append(LINKFLAGS=mono_lib_file) else: - env.Append(LIBS=[mono_lib_name]) + mono_lib_file_path = os.path.join(mono_lib_path, mono_lib_file) + env.Append(LINKFLAGS=mono_lib_file_path) mono_bin_path = os.path.join(mono_root, "bin") diff --git a/modules/mono/config.py b/modules/mono/config.py index 7980a86cb3..cd659057ef 100644 --- a/modules/mono/config.py +++ b/modules/mono/config.py @@ -57,7 +57,6 @@ def configure(env): def get_doc_classes(): return [ - "@C#", "CSharpScript", "GodotSharp", ] diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 958d72adb1..ae25bd3544 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -2688,7 +2688,9 @@ bool CSharpScript::_get_member_export(IMonoClassMember *p_member, bool p_inspect return true; } +#ifdef TOOLS_ENABLED MonoObject *attr = p_member->get_attribute(CACHED_CLASS(ExportAttribute)); +#endif PropertyHint hint = PROPERTY_HINT_NONE; String hint_string; diff --git a/modules/mono/doc_classes/@C#.xml b/modules/mono/doc_classes/@C#.xml deleted file mode 100644 index 83a7fbf02c..0000000000 --- a/modules/mono/doc_classes/@C#.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="@C#" version="4.0"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/modules/mono/doc_classes/CSharpScript.xml b/modules/mono/doc_classes/CSharpScript.xml index 1eb3404f9e..e1e9d1381f 100644 --- a/modules/mono/doc_classes/CSharpScript.xml +++ b/modules/mono/doc_classes/CSharpScript.xml @@ -1,16 +1,21 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="CSharpScript" inherits="Script" version="4.0"> <brief_description> + A script implemented in the C# programming language (Mono-enabled builds only). </brief_description> <description> + This class represents a C# script. It is the C# equivalent of the [GDScript] class and is only available in Mono-enabled Godot builds. + See also [GodotSharp]. </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/getting_started/scripting/c_sharp/index.html</link> </tutorials> <methods> <method name="new" qualifiers="vararg"> <return type="Variant"> </return> <description> + Returns a new instance of the script. </description> </method> </methods> diff --git a/modules/mono/doc_classes/GodotSharp.xml b/modules/mono/doc_classes/GodotSharp.xml index 19a08d2036..417f8ac704 100644 --- a/modules/mono/doc_classes/GodotSharp.xml +++ b/modules/mono/doc_classes/GodotSharp.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="GodotSharp" inherits="Object" version="4.0"> <brief_description> + Bridge between Godot and the Mono runtime (Mono-enabled builds only). </brief_description> <description> + This class is a bridge between Godot and the Mono runtime. It exposes several low-level operations and is only available in Mono-enabled Godot builds. + See also [CSharpScript]. </description> <tutorials> </tutorials> @@ -11,26 +14,30 @@ <return type="void"> </return> <description> - Attaches the current thread to the mono runtime. + Attaches the current thread to the Mono runtime. </description> </method> <method name="detach_thread"> <return type="void"> </return> <description> - Detaches the current thread from the mono runtime. + Detaches the current thread from the Mono runtime. </description> </method> <method name="get_domain_id"> <return type="int"> </return> <description> + Returns the current MonoDomain ID. + [b]Note:[/b] The Mono runtime must be initialized for this method to work (use [method is_runtime_initialized] to check). If the Mono runtime isn't initialized at the time this method is called, the engine will crash. </description> </method> <method name="get_scripts_domain_id"> <return type="int"> </return> <description> + Returns the scripts MonoDomain's ID. This will be the same MonoDomain ID as [method get_domain_id], unless the scripts domain isn't loaded. + [b]Note:[/b] The Mono runtime must be initialized for this method to work (use [method is_runtime_initialized] to check). If the Mono runtime isn't initialized at the time this method is called, the engine will crash. </description> </method> <method name="is_domain_finalizing_for_unload"> @@ -39,26 +46,28 @@ <argument index="0" name="domain_id" type="int"> </argument> <description> - Returns whether the domain is being finalized. + Returns [code]true[/code] if the domain is being finalized, [code]false[/code] otherwise. </description> </method> <method name="is_runtime_initialized"> <return type="bool"> </return> <description> + Returns [code]true[/code] if the Mono runtime is initialized, [code]false[/code] otherwise. </description> </method> <method name="is_runtime_shutting_down"> <return type="bool"> </return> <description> + Returns [code]true[/code] if the Mono runtime is shutting down, [code]false[/code] otherwise. </description> </method> <method name="is_scripts_domain_loaded"> <return type="bool"> </return> <description> - Returns whether the scripts domain is loaded. + Returns [code]true[/code] if the scripts domain is loaded, [code]false[/code] otherwise. </description> </method> </methods> diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs index d069651dd3..572c541412 100644 --- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs +++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Client.cs @@ -19,9 +19,12 @@ namespace GodotTools.IdeMessaging private readonly string identity; private string MetaFilePath { get; } + private DateTime? metaFileModifiedTime; private GodotIdeMetadata godotIdeMetadata; private readonly FileSystemWatcher fsWatcher; + public string GodotEditorExecutablePath => godotIdeMetadata.EditorExecutablePath; + private readonly IMessageHandler messageHandler; private Peer peer; @@ -123,7 +126,7 @@ namespace GodotTools.IdeMessaging MetaFilePath = Path.Combine(projectMetadataDir, GodotIdeMetadata.DefaultFileName); // FileSystemWatcher requires an existing directory - if (!File.Exists(projectMetadataDir)) + if (!Directory.Exists(projectMetadataDir)) Directory.CreateDirectory(projectMetadataDir); fsWatcher = new FileSystemWatcher(projectMetadataDir, GodotIdeMetadata.DefaultFileName); @@ -142,6 +145,13 @@ namespace GodotTools.IdeMessaging if (!File.Exists(MetaFilePath)) return; + var lastWriteTime = File.GetLastWriteTime(MetaFilePath); + + if (lastWriteTime == metaFileModifiedTime) + return; + + metaFileModifiedTime = lastWriteTime; + var metadata = ReadMetadataFile(); if (metadata != null && metadata != godotIdeMetadata) @@ -173,6 +183,13 @@ namespace GodotTools.IdeMessaging if (IsConnected || !File.Exists(MetaFilePath)) return; + var lastWriteTime = File.GetLastWriteTime(MetaFilePath); + + if (lastWriteTime == metaFileModifiedTime) + return; + + metaFileModifiedTime = lastWriteTime; + var metadata = ReadMetadataFile(); if (metadata != null) @@ -185,7 +202,8 @@ namespace GodotTools.IdeMessaging private GodotIdeMetadata? ReadMetadataFile() { - using (var reader = File.OpenText(MetaFilePath)) + using (var fileStream = new FileStream(MetaFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + using (var reader = new StreamReader(fileStream)) { string portStr = reader.ReadLine(); @@ -272,6 +290,7 @@ namespace GodotTools.IdeMessaging // ReSharper disable once UnusedMember.Global public async void Start() { + fsWatcher.Created += OnMetaFileChanged; fsWatcher.Changed += OnMetaFileChanged; fsWatcher.Deleted += OnMetaFileDeleted; fsWatcher.EnableRaisingEvents = true; diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj index 67815959a6..dad6b9ae7a 100644 --- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj +++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/GodotTools.IdeMessaging.csproj @@ -4,7 +4,7 @@ <TargetFramework>netstandard2.0</TargetFramework> <LangVersion>7.2</LangVersion> <PackageId>GodotTools.IdeMessaging</PackageId> - <Version>1.1.0</Version> + <Version>1.1.1</Version> <AssemblyVersion>$(Version)</AssemblyVersion> <Authors>Godot Engine contributors</Authors> <Company /> diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs index a4e86d6177..10d7e1898e 100644 --- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs +++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Peer.cs @@ -105,49 +105,45 @@ namespace GodotTools.IdeMessaging try { - try + if (msg.Kind == MessageKind.Request) { - if (msg.Kind == MessageKind.Request) - { - var responseContent = await messageHandler.HandleRequest(this, msg.Id, msg.Content, Logger); - await WriteMessage(new Message(MessageKind.Response, msg.Id, responseContent)); - } - else if (msg.Kind == MessageKind.Response) - { - ResponseAwaiter responseAwaiter; + var responseContent = await messageHandler.HandleRequest(this, msg.Id, msg.Content, Logger); + await WriteMessage(new Message(MessageKind.Response, msg.Id, responseContent)); + } + else if (msg.Kind == MessageKind.Response) + { + ResponseAwaiter responseAwaiter; - using (await requestsSem.UseAsync()) + using (await requestsSem.UseAsync()) + { + if (!requestAwaiterQueues.TryGetValue(msg.Id, out var queue) || queue.Count <= 0) { - if (!requestAwaiterQueues.TryGetValue(msg.Id, out var queue) || queue.Count <= 0) - { - Logger.LogError($"Received unexpected response: {msg.Id}"); - return; - } - - responseAwaiter = queue.Dequeue(); + Logger.LogError($"Received unexpected response: {msg.Id}"); + return; } - responseAwaiter.SetResult(msg.Content); - } - else - { - throw new IndexOutOfRangeException($"Invalid message kind {msg.Kind}"); + responseAwaiter = queue.Dequeue(); } + + responseAwaiter.SetResult(msg.Content); } - catch (Exception e) + else { - Logger.LogError($"Message handler for '{msg}' failed with exception", e); + throw new IndexOutOfRangeException($"Invalid message kind {msg.Kind}"); } } catch (Exception e) { - Logger.LogError($"Exception thrown from message handler. Message: {msg}", e); + Logger.LogError($"Message handler for '{msg}' failed with exception", e); } } } catch (Exception e) { - Logger.LogError("Unhandled exception in the peer loop", e); + if (!IsDisposed || !(e is SocketException || e.InnerException is SocketException)) + { + Logger.LogError("Unhandled exception in the peer loop", e); + } } } diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs index 1dd4f852e5..e93db9377b 100644 --- a/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs +++ b/modules/mono/editor/GodotTools/GodotTools.IdeMessaging/Requests/Requests.cs @@ -67,6 +67,19 @@ namespace GodotTools.IdeMessaging.Requests { } + public sealed class StopPlayRequest : Request + { + public new const string Id = "StopPlay"; + + public StopPlayRequest() : base(Id) + { + } + } + + public sealed class StopPlayResponse : Response + { + } + public sealed class DebugPlayRequest : Request { public string DebuggerHost { get; set; } diff --git a/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj new file mode 100644 index 0000000000..5b3ed0b1b7 --- /dev/null +++ b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj @@ -0,0 +1,12 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <ProjectGuid>{EAFFF236-FA96-4A4D-BD23-0E51EF988277}</ProjectGuid> + <OutputType>Exe</OutputType> + <TargetFramework>net472</TargetFramework> + <LangVersion>7.2</LangVersion> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" /> + <PackageReference Include="EnvDTE" Version="8.0.2" /> + </ItemGroup> +</Project> diff --git a/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs new file mode 100644 index 0000000000..affb2a47e7 --- /dev/null +++ b/modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/Program.cs @@ -0,0 +1,270 @@ +using System; +using System.IO; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.ComTypes; +using System.Text.RegularExpressions; +using EnvDTE; + +namespace GodotTools.OpenVisualStudio +{ + internal static class Program + { + [DllImport("ole32.dll")] + private static extern int GetRunningObjectTable(int reserved, out IRunningObjectTable pprot); + + [DllImport("ole32.dll")] + private static extern void CreateBindCtx(int reserved, out IBindCtx ppbc); + + [DllImport("user32.dll")] + private static extern bool SetForegroundWindow(IntPtr hWnd); + + private static void ShowHelp() + { + Console.WriteLine("Opens the file(s) in a Visual Studio instance that is editing the specified solution."); + Console.WriteLine("If an existing instance for the solution is not found, a new one is created."); + Console.WriteLine(); + Console.WriteLine("Usage:"); + Console.WriteLine(@" GodotTools.OpenVisualStudio.exe solution [file[;line[;col]]...]"); + Console.WriteLine(); + Console.WriteLine("Lines and columns begin at one. Zero or lower will result in an error."); + Console.WriteLine("If a line is specified but a column is not, the line is selected in the text editor."); + } + + // STAThread needed, otherwise CoRegisterMessageFilter may return CO_E_NOT_SUPPORTED. + [STAThread] + private static int Main(string[] args) + { + if (args.Length == 0 || args[0] == "--help" || args[0] == "-h") + { + ShowHelp(); + return 0; + } + + string solutionFile = NormalizePath(args[0]); + + var dte = FindInstanceEditingSolution(solutionFile); + + if (dte == null) + { + // Open a new instance + + var visualStudioDteType = Type.GetTypeFromProgID("VisualStudio.DTE.16.0", throwOnError: true); + dte = (DTE)Activator.CreateInstance(visualStudioDteType); + + dte.UserControl = true; + + try + { + dte.Solution.Open(solutionFile); + } + catch (ArgumentException) + { + Console.Error.WriteLine("Solution.Open: Invalid path or file not found"); + return 1; + } + + dte.MainWindow.Visible = true; + } + + MessageFilter.Register(); + + try + { + // Open files + + for (int i = 1; i < args.Length; i++) + { + // Both the line number and the column begin at one + + string[] fileArgumentParts = args[i].Split(';'); + + string filePath = NormalizePath(fileArgumentParts[0]); + + try + { + dte.ItemOperations.OpenFile(filePath); + } + catch (ArgumentException) + { + Console.Error.WriteLine("ItemOperations.OpenFile: Invalid path or file not found"); + return 1; + } + + if (fileArgumentParts.Length > 1) + { + if (int.TryParse(fileArgumentParts[1], out int line)) + { + var textSelection = (TextSelection)dte.ActiveDocument.Selection; + + if (fileArgumentParts.Length > 2) + { + if (int.TryParse(fileArgumentParts[2], out int column)) + { + textSelection.MoveToLineAndOffset(line, column); + } + else + { + Console.Error.WriteLine("The column part of the argument must be a valid integer"); + return 1; + } + } + else + { + textSelection.GotoLine(line, Select: true); + } + } + else + { + Console.Error.WriteLine("The line part of the argument must be a valid integer"); + return 1; + } + } + } + } + finally + { + var mainWindow = dte.MainWindow; + mainWindow.Activate(); + SetForegroundWindow(new IntPtr(mainWindow.HWnd)); + + MessageFilter.Revoke(); + } + + return 0; + } + + private static DTE FindInstanceEditingSolution(string solutionPath) + { + if (GetRunningObjectTable(0, out IRunningObjectTable pprot) != 0) + return null; + + try + { + pprot.EnumRunning(out IEnumMoniker ppenumMoniker); + ppenumMoniker.Reset(); + + var moniker = new IMoniker[1]; + + while (ppenumMoniker.Next(1, moniker, IntPtr.Zero) == 0) + { + string ppszDisplayName; + + CreateBindCtx(0, out IBindCtx ppbc); + + try + { + moniker[0].GetDisplayName(ppbc, null, out ppszDisplayName); + } + finally + { + Marshal.ReleaseComObject(ppbc); + } + + if (ppszDisplayName == null) + continue; + + // The digits after the colon are the process ID + if (!Regex.IsMatch(ppszDisplayName, "!VisualStudio.DTE.16.0:[0-9]")) + continue; + + if (pprot.GetObject(moniker[0], out object ppunkObject) == 0) + { + if (ppunkObject is DTE dte && dte.Solution.FullName.Length > 0) + { + if (NormalizePath(dte.Solution.FullName) == solutionPath) + return dte; + } + } + } + } + finally + { + Marshal.ReleaseComObject(pprot); + } + + return null; + } + + static string NormalizePath(string path) + { + return new Uri(Path.GetFullPath(path)).LocalPath + .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + .ToUpperInvariant(); + } + + #region MessageFilter. See: http: //msdn.microsoft.com/en-us/library/ms228772.aspx + + private class MessageFilter : IOleMessageFilter + { + // Class containing the IOleMessageFilter + // thread error-handling functions + + private static IOleMessageFilter _oldFilter; + + // Start the filter + public static void Register() + { + IOleMessageFilter newFilter = new MessageFilter(); + int ret = CoRegisterMessageFilter(newFilter, out _oldFilter); + if (ret != 0) + Console.Error.WriteLine($"CoRegisterMessageFilter failed with error code: {ret}"); + } + + // Done with the filter, close it + public static void Revoke() + { + int ret = CoRegisterMessageFilter(_oldFilter, out _); + if (ret != 0) + Console.Error.WriteLine($"CoRegisterMessageFilter failed with error code: {ret}"); + } + + // + // IOleMessageFilter functions + // Handle incoming thread requests + int IOleMessageFilter.HandleInComingCall(int dwCallType, IntPtr hTaskCaller, int dwTickCount, IntPtr lpInterfaceInfo) + { + // Return the flag SERVERCALL_ISHANDLED + return 0; + } + + // Thread call was rejected, so try again. + int IOleMessageFilter.RetryRejectedCall(IntPtr hTaskCallee, int dwTickCount, int dwRejectType) + { + if (dwRejectType == 2) + // flag = SERVERCALL_RETRYLATER + { + // Retry the thread call immediately if return >= 0 & < 100 + return 99; + } + + // Too busy; cancel call + return -1; + } + + int IOleMessageFilter.MessagePending(IntPtr hTaskCallee, int dwTickCount, int dwPendingType) + { + // Return the flag PENDINGMSG_WAITDEFPROCESS + return 2; + } + + // Implement the IOleMessageFilter interface + [DllImport("ole32.dll")] + private static extern int CoRegisterMessageFilter(IOleMessageFilter newFilter, out IOleMessageFilter oldFilter); + } + + [ComImport(), Guid("00000016-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + private interface IOleMessageFilter + { + [PreserveSig] + int HandleInComingCall(int dwCallType, IntPtr hTaskCaller, int dwTickCount, IntPtr lpInterfaceInfo); + + [PreserveSig] + int RetryRejectedCall(IntPtr hTaskCallee, int dwTickCount, int dwRejectType); + + [PreserveSig] + int MessagePending(IntPtr hTaskCallee, int dwTickCount, int dwPendingType); + } + + #endregion + } +} diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs index fb2beb6995..679d5bb444 100644 --- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs +++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs @@ -12,6 +12,11 @@ namespace GodotTools.ProjectEditor private const string CoreApiProjectName = "GodotSharp"; private const string EditorApiProjectName = "GodotSharpEditor"; + public const string CSharpProjectTypeGuid = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"; + public const string GodotProjectTypeGuid = "{8F3E2DF0-C35C-4265-82FC-BEA011F4A7ED}"; + + public static readonly string GodotDefaultProjectTypeGuids = $"{GodotProjectTypeGuid};{CSharpProjectTypeGuid}"; + public static string GenGameProject(string dir, string name, IEnumerable<string> compileItems) { string path = Path.Combine(dir, name + ".csproj"); @@ -19,6 +24,7 @@ namespace GodotTools.ProjectEditor ProjectPropertyGroupElement mainGroup; var root = CreateLibraryProject(name, "Debug", out mainGroup); + mainGroup.SetProperty("ProjectTypeGuids", GodotDefaultProjectTypeGuids); mainGroup.SetProperty("OutputPath", Path.Combine(".mono", "temp", "bin", "$(Configuration)")); mainGroup.SetProperty("BaseIntermediateOutputPath", Path.Combine(".mono", "temp", "obj")); mainGroup.SetProperty("IntermediateOutputPath", Path.Combine("$(BaseIntermediateOutputPath)", "$(Configuration)")); diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs index 069a1edaa3..8774b4ee31 100644 --- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs +++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectUtils.cs @@ -165,6 +165,21 @@ namespace GodotTools.ProjectEditor return result.ToArray(); } + public static void EnsureHasProjectTypeGuids(MSBuildProject project) + { + var root = project.Root; + + bool found = root.PropertyGroups.Any(pg => + string.IsNullOrEmpty(pg.Condition) && pg.Properties.Any(p => p.Name == "ProjectTypeGuids")); + + if (found) + return; + + root.AddProperty("ProjectTypeGuids", ProjectGenerator.GodotDefaultProjectTypeGuids); + + project.HasUnsavedChanges = true; + } + /// Simple function to make sure the Api assembly references are configured correctly public static void FixApiHintPath(MSBuildProject project) { diff --git a/modules/mono/editor/GodotTools/GodotTools.sln b/modules/mono/editor/GodotTools/GodotTools.sln index f6147eb5bb..ba5379e562 100644 --- a/modules/mono/editor/GodotTools/GodotTools.sln +++ b/modules/mono/editor/GodotTools/GodotTools.sln @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.BuildLogger", "G EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.IdeMessaging", "GodotTools.IdeMessaging\GodotTools.IdeMessaging.csproj", "{92600954-25F0-4291-8E11-1FEE9FC4BE20}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GodotTools.OpenVisualStudio", "GodotTools.OpenVisualStudio\GodotTools.OpenVisualStudio.csproj", "{EAFFF236-FA96-4A4D-BD23-0E51EF988277}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -37,5 +39,9 @@ Global {92600954-25F0-4291-8E11-1FEE9FC4BE20}.Debug|Any CPU.Build.0 = Debug|Any CPU {92600954-25F0-4291-8E11-1FEE9FC4BE20}.Release|Any CPU.ActiveCfg = Release|Any CPU {92600954-25F0-4291-8E11-1FEE9FC4BE20}.Release|Any CPU.Build.0 = Release|Any CPU + {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAFFF236-FA96-4A4D-BD23-0E51EF988277}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/modules/mono/editor/GodotTools/GodotTools/BottomPanel.cs b/modules/mono/editor/GodotTools/GodotTools/BottomPanel.cs index 3cf495f025..3de3d8d318 100644 --- a/modules/mono/editor/GodotTools/GodotTools/BottomPanel.cs +++ b/modules/mono/editor/GodotTools/GodotTools/BottomPanel.cs @@ -20,8 +20,8 @@ namespace GodotTools private ItemList buildTabsList; private TabContainer buildTabs; - private ToolButton warningsBtn; - private ToolButton errorsBtn; + private Button warningsBtn; + private Button errorsBtn; private Button viewLogBtn; private void _UpdateBuildTabsList() @@ -285,7 +285,7 @@ namespace GodotTools toolBarHBox.AddSpacer(begin: false); - warningsBtn = new ToolButton + warningsBtn = new Button { Text = "Warnings".TTR(), ToggleMode = true, @@ -296,7 +296,7 @@ namespace GodotTools warningsBtn.Toggled += _WarningsToggled; toolBarHBox.AddChild(warningsBtn); - errorsBtn = new ToolButton + errorsBtn = new Button { Text = "Errors".TTR(), ToggleMode = true, diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs index eb7696685f..f330f9ed2c 100644 --- a/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs +++ b/modules/mono/editor/GodotTools/GodotTools/GodotSharpEditor.cs @@ -6,6 +6,7 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; +using System.Linq; using GodotTools.Ides; using GodotTools.Ides.Rider; using GodotTools.Internals; @@ -29,7 +30,7 @@ namespace GodotTools private AcceptDialog aboutDialog; private CheckBox aboutDialogCheckBox; - private ToolButton bottomPanelBtn; + private Button bottomPanelBtn; public GodotIdeManager GodotIdeManager { get; private set; } @@ -238,7 +239,31 @@ namespace GodotTools // Not an error. Tells the caller to fallback to the global external editor settings or the built-in editor. return Error.Unavailable; case ExternalEditorId.VisualStudio: - throw new NotSupportedException(); + { + string scriptPath = ProjectSettings.GlobalizePath(script.ResourcePath); + + var args = new List<string> + { + GodotSharpDirs.ProjectSlnPath, + line >= 0 ? $"{scriptPath};{line + 1};{col + 1}" : scriptPath + }; + + string command = Path.Combine(GodotSharpDirs.DataEditorToolsDir, "GodotTools.OpenVisualStudio.exe"); + + try + { + if (Godot.OS.IsStdoutVerbose()) + Console.WriteLine($"Running: \"{command}\" {string.Join(" ", args.Select(a => $"\"{a}\""))}"); + + OS.RunProcess(command, args); + } + catch (Exception e) + { + GD.PushError($"Error when trying to run code editor: VisualStudio. Exception message: '{e.Message}'"); + } + + break; + } case ExternalEditorId.VisualStudioForMac: goto case ExternalEditorId.MonoDevelop; case ExternalEditorId.Rider: @@ -421,7 +446,7 @@ namespace GodotTools aboutLabel.Text = "C# support in Godot Engine is in late alpha stage and, while already usable, " + "it is not meant for use in production.\n\n" + - "Projects can be exported to Linux, macOS, Windows and Android, but not yet to iOS, HTML5 or UWP. " + + "Projects can be exported to Linux, macOS, Windows, Android, iOS and HTML5, but not yet to UWP. " + "Bugs and usability issues will be addressed gradually over future releases, " + "potentially including compatibility breaking changes as new features are implemented for a better overall C# experience.\n\n" + "If you experience issues with this Mono build, please report them on Godot's issue tracker with details about your system, MSBuild version, IDE, etc.:\n\n" + @@ -458,6 +483,9 @@ namespace GodotTools // Apply the other fixes only after configurations have been migrated + // Make sure the existing project has the ProjectTypeGuids property (for VisualStudio) + ProjectUtils.EnsureHasProjectTypeGuids(msbuildProject); + // Make sure the existing project has Api assembly references configured correctly ProjectUtils.FixApiHintPath(msbuildProject); @@ -485,7 +513,7 @@ namespace GodotTools menuPopup.IdPressed += _MenuOptionPressed; - var buildButton = new ToolButton + var buildButton = new Button { Text = "Build", HintTooltip = "Build solution", @@ -501,7 +529,8 @@ namespace GodotTools if (OS.IsWindows) { - settingsHintStr += $",MonoDevelop:{(int)ExternalEditorId.MonoDevelop}" + + settingsHintStr += $",Visual Studio:{(int)ExternalEditorId.VisualStudio}" + + $",MonoDevelop:{(int)ExternalEditorId.MonoDevelop}" + $",Visual Studio Code:{(int)ExternalEditorId.VsCode}" + $",JetBrains Rider:{(int)ExternalEditorId.Rider}"; } diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj index ba527ca3b5..3f14629b11 100644 --- a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj +++ b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj @@ -33,5 +33,7 @@ <ProjectReference Include="..\GodotTools.IdeMessaging\GodotTools.IdeMessaging.csproj" /> <ProjectReference Include="..\GodotTools.ProjectEditor\GodotTools.ProjectEditor.csproj" /> <ProjectReference Include="..\GodotTools.Core\GodotTools.Core.csproj" /> + <!-- Include it if this is an SCons build targeting Windows, or if it's not an SCons build but we're on Windows --> + <ProjectReference Include="..\GodotTools.OpenVisualStudio\GodotTools.OpenVisualStudio.csproj" Condition=" '$(GodotPlatform)' == 'windows' Or ( '$(GodotPlatform)' == '' And '$(OS)' == 'Windows_NT' ) " /> </ItemGroup> </Project> diff --git a/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs b/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs index 32f264d100..98e8d13be0 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Ides/MessagingServer.cs @@ -307,6 +307,11 @@ namespace GodotTools.Ides var request = JsonConvert.DeserializeObject<DebugPlayRequest>(content.Body); return await HandleDebugPlay(request); }, + [StopPlayRequest.Id] = async (peer, content) => + { + var request = JsonConvert.DeserializeObject<StopPlayRequest>(content.Body); + return await HandleStopPlay(request); + }, [ReloadScriptsRequest.Id] = async (peer, content) => { _ = JsonConvert.DeserializeObject<ReloadScriptsRequest>(content.Body); @@ -343,6 +348,12 @@ namespace GodotTools.Ides return Task.FromResult<Response>(new DebugPlayResponse()); } + private static Task<Response> HandleStopPlay(StopPlayRequest request) + { + DispatchToMainThread(Internal.EditorRunStop); + return Task.FromResult<Response>(new StopPlayResponse()); + } + private static Task<Response> HandleReloadScripts() { DispatchToMainThread(Internal.ScriptEditorDebugger_ReloadScripts); diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/SceneTreeExtensions.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/SceneTreeExtensions.cs new file mode 100644 index 0000000000..20b11a48dd --- /dev/null +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/SceneTreeExtensions.cs @@ -0,0 +1,17 @@ +using System; +using System.Runtime.CompilerServices; +using Godot.Collections; + +namespace Godot +{ + public partial class SceneTree + { + public Array<T> GetNodesInGroup<T>(StringName group) where T : class + { + return new Array<T>(godot_icall_SceneTree_get_nodes_in_group_Generic(Object.GetPtr(this), StringName.GetPtr(group), typeof(T))); + } + + [MethodImpl(MethodImplOptions.InternalCall)] + internal extern static IntPtr godot_icall_SceneTree_get_nodes_in_group_Generic(IntPtr obj, IntPtr group, Type elemType); + } +} diff --git a/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj b/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj index b5ac124c9a..06ec2483c8 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj +++ b/modules/mono/glue/GodotSharp/GodotSharp/GodotSharp.csproj @@ -53,6 +53,7 @@ <Compile Include="Core\Extensions\NodeExtensions.cs" /> <Compile Include="Core\Extensions\ObjectExtensions.cs" /> <Compile Include="Core\Extensions\ResourceLoaderExtensions.cs" /> + <Compile Include="Core\Extensions\SceneTreeExtensions.cs" /> <Compile Include="Core\GD.cs" /> <Compile Include="Core\GodotSynchronizationContext.cs" /> <Compile Include="Core\GodotTaskScheduler.cs" /> diff --git a/modules/mono/glue/glue_header.h b/modules/mono/glue/glue_header.h index ee99a300b9..f6999d01fb 100644 --- a/modules/mono/glue/glue_header.h +++ b/modules/mono/glue/glue_header.h @@ -35,6 +35,7 @@ #include "gd_glue.h" #include "nodepath_glue.h" #include "rid_glue.h" +#include "scene_tree_glue.h" #include "string_glue.h" #include "string_name_glue.h" @@ -50,6 +51,7 @@ void godot_register_glue_header_icalls() { godot_register_object_icalls(); godot_register_rid_icalls(); godot_register_string_icalls(); + godot_register_scene_tree_icalls(); } // Used by the generated glue diff --git a/modules/mono/glue/scene_tree_glue.cpp b/modules/mono/glue/scene_tree_glue.cpp new file mode 100644 index 0000000000..bea9544b08 --- /dev/null +++ b/modules/mono/glue/scene_tree_glue.cpp @@ -0,0 +1,82 @@ +/*************************************************************************/ +/* scene_tree_glue.cpp */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 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 "scene_tree_glue.h" + +#ifdef MONO_GLUE_ENABLED + +#include "core/class_db.h" +#include "modules/mono/csharp_script.h" +#include "modules/mono/mono_gd/gd_mono_utils.h" +#include "scene/main/node.h" + +Array *godot_icall_SceneTree_get_nodes_in_group_Generic(SceneTree *ptr, StringName *group, MonoReflectionType *refltype) { + List<Node *> nodes; + Array ret; + + // Retrieve all the nodes in the group + ptr->get_nodes_in_group(*group, &nodes); + + // No need to bother if the group is empty + if (!nodes.empty()) { + MonoType *elem_type = mono_reflection_type_get_type(refltype); + MonoClass *mono_class = mono_class_from_mono_type(elem_type); + GDMonoClass *klass = GDMono::get_singleton()->get_class(mono_class); + + if (klass == GDMonoUtils::get_class_native_base(klass)) { + // If we're trying to get native objects, just check the inheritance list + StringName native_class_name = GDMonoUtils::get_native_godot_class_name(klass); + for (int i = 0; i < nodes.size(); ++i) { + if (ClassDB::is_parent_class(nodes[i]->get_class(), native_class_name)) + ret.push_back(nodes[i]); + } + } else { + // If we're trying to get csharpscript instances, get the mono object and compare the classes + for (int i = 0; i < nodes.size(); ++i) { + CSharpInstance *si = CAST_CSHARP_INSTANCE(nodes[i]->get_script_instance()); + + if (si != nullptr) { + MonoObject *obj = si->get_mono_object(); + if (obj != nullptr && mono_object_get_class(obj) == mono_class) { + ret.push_back(nodes[i]); + } + } + } + } + } + + return memnew(Array(ret)); +} + +void godot_register_scene_tree_icalls() { + mono_add_internal_call("Godot.SceneTree::godot_icall_SceneTree_get_nodes_in_group_Generic", (void *)godot_icall_SceneTree_get_nodes_in_group_Generic); +} + +#endif // MONO_GLUE_ENABLED diff --git a/modules/mono/glue/scene_tree_glue.h b/modules/mono/glue/scene_tree_glue.h new file mode 100644 index 0000000000..e9af35a30b --- /dev/null +++ b/modules/mono/glue/scene_tree_glue.h @@ -0,0 +1,50 @@ +/*************************************************************************/ +/* scene_tree_glue.h */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2020 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 SCENE_TREE_GLUE_H +#define SCENE_TREE_GLUE_H + +#ifdef MONO_GLUE_ENABLED + +#include "core/array.h" +#include "core/string_name.h" +#include "scene/main/scene_tree.h" + +#include "../mono_gd/gd_mono_marshal.h" + +Array *godot_icall_SceneTree_get_nodes_in_group_Generic(SceneTree *ptr, StringName *group, MonoReflectionType *refltype); + +// Register internal calls + +void godot_register_scene_tree_icalls(); + +#endif // MONO_GLUE_ENABLED + +#endif // SCENE_TREE_GLUE_H diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 5f518d0613..39c3bd8934 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -422,10 +422,10 @@ void GDMono::initialize_load_assemblies() { #if defined(TOOLS_ENABLED) bool tool_assemblies_loaded = _load_tools_assemblies(); CRASH_COND_MSG(!tool_assemblies_loaded, "Mono: Failed to load '" TOOLS_ASM_NAME "' assemblies."); -#endif if (Main::is_project_manager()) return; +#endif // Load the project's main assembly. This doesn't necessarily need to succeed. // The game may not be using .NET at all, or if the project does use .NET and diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp index 085062261d..158742846b 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.cpp +++ b/modules/mono/mono_gd/gd_mono_marshal.cpp @@ -624,8 +624,8 @@ MonoObject *variant_to_mono_object(const Variant *p_var, const ManagedType &p_ty return BOX_BOOLEAN(val); } case Variant::INT: { - int32_t val = p_var->operator signed int(); - return BOX_INT32(val); + int64_t val = p_var->operator int64_t(); + return BOX_INT64(val); } case Variant::FLOAT: { #ifdef REAL_T_IS_DOUBLE diff --git a/modules/mono/utils/mono_reg_utils.cpp b/modules/mono/utils/mono_reg_utils.cpp index 1b4fe68582..e0cf916a01 100644 --- a/modules/mono/utils/mono_reg_utils.cpp +++ b/modules/mono/utils/mono_reg_utils.cpp @@ -75,7 +75,6 @@ LONG _RegKeyQueryString(HKEY hKey, const String &p_value_name, String &r_value) if (res == ERROR_MORE_DATA) { // dwBufferSize now contains the actual size - Vector<WCHAR> buffer; buffer.resize(dwBufferSize); res = RegQueryValueExW(hKey, p_value_name.c_str(), 0, nullptr, (LPBYTE)buffer.ptr(), &dwBufferSize); } diff --git a/modules/opus/config.py b/modules/opus/config.py index d22f9454ed..9ff7b2dece 100644 --- a/modules/opus/config.py +++ b/modules/opus/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return True + return env.module_check_dependencies("opus", ["ogg"]) def configure(env): diff --git a/modules/regex/SCsub b/modules/regex/SCsub index 753650adcb..2afacc1d9c 100644 --- a/modules/regex/SCsub +++ b/modules/regex/SCsub @@ -7,7 +7,7 @@ env_regex = env_modules.Clone() if env["builtin_pcre2"]: thirdparty_dir = "#thirdparty/pcre2/src/" - thirdparty_flags = ["PCRE2_STATIC", "HAVE_CONFIG_H"] + thirdparty_flags = ["PCRE2_STATIC", "HAVE_CONFIG_H", "SUPPORT_UNICODE"] if env["builtin_pcre2_with_jit"]: thirdparty_flags.append("SUPPORT_JIT") diff --git a/modules/regex/doc_classes/RegEx.xml b/modules/regex/doc_classes/RegEx.xml index 3130c53331..c00fa96b2e 100644 --- a/modules/regex/doc_classes/RegEx.xml +++ b/modules/regex/doc_classes/RegEx.xml @@ -32,8 +32,7 @@ [codeblock] for result in regex.search_all("d01, d03, d0c, x3f and x42"): print(result.get_string("digit")) - # Would print 01 03 3f 42 - # Note that d0c would not match + # Would print 01 03 0 3f 42 [/codeblock] [b]Note:[/b] Godot's regex implementation is based on the [url=https://www.pcre.org/]PCRE2[/url] library. You can view the full pattern reference [url=https://www.pcre.org/current/doc/html/pcre2pattern.html]here[/url]. [b]Tip:[/b] You can use [url=https://regexr.com/]Regexr[/url] to test regular expressions online. diff --git a/modules/regex/doc_classes/RegExMatch.xml b/modules/regex/doc_classes/RegExMatch.xml index 151e881b6f..a45de60aef 100644 --- a/modules/regex/doc_classes/RegExMatch.xml +++ b/modules/regex/doc_classes/RegExMatch.xml @@ -49,7 +49,7 @@ </methods> <members> <member name="names" type="Dictionary" setter="" getter="get_names" default="{}"> - A dictionary of named groups and its corresponding group number. Only groups with that were matched are included. If multiple groups have the same name, that name would refer to the first matching one. + A dictionary of named groups and its corresponding group number. Only groups that were matched are included. If multiple groups have the same name, that name would refer to the first matching one. </member> <member name="strings" type="Array" setter="" getter="get_strings" default="[ ]"> An [Array] of the match and its capturing groups. diff --git a/modules/theora/config.py b/modules/theora/config.py index 413acce2df..b063ed51f9 100644 --- a/modules/theora/config.py +++ b/modules/theora/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return True + return env.module_check_dependencies("theora", ["ogg", "vorbis"]) def configure(env): diff --git a/modules/visual_script/config.py b/modules/visual_script/config.py index bd459ca344..b15479797c 100644 --- a/modules/visual_script/config.py +++ b/modules/visual_script/config.py @@ -8,7 +8,6 @@ def configure(env): def get_doc_classes(): return [ - "@VisualScript", "VisualScriptBasicTypeConstant", "VisualScriptBuiltinFunc", "VisualScriptClassConstant", diff --git a/modules/visual_script/doc_classes/@VisualScript.xml b/modules/visual_script/doc_classes/@VisualScript.xml deleted file mode 100644 index a2b966bfbb..0000000000 --- a/modules/visual_script/doc_classes/@VisualScript.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="@VisualScript" version="4.0"> - <brief_description> - Built-in visual script functions. - </brief_description> - <description> - A list of built-in visual script functions, see [VisualScriptBuiltinFunc] and [VisualScript]. - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index fea7d151df..b7ca3c882b 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -3216,6 +3216,7 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from, { List<VisualScript::DataConnection> data_connections; script->get_data_connection_list(p_func_from, &data_connections); + int func_from_node_id = script->get_function_node_id(p_func_from); HashMap<int, Map<int, Pair<int, int>>> connections; @@ -3225,6 +3226,11 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from, int out_p = E->get().from_port; int in_p = E->get().to_port; + // skip if the from_node is a function node + if (from == func_from_node_id) { + continue; + } + if (!connections.has(to)) { connections.set(to, Map<int, Pair<int, int>>()); } diff --git a/modules/visual_script/visual_script_property_selector.cpp b/modules/visual_script/visual_script_property_selector.cpp index f14c9ce49d..3c44faab90 100644 --- a/modules/visual_script/visual_script_property_selector.cpp +++ b/modules/visual_script/visual_script_property_selector.cpp @@ -447,7 +447,7 @@ void VisualScriptPropertySelector::_item_selected() { if (E) { for (int i = 0; i < E->get().properties.size(); i++) { if (E->get().properties[i].name == name) { - text = E->get().properties[i].description; + text = DTR(E->get().properties[i].description); } } } @@ -461,7 +461,7 @@ void VisualScriptPropertySelector::_item_selected() { if (C) { for (int i = 0; i < C->get().methods.size(); i++) { if (C->get().methods[i].name == name) { - text = C->get().methods[i].description; + text = DTR(C->get().methods[i].description); } } } @@ -473,7 +473,7 @@ void VisualScriptPropertySelector::_item_selected() { for (int i = 0; i < T->get().methods.size(); i++) { Vector<String> functions = name.rsplit("/", false, 1); if (T->get().methods[i].name == functions[functions.size() - 1]) { - text = T->get().methods[i].description; + text = DTR(T->get().methods[i].description); } } } @@ -492,7 +492,7 @@ void VisualScriptPropertySelector::_item_selected() { if (typecast_node.is_valid()) { Map<String, DocData::ClassDoc>::Element *F = dd->class_list.find(typecast_node->get_class_name()); if (F) { - text = F->get().description; + text = DTR(F->get().description); } } @@ -502,7 +502,7 @@ void VisualScriptPropertySelector::_item_selected() { if (F) { for (int i = 0; i < F->get().constants.size(); i++) { if (F->get().constants[i].value.to_int() == int(builtin_node->get_func())) { - text = F->get().constants[i].description; + text = DTR(F->get().constants[i].description); } } } diff --git a/modules/vorbis/config.py b/modules/vorbis/config.py index d22f9454ed..8a384e3066 100644 --- a/modules/vorbis/config.py +++ b/modules/vorbis/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return True + return env.module_check_dependencies("vorbis", ["ogg"]) def configure(env): diff --git a/modules/webm/config.py b/modules/webm/config.py index 93b49d177a..99f8ace114 100644 --- a/modules/webm/config.py +++ b/modules/webm/config.py @@ -1,5 +1,8 @@ def can_build(env, platform): - return platform not in ["iphone"] + if platform in ["iphone"]: + return False + + return env.module_check_dependencies("webm", ["ogg", "opus", "vorbis"]) def configure(env): diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml index 504b4705d8..2054276655 100644 --- a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml +++ b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml @@ -120,7 +120,7 @@ </argument> <description> Sets the SDP description of the local peer. This should be called in response to [signal session_description_created]. - If [code]type[/code] is [code]answer[/code] the peer will start emitting [signal ice_candidate_created]. + After calling this function the peer will start emitting [signal ice_candidate_created] (unless an [enum Error] different from [constant OK] is returned). </description> </method> <method name="set_remote_description"> |