summaryrefslogtreecommitdiffstats
path: root/scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp')
-rw-r--r--scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp b/scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp
index dd1c4a91d5..16a6166878 100644
--- a/scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp
+++ b/scene/resources/2d/skeleton/skeleton_modification_2d_fabrik.cpp
@@ -289,13 +289,21 @@ void SkeletonModification2DFABRIK::_setup_modification(SkeletonModificationStack
if (stack != nullptr) {
is_setup = true;
+
+ if (stack->skeleton) {
+ for (int i = 0; i < fabrik_data_chain.size(); i++) {
+ fabrik_joint_update_bone2d_cache(i);
+ }
+ }
update_target_cache();
}
}
void SkeletonModification2DFABRIK::update_target_cache() {
if (!is_setup || !stack) {
- ERR_PRINT_ONCE("Cannot update target cache: modification is not properly setup!");
+ if (is_setup) {
+ ERR_PRINT_ONCE("Cannot update target cache: modification is not properly setup!");
+ }
return;
}
@@ -317,7 +325,9 @@ void SkeletonModification2DFABRIK::update_target_cache() {
void SkeletonModification2DFABRIK::fabrik_joint_update_bone2d_cache(int p_joint_idx) {
ERR_FAIL_INDEX_MSG(p_joint_idx, fabrik_data_chain.size(), "Cannot update bone2d cache: joint index out of range!");
if (!is_setup || !stack) {
- ERR_PRINT_ONCE("Cannot update FABRIK Bone2D cache: modification is not properly setup!");
+ if (is_setup) {
+ ERR_PRINT_ONCE("Cannot update FABRIK Bone2D cache: modification is not properly setup!");
+ }
return;
}
@@ -389,7 +399,6 @@ void SkeletonModification2DFABRIK::set_fabrik_joint_bone_index(int p_joint_idx,
fabrik_data_chain.write[p_joint_idx].bone_idx = p_bone_idx;
}
} else {
- WARN_PRINT("Cannot verify the FABRIK joint " + itos(p_joint_idx) + " bone index for this modification...");
fabrik_data_chain.write[p_joint_idx].bone_idx = p_bone_idx;
}