|
@@ -113,6 +113,7 @@ void RemoteTransform3D::_notification(int p_what) {
|
|
|
_update_cache();
|
|
|
} break;
|
|
|
|
|
|
+ case NOTIFICATION_LOCAL_TRANSFORM_CHANGED:
|
|
|
case NOTIFICATION_TRANSFORM_CHANGED: {
|
|
|
if (!is_inside_tree()) {
|
|
|
break;
|
|
@@ -126,6 +127,10 @@ void RemoteTransform3D::_notification(int p_what) {
|
|
|
}
|
|
|
|
|
|
void RemoteTransform3D::set_remote_node(const NodePath &p_remote_node) {
|
|
|
+ if (remote_node == p_remote_node) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
remote_node = p_remote_node;
|
|
|
if (is_inside_tree()) {
|
|
|
_update_cache();
|
|
@@ -140,7 +145,15 @@ NodePath RemoteTransform3D::get_remote_node() const {
|
|
|
}
|
|
|
|
|
|
void RemoteTransform3D::set_use_global_coordinates(const bool p_enable) {
|
|
|
+ if (use_global_coordinates == p_enable) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
use_global_coordinates = p_enable;
|
|
|
+
|
|
|
+ set_notify_transform(use_global_coordinates);
|
|
|
+ set_notify_local_transform(!use_global_coordinates);
|
|
|
+ _update_remote();
|
|
|
}
|
|
|
|
|
|
bool RemoteTransform3D::get_use_global_coordinates() const {
|
|
@@ -148,6 +161,9 @@ bool RemoteTransform3D::get_use_global_coordinates() const {
|
|
|
}
|
|
|
|
|
|
void RemoteTransform3D::set_update_position(const bool p_update) {
|
|
|
+ if (update_remote_position == p_update) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
update_remote_position = p_update;
|
|
|
_update_remote();
|
|
|
}
|
|
@@ -157,6 +173,9 @@ bool RemoteTransform3D::get_update_position() const {
|
|
|
}
|
|
|
|
|
|
void RemoteTransform3D::set_update_rotation(const bool p_update) {
|
|
|
+ if (update_remote_rotation == p_update) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
update_remote_rotation = p_update;
|
|
|
_update_remote();
|
|
|
}
|
|
@@ -166,6 +185,9 @@ bool RemoteTransform3D::get_update_rotation() const {
|
|
|
}
|
|
|
|
|
|
void RemoteTransform3D::set_update_scale(const bool p_update) {
|
|
|
+ if (update_remote_scale == p_update) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
update_remote_scale = p_update;
|
|
|
_update_remote();
|
|
|
}
|
|
@@ -213,5 +235,6 @@ void RemoteTransform3D::_bind_methods() {
|
|
|
}
|
|
|
|
|
|
RemoteTransform3D::RemoteTransform3D() {
|
|
|
- set_notify_transform(true);
|
|
|
+ set_notify_transform(use_global_coordinates);
|
|
|
+ set_notify_local_transform(!use_global_coordinates);
|
|
|
}
|