diff options
Diffstat (limited to 'core/src/data/controller/controller_data.rs')
| -rw-r--r-- | core/src/data/controller/controller_data.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/core/src/data/controller/controller_data.rs b/core/src/data/controller/controller_data.rs new file mode 100644 index 0000000..a3f1c02 --- /dev/null +++ b/core/src/data/controller/controller_data.rs @@ -0,0 +1,29 @@ +use std::sync::{Arc, Mutex}; +use crate::data::controller::controller_runtime::ControllerRuntime; +use crate::data::player::player_data::Player; + +/// Controller-side Data +/// Describes the basic information of the controller side +#[derive(Default)] +pub struct ControllerData { + + /// Player bound to the controller side + pub(crate) player: Player +} + +impl ControllerData { + + pub fn bind_player(&mut self, player: Player) -> &mut ControllerData { + self.player = player; + self + } + + /// Build the controller-side runtime using controller data + pub fn runtime(self) -> Arc<Mutex<ControllerRuntime>> { + let runtime = ControllerRuntime { + player: self.player, + ..Default::default() + }; + Arc::new(Mutex::new(runtime)) + } +}
\ No newline at end of file |
