summaryrefslogtreecommitdiffstats
path: root/scene/main/instance_placeholder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/main/instance_placeholder.cpp')
-rw-r--r--scene/main/instance_placeholder.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/scene/main/instance_placeholder.cpp b/scene/main/instance_placeholder.cpp
index fb047ea5e4..ebba96ff81 100644
--- a/scene/main/instance_placeholder.cpp
+++ b/scene/main/instance_placeholder.cpp
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2017 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
@@ -101,11 +101,28 @@ void InstancePlaceholder::replace_by_instance(const Ref<PackedScene> &p_custom_s
base->remove_child(this);
base->add_child(scene);
base->move_child(scene,pos);
-
}
+Dictionary InstancePlaceholder::get_stored_values(bool p_with_order) {
+
+ Dictionary ret;
+ StringArray order;
+
+ for(List<PropSet>::Element *E=stored_values.front();E;E=E->next()) {
+ ret[E->get().name] = E->get().value;
+ if (p_with_order)
+ order.push_back(E->get().name);
+ };
+
+ if (p_with_order)
+ ret[".order"] = order;
+
+ return ret;
+};
+
void InstancePlaceholder::_bind_methods() {
+ ObjectTypeDB::bind_method(_MD("get_stored_values","with_order"),&InstancePlaceholder::get_stored_values,DEFVAL(false));
ObjectTypeDB::bind_method(_MD("replace_by_instance","custom_scene:PackedScene"),&InstancePlaceholder::replace_by_instance,DEFVAL(Variant()));
ObjectTypeDB::bind_method(_MD("get_instance_path"),&InstancePlaceholder::get_instance_path);
}