Kaynağa Gözat

Added force_update_cache() to RemoteTransform and RemoteTransform2D

David Sichma 6 yıl önce
ebeveyn
işleme
5a631bf4f4

+ 7 - 0
doc/classes/RemoteTransform.xml

@@ -10,6 +10,13 @@
 	<tutorials>
 	</tutorials>
 	<methods>
+		<method name="force_update_cache">
+			<return type="void">
+			</return>
+			<description>
+				[RemoteTransform] caches the remote node. It may not notice if the remote node disappears; [method force_update_cache] forces it to update the cache again.
+			</description>
+		</method>
 	</methods>
 	<members>
 		<member name="remote_path" type="NodePath" setter="set_remote_node" getter="get_remote_node" default="NodePath(&quot;&quot;)">

+ 7 - 0
doc/classes/RemoteTransform2D.xml

@@ -10,6 +10,13 @@
 	<tutorials>
 	</tutorials>
 	<methods>
+		<method name="force_update_cache">
+			<return type="void">
+			</return>
+			<description>
+				[RemoteTransform2D] caches the remote node. It may not notice if the remote node disappears; [method force_update_cache] forces it to update the cache again.
+			</description>
+		</method>
 	</methods>
 	<members>
 		<member name="remote_path" type="NodePath" setter="set_remote_node" getter="get_remote_node" default="NodePath(&quot;&quot;)">

+ 6 - 1
scene/2d/remote_transform_2d.cpp

@@ -110,7 +110,7 @@ void RemoteTransform2D::_notification(int p_what) {
 
 	switch (p_what) {
 
-		case NOTIFICATION_READY: {
+		case NOTIFICATION_ENTER_TREE: {
 
 			_update_cache();
 
@@ -180,6 +180,10 @@ bool RemoteTransform2D::get_update_scale() const {
 	return update_remote_scale;
 }
 
+void RemoteTransform2D::force_update_cache() {
+	_update_cache();
+}
+
 String RemoteTransform2D::get_configuration_warning() const {
 
 	if (!has_node(remote_node) || !Object::cast_to<Node2D>(get_node(remote_node))) {
@@ -193,6 +197,7 @@ void RemoteTransform2D::_bind_methods() {
 
 	ClassDB::bind_method(D_METHOD("set_remote_node", "path"), &RemoteTransform2D::set_remote_node);
 	ClassDB::bind_method(D_METHOD("get_remote_node"), &RemoteTransform2D::get_remote_node);
+	ClassDB::bind_method(D_METHOD("force_update_cache"), &RemoteTransform2D::force_update_cache);
 
 	ClassDB::bind_method(D_METHOD("set_use_global_coordinates", "use_global_coordinates"), &RemoteTransform2D::set_use_global_coordinates);
 	ClassDB::bind_method(D_METHOD("get_use_global_coordinates"), &RemoteTransform2D::get_use_global_coordinates);

+ 2 - 0
scene/2d/remote_transform_2d.h

@@ -69,6 +69,8 @@ public:
 	void set_update_scale(const bool p_update);
 	bool get_update_scale() const;
 
+	void force_update_cache();
+
 	virtual String get_configuration_warning() const;
 
 	RemoteTransform2D();

+ 6 - 1
scene/3d/remote_transform.cpp

@@ -105,7 +105,7 @@ void RemoteTransform::_notification(int p_what) {
 
 	switch (p_what) {
 
-		case NOTIFICATION_READY: {
+		case NOTIFICATION_ENTER_TREE: {
 
 			_update_cache();
 
@@ -174,6 +174,10 @@ bool RemoteTransform::get_update_scale() const {
 	return update_remote_scale;
 }
 
+void RemoteTransform::force_update_cache() {
+	_update_cache();
+}
+
 String RemoteTransform::get_configuration_warning() const {
 
 	if (!has_node(remote_node) || !Object::cast_to<Spatial>(get_node(remote_node))) {
@@ -187,6 +191,7 @@ void RemoteTransform::_bind_methods() {
 
 	ClassDB::bind_method(D_METHOD("set_remote_node", "path"), &RemoteTransform::set_remote_node);
 	ClassDB::bind_method(D_METHOD("get_remote_node"), &RemoteTransform::get_remote_node);
+	ClassDB::bind_method(D_METHOD("force_update_cache"), &RemoteTransform::force_update_cache);
 
 	ClassDB::bind_method(D_METHOD("set_use_global_coordinates", "use_global_coordinates"), &RemoteTransform::set_use_global_coordinates);
 	ClassDB::bind_method(D_METHOD("get_use_global_coordinates"), &RemoteTransform::get_use_global_coordinates);

+ 2 - 0
scene/3d/remote_transform.h

@@ -68,6 +68,8 @@ public:
 	void set_update_scale(const bool p_update);
 	bool get_update_scale() const;
 
+	void force_update_cache();
+
 	virtual String get_configuration_warning() const;
 
 	RemoteTransform();