summaryrefslogtreecommitdiffstats
path: root/scene/resources/packed_scene.h
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2015-12-13 20:39:01 -0300
committerJuan Linietsky <reduzio@gmail.com>2015-12-13 20:39:01 -0300
commit7f96f0603e16a970c7b0ea1fba936e56baf80d4a (patch)
treef470757f0dc5669ed7fbd6c720339dde0d7ce04d /scene/resources/packed_scene.h
parent72ff61963b207cc41664f7aeb39448d0a2f8369f (diff)
downloadredot-engine-7f96f0603e16a970c7b0ea1fba936e56baf80d4a.tar.gz
-scenes are properly reloaded when a dependency changes, fixes #2896
(it's clevery done so local changes to scenes are kept even if unsaved)
Diffstat (limited to 'scene/resources/packed_scene.h')
-rw-r--r--scene/resources/packed_scene.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h
index f3ec0afb6d..67d0f4ba01 100644
--- a/scene/resources/packed_scene.h
+++ b/scene/resources/packed_scene.h
@@ -99,6 +99,8 @@ class SceneState : public Reference {
String path;
+ uint64_t last_modified_time;
+
_FORCE_INLINE_ Ref<SceneState> _get_base_scene_state() const;
static bool disable_placeholders;
@@ -162,6 +164,9 @@ public:
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();
};
@@ -189,8 +194,13 @@ public:
bool can_instance() const;
Node *instance(bool p_gen_edit_state=false) const;
+ void recreate_state();
+
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();