Skip to content

Instantly share code, notes, and snippets.

@TuckerBMorgan
Created March 20, 2023 00:49
Show Gist options
  • Select an option

  • Save TuckerBMorgan/17e25fbfcb10a3c6e5221dd5f7e4a99e to your computer and use it in GitHub Desktop.

Select an option

Save TuckerBMorgan/17e25fbfcb10a3c6e5221dd5f7e4a99e to your computer and use it in GitHub Desktop.
Macro to replace
#[macro_export]
macro_rules! animation_state_for_character_state_libarry_macro {
( $( $character_state:ident, $crouched:ident, $standing:ident, $jumping:ident),* ) => {
let mut animation_for_character_state_library = HashMap::new();
$(
animation_for_character_state_library.insert(CharacterState::$character_state, AnimationStateForCharacterState::new(AnimationState::$crouched,AnimationState::$standing,AnimationState::$jumping));
)*
}
}
fn main() {
let mut animation_for_character_state_library = HashMap::new();
animation_for_character_state_library.insert(CharacterState::Idle, AnimationStateForCharacterState::new(AnimationState::Crouched, AnimationState::Idle, AnimationState::Idle));
animation_for_character_state_library.insert(CharacterState::ForwardRun, AnimationStateForCharacterState::new(AnimationState::ForwardRun, AnimationState::ForwardRun, AnimationState::ForwardRun));
animation_for_character_state_library.insert(CharacterState::BackwardRun, AnimationStateForCharacterState::new(AnimationState::BackwardRun, AnimationState::BackwardRun, AnimationState::BackwardRun));
animation_for_character_state_library.insert(CharacterState::LightHitRecovery, AnimationStateForCharacterState::new(AnimationState::LightHitRecovery, AnimationState::LightHitRecovery, AnimationState::LightHitRecovery));
animation_for_character_state_library.insert(CharacterState::Blocking, AnimationStateForCharacterState::new(AnimationState::Blocking, AnimationState::Blocking, AnimationState::Blocking));
animation_for_character_state_library.insert(CharacterState::Crouching, AnimationStateForCharacterState::new(AnimationState::Crouching, AnimationState::Crouching, AnimationState::Crouching));
animation_for_character_state_library.insert(CharacterState::LightAttack, AnimationStateForCharacterState::new(AnimationState::LightCrouchAttack, AnimationState::LightAttack, AnimationState::LightJumpingKick));
animation_for_character_state_library.insert(CharacterState::MediumAttack, AnimationStateForCharacterState::new(AnimationState::LightCrouchAttack, AnimationState::MediumAttack, AnimationState::MediumAttack));
animation_for_character_state_library.insert(CharacterState::HeavyAttack, AnimationStateForCharacterState::new(AnimationState::HeavyCrouchingAttack, AnimationState::HeavyAttack, AnimationState::HeavyAttack));
animation_for_character_state_library.insert(CharacterState::LightKick, AnimationStateForCharacterState::new(AnimationState::LightCrouchKick, AnimationState::LightKick, AnimationState::LightKick));
animation_for_character_state_library.insert(CharacterState::MediumKick, AnimationStateForCharacterState::new(AnimationState::MediumCrouchKick, AnimationState::MediumKick, AnimationState::MediumKick));
animation_for_character_state_library.insert(CharacterState::HeavyKick, AnimationStateForCharacterState::new(AnimationState::HeavyCrouchKick, AnimationState::HeavyKick, AnimationState::HeavyKick));
animation_for_character_state_library.insert(CharacterState::ForwardDash, AnimationStateForCharacterState::new(AnimationState::ForwardDash, AnimationState::ForwardDash, AnimationState::ForwardDash));
animation_for_character_state_library.insert(CharacterState::BackwardDash, AnimationStateForCharacterState::new(AnimationState::BackwardDash, AnimationState::BackwardDash, AnimationState::BackwardDash));
animation_for_character_state_library.insert(CharacterState::Special1, AnimationStateForCharacterState::new(AnimationState::Special1, AnimationState::Special1, AnimationState::Special1));
animation_for_character_state_library.insert(CharacterState::Won, AnimationStateForCharacterState::new(AnimationState::Won, AnimationState::Won, AnimationState::Won));
animation_for_character_state_library.insert(CharacterState::Lost, AnimationStateForCharacterState::new(AnimationState::Lost, AnimationState::Lost, AnimationState::Lost));
animation_for_character_state_library.insert(CharacterState::Jump, AnimationStateForCharacterState::new(AnimationState::Jump, AnimationState::Jump, AnimationState::Jump));
animation_for_character_state_library.insert(CharacterState::Parry, AnimationStateForCharacterState::new(AnimationState::Parry, AnimationState::Parry, AnimationState::Parry));
animation_for_character_state_library.insert(CharacterState::Parried, AnimationStateForCharacterState::new(AnimationState::LightHitRecovery, AnimationState::LightHitRecovery, AnimationState::LightHitRecovery));
animation_for_character_state_library.insert(CharacterState::ForwardJump, AnimationStateForCharacterState::new(AnimationState::ForwardJump, AnimationState::ForwardJump, AnimationState::ForwardJump));
animation_for_character_state_library.insert(CharacterState::Dizzie, AnimationStateForCharacterState::new(AnimationState::Dizzie, AnimationState::Dizzie, AnimationState::Dizzie));
animation_state_for_character_state_libarry_macro!(Idle, Crouched, Idle, Idle);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment