27 lines
741 B
Rust
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);
|
|
}
|
|
}
|
|
}
|
|
}
|