Add missed visual.rs
This commit is contained in:
+1
-22
@@ -1,7 +1,7 @@
|
|||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::fighter::animation::{AnimKind, FighterAnimationFrame};
|
use crate::fighter::animation::AnimKind;
|
||||||
use crate::fighter::baked_animation::BakedFighterAnimations;
|
use crate::fighter::baked_animation::BakedFighterAnimations;
|
||||||
|
|
||||||
#[derive(Component, Clone)]
|
#[derive(Component, Clone)]
|
||||||
@@ -11,24 +11,3 @@ pub struct FighterAnimations {
|
|||||||
/// Gameplay samples this fixed-point asset; the graph remains visual-only.
|
/// Gameplay samples this fixed-point asset; the graph remains visual-only.
|
||||||
pub baked: Handle<BakedFighterAnimations>,
|
pub baked: Handle<BakedFighterAnimations>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FighterAnimations {
|
|
||||||
pub fn sample_bone(
|
|
||||||
&self,
|
|
||||||
baked_assets: &Assets<BakedFighterAnimations>,
|
|
||||||
frame: &FighterAnimationFrame,
|
|
||||||
bone: &str,
|
|
||||||
) -> Option<crate::fighter::baked_animation::FixedMat4> {
|
|
||||||
let baked = baked_assets.get(&self.baked)?;
|
|
||||||
let frame_count = baked.frame_count(frame.kind)?;
|
|
||||||
if frame_count == 0 {
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
let frame_index = if frame.repeat {
|
|
||||||
frame.frame % frame_count
|
|
||||||
} else {
|
|
||||||
frame.frame
|
|
||||||
};
|
|
||||||
baked.sample(frame.kind, frame_index, bone)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user