before and after not needed currently
This commit is contained in:
parent
0026b92a72
commit
f027594ab4
@ -488,6 +488,19 @@ enum MoveState{
|
||||
Fly,
|
||||
}
|
||||
impl MoveState{
|
||||
//call this after state.move_state is changed
|
||||
fn changed(&self,body:&mut Body,touching:&TouchingState,models:&PhysicsModels,hitbox_mesh:&HitboxMesh,style:&StyleModifiers,camera:&PhysicsCamera,input_state:&InputState){
|
||||
match self{
|
||||
MoveState::Fly=>body.acceleration=Planar64Vec3::ZERO,
|
||||
MoveState::Air=>{
|
||||
//calculate base acceleration
|
||||
let a=touching.base_acceleration(models,style,camera,input_state);
|
||||
//set_acceleration clips according to contacts
|
||||
set_acceleration(body,touching,models,hitbox_mesh,a);
|
||||
},
|
||||
_=>(),
|
||||
}
|
||||
}
|
||||
//function to coerce &mut self into &self
|
||||
fn apply_to_body(&self,body:&mut Body,touching:&TouchingState,models:&PhysicsModels,hitbox_mesh:&HitboxMesh,style:&StyleModifiers,camera:&PhysicsCamera,input_state:&InputState){
|
||||
match self{
|
||||
@ -569,18 +582,6 @@ impl MoveState{
|
||||
}
|
||||
}
|
||||
}
|
||||
fn move_state_edge(old_move_state:&MoveState,new_move_state:&MoveState,body:&mut Body,touching:&TouchingState,models:&PhysicsModels,hitbox_mesh:&HitboxMesh,style:&StyleModifiers,camera:&PhysicsCamera,input_state:&InputState){
|
||||
match new_move_state{
|
||||
MoveState::Fly=>body.acceleration=Planar64Vec3::ZERO,
|
||||
MoveState::Air=>{
|
||||
//calculate base acceleration
|
||||
let a=touching.base_acceleration(models,style,camera,input_state);
|
||||
//set_acceleration clips according to contacts
|
||||
set_acceleration(body,touching,models,hitbox_mesh,a);
|
||||
},
|
||||
_=>(),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone,Default)]
|
||||
pub struct PhysicsOutputState{
|
||||
@ -955,7 +956,7 @@ impl PhysicsState {
|
||||
self.move_state.next_move_instruction(&self.style.strafe,self.time)
|
||||
}
|
||||
fn set_move_state(&mut self,data:&PhysicsData,move_state:MoveState){
|
||||
move_state_edge(&self.move_state,&move_state,&mut self.body,&self.touching,&data.models,&data.hitbox_mesh,&self.style,&self.camera,&self.input_state);
|
||||
move_state.changed(&mut self.body,&self.touching,&data.models,&data.hitbox_mesh,&self.style,&self.camera,&self.input_state);
|
||||
self.move_state=move_state;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user