Ability to import .escn files, which is just a .tscn but with forced import.
This works together with the new Blender to Godot exporter.
(cherry picked from commit 1322ca6fb2
)
This commit is contained in:
parent
a34afa3820
commit
c77047d6a3
|
@ -4815,6 +4815,10 @@ EditorNode::EditorNode() {
|
||||||
Ref<EditorSceneImporterGLTF> import_gltf;
|
Ref<EditorSceneImporterGLTF> import_gltf;
|
||||||
import_gltf.instance();
|
import_gltf.instance();
|
||||||
import_scene->add_importer(import_gltf);
|
import_scene->add_importer(import_gltf);
|
||||||
|
|
||||||
|
Ref<EditorSceneImporterESCN> import_escn;
|
||||||
|
import_escn.instance();
|
||||||
|
import_scene->add_importer(import_escn);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<ResourceImporterBitMap> import_bitmap;
|
Ref<ResourceImporterBitMap> import_bitmap;
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include "scene/resources/box_shape.h"
|
#include "scene/resources/box_shape.h"
|
||||||
#include "scene/resources/plane_shape.h"
|
#include "scene/resources/plane_shape.h"
|
||||||
#include "scene/resources/ray_shape.h"
|
#include "scene/resources/ray_shape.h"
|
||||||
|
#include "scene/resources/scene_format_text.h"
|
||||||
#include "scene/resources/sphere_shape.h"
|
#include "scene/resources/sphere_shape.h"
|
||||||
|
|
||||||
uint32_t EditorSceneImporter::get_import_flags() const {
|
uint32_t EditorSceneImporter::get_import_flags() const {
|
||||||
|
@ -1395,3 +1396,25 @@ ResourceImporterScene *ResourceImporterScene::singleton = NULL;
|
||||||
ResourceImporterScene::ResourceImporterScene() {
|
ResourceImporterScene::ResourceImporterScene() {
|
||||||
singleton = this;
|
singleton = this;
|
||||||
}
|
}
|
||||||
|
///////////////////////////////////////
|
||||||
|
|
||||||
|
uint32_t EditorSceneImporterESCN::get_import_flags() const {
|
||||||
|
return IMPORT_SCENE;
|
||||||
|
}
|
||||||
|
void EditorSceneImporterESCN::get_extensions(List<String> *r_extensions) const {
|
||||||
|
r_extensions->push_back("escn");
|
||||||
|
}
|
||||||
|
Node *EditorSceneImporterESCN::import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err) {
|
||||||
|
|
||||||
|
Error error;
|
||||||
|
Ref<PackedScene> ps = ResourceFormatLoaderText::singleton->load(p_path, p_path, &error);
|
||||||
|
ERR_FAIL_COND_V(!ps.is_valid(), NULL);
|
||||||
|
|
||||||
|
Node *scene = ps->instance();
|
||||||
|
ERR_FAIL_COND_V(!scene, NULL);
|
||||||
|
|
||||||
|
return scene;
|
||||||
|
}
|
||||||
|
Ref<Animation> EditorSceneImporterESCN::import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps) {
|
||||||
|
ERR_FAIL_V(Ref<Animation>());
|
||||||
|
}
|
||||||
|
|
|
@ -155,4 +155,14 @@ public:
|
||||||
ResourceImporterScene();
|
ResourceImporterScene();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class EditorSceneImporterESCN : public EditorSceneImporter {
|
||||||
|
GDCLASS(EditorSceneImporterESCN, EditorSceneImporter);
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual uint32_t get_import_flags() const;
|
||||||
|
virtual void get_extensions(List<String> *r_extensions) const;
|
||||||
|
virtual Node *import_scene(const String &p_path, uint32_t p_flags, int p_bake_fps, List<String> *r_missing_deps, Error *r_err = NULL);
|
||||||
|
virtual Ref<Animation> import_animation(const String &p_path, uint32_t p_flags, int p_bake_fps);
|
||||||
|
};
|
||||||
|
|
||||||
#endif // RESOURCEIMPORTERSCENE_H
|
#endif // RESOURCEIMPORTERSCENE_H
|
||||||
|
|
|
@ -1312,6 +1312,8 @@ Error ResourceFormatLoaderText::rename_dependencies(const String &p_path, const
|
||||||
return ria->rename_dependencies(f, p_path, p_map);
|
return ria->rename_dependencies(f, p_path, p_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ResourceFormatLoaderText *ResourceFormatLoaderText::singleton = NULL;
|
||||||
|
|
||||||
Error ResourceFormatLoaderText::convert_file_to_binary(const String &p_src_path, const String &p_dst_path) {
|
Error ResourceFormatLoaderText::convert_file_to_binary(const String &p_src_path, const String &p_dst_path) {
|
||||||
|
|
||||||
Error err;
|
Error err;
|
||||||
|
|
|
@ -128,7 +128,9 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
class ResourceFormatLoaderText : public ResourceFormatLoader {
|
class ResourceFormatLoaderText : public ResourceFormatLoader {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static ResourceFormatLoaderText *singleton;
|
||||||
virtual Ref<ResourceInteractiveLoader> load_interactive(const String &p_path, const String &p_original_path = "", Error *r_error = NULL);
|
virtual Ref<ResourceInteractiveLoader> load_interactive(const String &p_path, const String &p_original_path = "", Error *r_error = NULL);
|
||||||
virtual void get_recognized_extensions_for_type(const String &p_type, List<String> *p_extensions) const;
|
virtual void get_recognized_extensions_for_type(const String &p_type, List<String> *p_extensions) const;
|
||||||
virtual void get_recognized_extensions(List<String> *p_extensions) const;
|
virtual void get_recognized_extensions(List<String> *p_extensions) const;
|
||||||
|
@ -138,6 +140,8 @@ public:
|
||||||
virtual Error rename_dependencies(const String &p_path, const Map<String, String> &p_map);
|
virtual Error rename_dependencies(const String &p_path, const Map<String, String> &p_map);
|
||||||
|
|
||||||
static Error convert_file_to_binary(const String &p_src_path, const String &p_dst_path);
|
static Error convert_file_to_binary(const String &p_src_path, const String &p_dst_path);
|
||||||
|
|
||||||
|
ResourceFormatLoaderText() { singleton = this; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class ResourceFormatSaverTextInstance {
|
class ResourceFormatSaverTextInstance {
|
||||||
|
|
Loading…
Reference in New Issue