summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAriel Manzur <ariel@godotengine.org>2016-11-08 17:40:46 -0300
committerRĂ©mi Verschelde <rverschelde@gmail.com>2016-11-18 21:55:21 +0100
commitb3616089fad2d113626c22f14034ae52b3eecb68 (patch)
treec405ce2792c3f5b7192fbe92c6c016204a3232bf
parent959683c3d8f7aaa7469d5758c7698e0da108b406 (diff)
adding get_stored_values method
changed order name (cherry picked from commit dbca4ee3fe283f59a8c9d50aae73b97f48be7b01)
-rw-r--r--scene/main/instance_placeholder.cpp19
-rw-r--r--scene/main/instance_placeholder.h2
2 files changed, 20 insertions, 1 deletions
diff --git a/scene/main/instance_placeholder.cpp b/scene/main/instance_placeholder.cpp
index fb047ea5e4..15045a73d5 100644
--- a/scene/main/instance_placeholder.cpp
+++ b/scene/main/instance_placeholder.cpp
@@ -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);
}
diff --git a/scene/main/instance_placeholder.h b/scene/main/instance_placeholder.h
index ef76686196..cacba49b39 100644
--- a/scene/main/instance_placeholder.h
+++ b/scene/main/instance_placeholder.h
@@ -57,6 +57,8 @@ public:
void set_instance_path(const String& p_name);
String get_instance_path() const;
+ Dictionary get_stored_values(bool p_with_order = false);
+
void replace_by_instance(const Ref<PackedScene>& p_custom_scene=Ref<PackedScene>());
InstancePlaceholder();