skullball/rust/src/player/player_hand_remover.rs

27 lines
741 B
Rust

use godot::{
classes::{ISkeletonModifier3D, SkeletonModifier3D},
prelude::*,
};
#[derive(GodotClass)]
#[class(base=SkeletonModifier3D, init)]
pub struct PlayerHandRemover {
pub active: bool,
base: Base<SkeletonModifier3D>,
}
#[godot_api]
impl ISkeletonModifier3D for PlayerHandRemover {
fn process_modification_with_delta(&mut self, _delta: f64) {
if self.active {
if let Some(mut skeleton) = self.base_mut().get_skeleton() {
let uar = skeleton.find_bone("UA.R");
let ual = skeleton.find_bone("UA.L");
skeleton.set_bone_pose_scale(uar, Vector3::ZERO);
skeleton.set_bone_pose_scale(ual, Vector3::ZERO);
}
}
}
}