bones_framework/networking/
input.rs1use crate::input::{Controls, DenseControl, DenseInput};
5
6use super::NetworkInputStatus;
7
8pub trait NetworkControls<'a, Dense: DenseInput, Control>: Controls<'a, Control> {
10 fn network_update(
14 &mut self,
15 player_idx: usize,
16 dense_input: &Dense,
17 status: NetworkInputStatus,
18 );
19
20 fn get_dense_control(&self, player_idx: usize) -> Dense;
22}
23
24impl<'a, T, Dense, Control> NetworkControls<'a, Dense, Control> for T
25where
26 Dense: DenseInput,
27 Control: DenseControl<Dense>,
28 T: Controls<'a, Control>,
29{
30 fn network_update(
32 &mut self,
33 player_idx: usize,
34 dense_input: &Dense,
35 _status: NetworkInputStatus,
36 ) {
37 self.get_control_mut(player_idx)
38 .update_from_dense(dense_input);
39 }
40
41 fn get_dense_control(&self, player_idx: usize) -> Dense {
42 self.get_control(player_idx).get_dense_input()
43 }
44}