You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-15 13:51:40 +00:00
Use ObjectID as argument when referred-calling _request_gizmo
Fixes crash on project launch.
This commit is contained in:
@@ -7639,6 +7639,13 @@ void Node3DEditor::_request_gizmo(Object *p_obj) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Node3DEditor::_request_gizmo_for_id(ObjectID p_id) {
|
||||||
|
Node3D *node = Object::cast_to<Node3D>(ObjectDB::get_instance(p_id));
|
||||||
|
if (node) {
|
||||||
|
_request_gizmo(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Node3DEditor::_set_subgizmo_selection(Object *p_obj, Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform) {
|
void Node3DEditor::_set_subgizmo_selection(Object *p_obj, Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform) {
|
||||||
if (p_id == -1) {
|
if (p_id == -1) {
|
||||||
_clear_subgizmo_selection(p_obj);
|
_clear_subgizmo_selection(p_obj);
|
||||||
@@ -7819,6 +7826,7 @@ void Node3DEditor::_register_all_gizmos() {
|
|||||||
void Node3DEditor::_bind_methods() {
|
void Node3DEditor::_bind_methods() {
|
||||||
ClassDB::bind_method("_get_editor_data", &Node3DEditor::_get_editor_data);
|
ClassDB::bind_method("_get_editor_data", &Node3DEditor::_get_editor_data);
|
||||||
ClassDB::bind_method("_request_gizmo", &Node3DEditor::_request_gizmo);
|
ClassDB::bind_method("_request_gizmo", &Node3DEditor::_request_gizmo);
|
||||||
|
ClassDB::bind_method("_request_gizmo_for_id", &Node3DEditor::_request_gizmo_for_id);
|
||||||
ClassDB::bind_method("_set_subgizmo_selection", &Node3DEditor::_set_subgizmo_selection);
|
ClassDB::bind_method("_set_subgizmo_selection", &Node3DEditor::_set_subgizmo_selection);
|
||||||
ClassDB::bind_method("_clear_subgizmo_selection", &Node3DEditor::_clear_subgizmo_selection);
|
ClassDB::bind_method("_clear_subgizmo_selection", &Node3DEditor::_clear_subgizmo_selection);
|
||||||
ClassDB::bind_method("_refresh_menu_icons", &Node3DEditor::_refresh_menu_icons);
|
ClassDB::bind_method("_refresh_menu_icons", &Node3DEditor::_refresh_menu_icons);
|
||||||
|
|||||||
@@ -716,6 +716,7 @@ private:
|
|||||||
Node3D *selected = nullptr;
|
Node3D *selected = nullptr;
|
||||||
|
|
||||||
void _request_gizmo(Object *p_obj);
|
void _request_gizmo(Object *p_obj);
|
||||||
|
void _request_gizmo_for_id(ObjectID p_id);
|
||||||
void _set_subgizmo_selection(Object *p_obj, Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform = Transform3D());
|
void _set_subgizmo_selection(Object *p_obj, Ref<Node3DGizmo> p_gizmo, int p_id, Transform3D p_transform = Transform3D());
|
||||||
void _clear_subgizmo_selection(Object *p_obj = nullptr);
|
void _clear_subgizmo_selection(Object *p_obj = nullptr);
|
||||||
|
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ void Node3D::_notification(int p_what) {
|
|||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) {
|
if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) {
|
||||||
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this);
|
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringNames::get_singleton()->_spatial_editor_group, SNAME("_request_gizmo_for_id"), get_instance_id());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} break;
|
} break;
|
||||||
@@ -482,7 +482,7 @@ void Node3D::update_gizmos() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.gizmos.is_empty()) {
|
if (data.gizmos.is_empty()) {
|
||||||
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this);
|
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringNames::get_singleton()->_spatial_editor_group, SNAME("_request_gizmo_for_id"), get_instance_id());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (data.gizmos_dirty) {
|
if (data.gizmos_dirty) {
|
||||||
|
|||||||
Reference in New Issue
Block a user