summaryrefslogtreecommitdiff
path: root/scene/resources/packed_scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/packed_scene.h')
-rw-r--r--scene/resources/packed_scene.h42
1 files changed, 39 insertions, 3 deletions
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index 3956d2abe4..7fda4392d8 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -5,7 +5,7 @@
/* GODOT ENGINE */
/* http://www.godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2016 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 */
@@ -36,6 +36,8 @@
class SceneState : public Reference {
OBJ_TYPE( SceneState, Reference );
+
+
Vector<StringName> names;
Vector<Variant> variants;
Vector<NodePath> node_paths;
@@ -50,7 +52,6 @@ class SceneState : public Reference {
FLAG_INSTANCE_IS_PLACEHOLDER=(1<<30),
FLAG_MASK=(1<<24)-1,
NO_PARENT_SAVED=0x7FFFFFFF,
- TYPE_INSTANCED=0x7FFFFFFF,
};
@@ -99,11 +100,24 @@ class SceneState : public Reference {
String path;
+ uint64_t last_modified_time;
+
_FORCE_INLINE_ Ref<SceneState> _get_base_scene_state() const;
static bool disable_placeholders;
+
+ DVector<String> _get_node_groups(int p_idx) const;
+
+protected:
+
+ static void _bind_methods();
+
public:
+ enum {
+ TYPE_INSTANCED=0x7FFFFFFF
+ };
+
static void set_disable_placeholders(bool p_disable);
int find_node_by_path(const NodePath& p_node) const;
@@ -126,7 +140,7 @@ public:
Node *instance(bool p_gen_edit_state=false) const;
- //build-unbuild API
+ //unbuild API
int get_node_count() const;
StringName get_node_type(int p_idx) const;
@@ -150,6 +164,22 @@ public:
Vector<NodePath> get_editable_instances() const;
+ //build API
+
+ int add_name(const StringName& p_name);
+ int add_value(const Variant& p_value);
+ int add_node_path(const NodePath& p_path);
+ int add_node(int p_parent,int p_owner,int p_type,int p_name, int p_instance);
+ void add_node_property(int p_node,int p_name,int p_value);
+ void add_node_group(int p_node,int p_group);
+ void set_base_scene(int p_idx);
+ void add_connection(int p_from,int p_to, int p_signal, int p_method, int p_flags,const Vector<int>& p_binds);
+ void add_editable_instance(const NodePath& p_path);
+
+ virtual void set_last_modified_time(uint64_t p_time) { last_modified_time=p_time; }
+ uint64_t get_last_modified_time() const { return last_modified_time; }
+
+
SceneState();
};
@@ -176,8 +206,14 @@ public:
bool can_instance() const;
Node *instance(bool p_gen_edit_state=false) const;
+ void recreate_state();
+ void replace_state(Ref<SceneState> p_by);
+
virtual void set_path(const String& p_path,bool p_take_over=false);
+#ifdef TOOLS_ENABLED
+ virtual void set_last_modified_time(uint64_t p_time) { state->set_last_modified_time(p_time); }
+#endif
Ref<SceneState> get_state();
PackedScene();