Merge pull request #86310 from jirisvd/fix-softbody-reload

Fix `SoftBody3D` pinned points breaking when reloading scene
This commit is contained in:
Rémi Verschelde 2024-08-16 14:31:45 +02:00
commit 0c956e49ac
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 7 additions and 1 deletions

View File

@ -218,7 +218,13 @@ bool SoftBody3D::_set_property_pinned_points_attachment(int p_item, const String
if ("spatial_attachment_path" == p_what) {
PinnedPoint *w = pinned_points.ptrw();
callable_mp(this, &SoftBody3D::_pin_point_deferred).call_deferred(Variant(w[p_item].point_index), true, p_value);
if (is_inside_tree()) {
callable_mp(this, &SoftBody3D::_pin_point_deferred).call_deferred(Variant(w[p_item].point_index), true, p_value);
} else {
pin_point(w[p_item].point_index, true, p_value);
_make_cache_dirty();
}
} else if ("offset" == p_what) {
PinnedPoint *w = pinned_points.ptrw();
w[p_item].offset = p_value;