diff --git a/assets/fighters/test/icon.png b/assets/fighters/test/icon.png new file mode 100644 index 0000000..89873e2 Binary files /dev/null and b/assets/fighters/test/icon.png differ diff --git a/src/match_loading.rs b/src/match_loading.rs index 630f4cf..2a309f3 100644 --- a/src/match_loading.rs +++ b/src/match_loading.rs @@ -8,9 +8,7 @@ use bevy_ggrs::prelude::Session; use serde::{Deserialize, Serialize}; use crate::{ - AppState, - args::Args, - fighter::{ + AppState, args::Args, fighter::{ FighterId, FighterRoster, animation::AnimKind, attack::{AttackKind, FighterAttackScriptAssets}, @@ -18,11 +16,7 @@ use crate::{ manifest::{FighterManifest, FighterManifestRegistry}, spawn_fighter, visual::FighterAnimations, - }, - math::{int::FGi32, vec::FGVec2}, - netcode::{GGRSCfg, session::create_session}, - scripting::FighterAttackScript, - stage::{ + }, input::{LocalInputAssignments, LocalInputSource}, math::{int::FGi32, vec::FGVec2}, netcode::{GGRSCfg, session::create_session}, scripting::FighterAttackScript, stage::{ self, manifest::{StageId, StageManifest, StageManifestRegistry}, }, @@ -146,6 +140,8 @@ pub fn initiate_match( pub fn initiate_default_match( mut commands: Commands, args: Res, + gamepads: Query>, + mut assigments: ResMut, mut next_state: ResMut>, completed: Option>, ) { @@ -176,6 +172,12 @@ pub fn initiate_default_match( }) .collect(); + assigments.push((0, LocalInputSource::Keyboard)); + + for (idx, entity) in gamepads.iter().take(args.players-1).enumerate() { + assigments.push((idx+1, LocalInputSource::Gamepad(entity))); + } + initiate_match( &mut commands, &mut next_state,