aboutsummaryrefslogtreecommitdiffstats
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs78
1 files changed, 36 insertions, 42 deletions
diff --git a/src/client.rs b/src/client.rs
index 007edc6..d111732 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -21,8 +21,6 @@ use bevy::prelude::*;
use bevy::sprite::{MaterialMesh2dBundle, Mesh2dHandle};
use lightyear::client::connection::ConnectionManager;
use lightyear::client::events::*;
-use lightyear::client::input::InputManager;
-use lightyear::client::input::InputSystemSet;
use lightyear::prelude::client::ClientConnection;
use lightyear::prelude::client::NetClient;
use lightyear::prelude::*;
@@ -128,12 +126,7 @@ impl Plugin for ClientPlugin {
move_camera.after(control_camera).after(lock_camera),
),
)
- .add_systems(
- FixedPreUpdate,
- buffer_input
- .in_set(InputSystemSet::BufferInputs)
- .before(choose_attack),
- )
+ .add_systems(PreUpdate, player_input.before(choose_attack))
.add_systems(Last, (gizmos_hover_indicator, gizmos_attack_indicator));
}
}
@@ -224,10 +217,10 @@ fn setup(
});
client.connect().unwrap();
connection_manager
- .send_message::<Channel1, SelectChampion>(SelectChampion(champion.0))
+ .send_message::<Input, SelectChampion>(SelectChampion(champion.0))
.unwrap();
connection_manager
- .send_message::<Channel1, SelectFaction>(SelectFaction(faction.0))
+ .send_message::<Input, SelectFaction>(SelectFaction(faction.0))
.unwrap();
}
@@ -316,17 +309,16 @@ fn move_players(mut players: Query<(&mut Transform, &PlayerPosition), Changed<Pl
}
}
-fn buffer_input(
+fn player_input(
players: Query<(&PlayerId, &PlayerPosition, &Shape)>,
mut attack: ResMut<Attack>,
cameras: Query<(&Camera, &GlobalTransform)>,
client_id: Res<MyClientId>,
keyboard_input: Res<ButtonInput<KeyCode>>,
mouse_input: Res<ButtonInput<MouseButton>>,
- mut input_manager: ResMut<InputManager<Inputs>>,
+ mut connection_manager: ResMut<ConnectionManager<MyProtocol>>,
windows: Query<&Window>,
champion: Res<MyChampion>,
- tick_manager: Res<TickManager>,
) {
if mouse_input.just_pressed(MouseButton::Left) {
match attack.0 {
@@ -340,10 +332,12 @@ fn buffer_input(
return;
};
let direction = world_position - position.0;
- input_manager.add_input(
- Inputs::Imperative(Imperative::AttackDirection(ability_slot, direction)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::AttackDirection(
+ ability_slot,
+ direction,
+ ))
+ .unwrap();
attack.0 = None;
}
Ability::Targeted(_) => {
@@ -356,10 +350,12 @@ fn buffer_input(
) else {
return;
};
- input_manager.add_input(
- Inputs::Imperative(Imperative::AttackTarget(ability_slot, target_player)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::AttackTarget(
+ ability_slot,
+ target_player,
+ ))
+ .unwrap();
attack.0 = None;
}
},
@@ -371,16 +367,17 @@ fn buffer_input(
&players,
&windows,
) {
- input_manager.add_input(
- Inputs::Imperative(Imperative::AttackTarget(AbilitySlot::A, target_player)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::AttackTarget(
+ AbilitySlot::A,
+ target_player,
+ ))
+ .unwrap();
} else {
if let Some(world_position) = cursor_world_position(&windows, &cameras) {
- input_manager.add_input(
- Inputs::Imperative(Imperative::WalkTo(world_position)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::WalkTo(world_position))
+ .unwrap();
}
}
}
@@ -389,18 +386,17 @@ fn buffer_input(
match attack.0 {
None => {
if let Some(world_position) = cursor_world_position(&windows, &cameras) {
- input_manager.add_input(
- Inputs::Imperative(Imperative::WalkTo(world_position)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::WalkTo(world_position))
+ .unwrap();
}
}
Some(_) => {}
}
} else if keyboard_input.just_pressed(KeyCode::KeyS) {
- input_manager.add_input(Inputs::Imperative(Imperative::Idle), tick_manager.tick());
- } else {
- input_manager.add_input(Inputs::None, tick_manager.tick());
+ connection_manager
+ .send_message::<Input, Imperative>(Imperative::Idle)
+ .unwrap();
}
}
@@ -409,8 +405,7 @@ fn choose_attack(
keyboard_input: Res<ButtonInput<KeyCode>>,
mouse_input: Res<ButtonInput<MouseButton>>,
mut attack: ResMut<Attack>,
- mut input_manager: ResMut<InputManager<Inputs>>,
- tick_manager: Res<TickManager>,
+ mut connection_manager: ResMut<ConnectionManager<MyProtocol>>,
) {
if keyboard_input.just_pressed(KeyCode::KeyA) {
attack.0 = Some(AbilitySlot::A);
@@ -436,10 +431,9 @@ fn choose_attack(
match attack.0 {
Some(ability_slot) => match champion.0.ability(ability_slot) {
Ability::Activated(_) => {
- input_manager.add_input(
- Inputs::Activation(Activation::Activate(ability_slot)),
- tick_manager.tick(),
- );
+ connection_manager
+ .send_message::<Input, Activation>(Activation::Activate(ability_slot))
+ .unwrap();
attack.0 = None;
}
_ => {}