|
@@ -375,6 +375,13 @@ void Skeleton::_notification(int p_what) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void Skeleton::clear_bones_global_pose_override() {
|
|
|
+ for (int i = 0; i < bones.size(); i += 1) {
|
|
|
+ bones.write[i].global_pose_override_amount = 0;
|
|
|
+ }
|
|
|
+ _make_dirty();
|
|
|
+}
|
|
|
+
|
|
|
void Skeleton::set_bone_global_pose_override(int p_bone, const Transform &p_pose, float p_amount, bool p_persistent) {
|
|
|
|
|
|
ERR_FAIL_INDEX(p_bone, bones.size());
|
|
@@ -869,6 +876,7 @@ void Skeleton::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("get_bone_pose", "bone_idx"), &Skeleton::get_bone_pose);
|
|
|
ClassDB::bind_method(D_METHOD("set_bone_pose", "bone_idx", "pose"), &Skeleton::set_bone_pose);
|
|
|
|
|
|
+ ClassDB::bind_method(D_METHOD("clear_bones_global_pose_override"), &Skeleton::clear_bones_global_pose_override);
|
|
|
ClassDB::bind_method(D_METHOD("set_bone_global_pose_override", "bone_idx", "pose", "amount", "persistent"), &Skeleton::set_bone_global_pose_override, DEFVAL(false));
|
|
|
ClassDB::bind_method(D_METHOD("get_bone_global_pose", "bone_idx"), &Skeleton::get_bone_global_pose);
|
|
|
|