ソースを参照

Fix EditorSpatialGizmo virtual functions not being called
* Bind EditorSpatialGizmo::clear method

Franklin Sobrinho 9 年 前
コミット
914d670a71

+ 10 - 1
tools/editor/plugins/spatial_editor_plugin.cpp

@@ -77,21 +77,30 @@ void SpatialEditorViewport::_update_camera() {
 
 String SpatialEditorGizmo::get_handle_name(int p_idx) const {
 
+	if (get_script_instance() && get_script_instance()->has_method("get_handle_name"))
+		return get_script_instance()->call("get_handle_name", p_idx);
+
 	return "";
 }
 
 Variant SpatialEditorGizmo::get_handle_value(int p_idx) const{
 
+	if (get_script_instance() && get_script_instance()->has_method("get_handle_value"))
+		return get_script_instance()->call("get_handle_value", p_idx);
+
 	return Variant();
 }
 
 void SpatialEditorGizmo::set_handle(int p_idx,Camera *p_camera, const Point2& p_point) {
 
+	if (get_script_instance() && get_script_instance()->has_method("set_handle"))
+		get_script_instance()->call("set_handle", p_idx, p_camera, p_point);
 }
 
 void SpatialEditorGizmo::commit_handle(int p_idx,const Variant& p_restore,bool p_cancel){
 
-
+	if (get_script_instance() && get_script_instance()->has_method("commit_handle"))
+		get_script_instance()->call("commit_handle", p_idx, p_restore, p_cancel);
 }
 
 bool SpatialEditorGizmo::intersect_frustum(const Camera *p_camera,const Vector<Plane> &p_frustum) {

+ 2 - 3
tools/editor/spatial_editor_gizmos.cpp

@@ -623,12 +623,11 @@ void EditorSpatialGizmo::_bind_methods() {
 	ObjectTypeDB::bind_method(_MD("add_unscaled_billboard","material:Material","default_scale"),&EditorSpatialGizmo::add_unscaled_billboard,DEFVAL(1));
 	ObjectTypeDB::bind_method(_MD("add_handles","handles","billboard","secondary"),&EditorSpatialGizmo::add_handles,DEFVAL(false),DEFVAL(false));
 	ObjectTypeDB::bind_method(_MD("set_spatial_node","node:Spatial"),&EditorSpatialGizmo::_set_spatial_node);
+	ObjectTypeDB::bind_method(_MD("clear"),&EditorSpatialGizmo::clear);
 
 	BIND_VMETHOD( MethodInfo("redraw"));
 	BIND_VMETHOD( MethodInfo(Variant::STRING,"get_handle_name",PropertyInfo(Variant::INT,"index")));
-	{
-		BIND_VMETHOD( MethodInfo("get_handle_value:Variant",PropertyInfo(Variant::INT,"index")));
-	}
+	BIND_VMETHOD( MethodInfo("get_handle_value:Variant",PropertyInfo(Variant::INT,"index")));
 	BIND_VMETHOD( MethodInfo("set_handle",PropertyInfo(Variant::INT,"index"),PropertyInfo(Variant::OBJECT,"camera:Camera"),PropertyInfo(Variant::VECTOR2,"point")));
 	MethodInfo cm = MethodInfo("commit_handle",PropertyInfo(Variant::INT,"index"),PropertyInfo(Variant::NIL,"restore:Variant"),PropertyInfo(Variant::BOOL,"cancel"));
 	cm.default_arguments.push_back(false);