diff options
Diffstat (limited to 'scene/main/node.cpp')
-rw-r--r-- | scene/main/node.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 191e3ec04c..450578a241 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -33,6 +33,7 @@ #include "scene/resources/packed_scene.h" #include "io/resource_loader.h" #include "viewport.h" +#include "instance_placeholder.h" VARIANT_ENUM_CAST(Node::PauseMode); @@ -1471,7 +1472,14 @@ Node *Node::duplicate(bool p_use_instancing) const { bool instanced=false; - if (p_use_instancing && get_filename()!=String()) { + if (cast_to<InstancePlaceholder>()) { + + const InstancePlaceholder *ip = cast_to<const InstancePlaceholder>(); + InstancePlaceholder *nip = memnew( InstancePlaceholder ); + nip->set_instance_path( ip->get_instance_path() ); + node=nip; + + } else if (p_use_instancing && get_filename()!=String()) { Ref<PackedScene> res = ResourceLoader::load(get_filename()); ERR_FAIL_COND_V(res.is_null(),NULL); |