You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Bug Fixes
-=-=-=-=- -Fixed problem with scaling shapes (#827), related to not taking scale in consideration for calculating the moment of inertia -Added support for multiline strings (or comments) using """ -Save subscene bug, properties not being saved in root node (#806) -Fix Crash in CollisionPolygon2DEditor (#814) -Restored Ability to compile without 3D (#795) -Fix InterpolatedCamera (#803) -Fix UV Import for OBJ Meshes (#771) -Fixed issue with modifier gizmos (#794) -Fixed CapsuleShape gizmo handle (#50) -Fixed Import Button (not properly working in 3D) (#733) -Many misc fixes (though no new features)
This commit is contained in:
@@ -158,13 +158,54 @@ void MeshInstanceEditor::_menu_option(int p_option) {
|
||||
ur->add_undo_method(node,"remove_child",nmi);
|
||||
ur->commit_action();
|
||||
} break;
|
||||
case MENU_OPTION_CREATE_OUTLINE_MESH: {
|
||||
|
||||
outline_dialog->popup_centered(Size2(200,80));
|
||||
} break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void MeshInstanceEditor::_create_outline_mesh() {
|
||||
|
||||
Ref<Mesh> mesh = node->get_mesh();
|
||||
if (mesh.is_null()) {
|
||||
err_dialog->set_text("MeshInstance lacks a Mesh!");
|
||||
err_dialog->popup_centered(Size2(100,50));
|
||||
return;
|
||||
}
|
||||
|
||||
Ref<Mesh> mesho = mesh->create_outline(outline_size->get_val());
|
||||
|
||||
if (mesho.is_null()) {
|
||||
err_dialog->set_text("Could not create outline!");
|
||||
err_dialog->popup_centered(Size2(100,50));
|
||||
return;
|
||||
}
|
||||
|
||||
MeshInstance *mi = memnew( MeshInstance );
|
||||
mi->set_mesh(mesho);
|
||||
Node *owner=node->get_owner();
|
||||
if (get_scene()->get_edited_scene_root()==node) {
|
||||
owner=node;
|
||||
}
|
||||
|
||||
UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
|
||||
|
||||
ur->create_action("Create Outline");
|
||||
|
||||
ur->add_do_method(node,"add_child",mi);
|
||||
ur->add_do_method(mi,"set_owner",owner);
|
||||
|
||||
ur->add_do_reference(mi);
|
||||
ur->add_undo_method(node,"remove_child",mi);
|
||||
ur->commit_action();
|
||||
}
|
||||
|
||||
void MeshInstanceEditor::_bind_methods() {
|
||||
|
||||
ObjectTypeDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option);
|
||||
ObjectTypeDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh);
|
||||
}
|
||||
|
||||
MeshInstanceEditor::MeshInstanceEditor() {
|
||||
@@ -182,9 +223,23 @@ MeshInstanceEditor::MeshInstanceEditor() {
|
||||
options->get_popup()->add_item("Create Convex Collision Sibling",MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE);
|
||||
options->get_popup()->add_separator();
|
||||
options->get_popup()->add_item("Create Navigation Mesh",MENU_OPTION_CREATE_NAVMESH);
|
||||
options->get_popup()->add_separator();
|
||||
options->get_popup()->add_item("Create Outline Mesh..",MENU_OPTION_CREATE_OUTLINE_MESH);
|
||||
|
||||
options->get_popup()->connect("item_pressed", this,"_menu_option");
|
||||
|
||||
outline_dialog = memnew( ConfirmationDialog );
|
||||
outline_dialog->set_title("Outline Size: ");
|
||||
outline_size = memnew( SpinBox );
|
||||
outline_size->set_min(0.001);
|
||||
outline_size->set_max(1024);
|
||||
outline_size->set_step(0.001);
|
||||
outline_size->set_val(0.05);
|
||||
outline_dialog->add_child(outline_size);
|
||||
outline_dialog->set_child_rect(outline_size);
|
||||
add_child(outline_dialog);
|
||||
outline_dialog->connect("confirmed",this,"_create_outline_mesh");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user