1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-09 12:50:35 +00:00

Import 3D Scene Improvements

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

-If re-importing from the "dependency changed" dialog, edited scene will keep the local changes.
-Imported scene will keep track of changes in the source asset
-Geometry changes in source geometry or nodes with a different transform will be updated.
-Materials will be kept if changed locally.
-New nodes added will be kept
-If nodes were reparented or renamed, they will still keep track
-Deleted notes will be restored, use the -noimp option to avoid this.
-In general, you can trust that if you do local modifications to the imported scene, they will not be erased after re-import.
-Erasing your changes is done by re-importing from the "Re-Import" menu, re-opening the "Import 3D Scene" dialog. This wil re-import fresh.

Overall, This should allow you to work on a scene and see changes made to 3D assets in real-time.

So Please test!!
This commit is contained in:
Juan Linietsky
2014-06-19 02:23:03 -03:00
parent ddc0e7fd3b
commit e086bccd63
19 changed files with 667 additions and 124 deletions

View File

@@ -3046,6 +3046,33 @@ void EditorNode::_load_error_notify(void* p_ud,const String& p_text) {
}
bool EditorNode::_find_scene_in_use(Node* p_node,const String& p_path) const {
if (p_node->get_filename()==p_path) {
return true;
}
for(int i=0;i<p_node->get_child_count();i++) {
if (_find_scene_in_use(p_node->get_child(i),p_path)) {
return true;
}
}
return false;
}
bool EditorNode::is_scene_in_use(const String& p_path) {
Node *es = get_edited_scene();
if (es)
return _find_scene_in_use(es,p_path);
return false;
}
void EditorNode::register_editor_types() {
ObjectTypeDB::register_type<EditorPlugin>();
@@ -3212,6 +3239,7 @@ Error EditorNode::export_platform(const String& p_platform, const String& p_path
}
EditorNode::EditorNode() {
EditorHelp::generate_doc(); //before any editor classes are crated