From ab675360c0005718a3c9b8b5e7962af897269c04 Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Mon, 18 Mar 2024 03:28:49 +0100 Subject: chore: play with network settings --- src/shared/player.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/shared/player.rs (limited to 'src/shared/player.rs') diff --git a/src/shared/player.rs b/src/shared/player.rs new file mode 100644 index 0000000..a886499 --- /dev/null +++ b/src/shared/player.rs @@ -0,0 +1,45 @@ +use crate::shared::*; + +#[derive(Bundle)] +pub struct PlayerBundle { + id: PlayerId, + position: PlayerPosition, + color: PlayerColor, + imperative: Imperative, + cooldown: Cooldown, + health: Health, + champion: Champion, + replicate: Replicate, +} + +impl PlayerBundle { + pub fn new(id: ClientId, position: Vec2, color: Color) -> Self { + let mut replicate = Replicate { + replication_group: ReplicationGroup::default().set_priority(10.), + ..Default::default() + }; + replicate.enable_replicate_once::(); + replicate.enable_replicate_once::(); + replicate.target::(NetworkTarget::Single(id)); + replicate.target::(NetworkTarget::Single(id)); + PlayerBundle { + id: PlayerId(id), + position: PlayerPosition(position), + color: PlayerColor(color), + imperative: Imperative::Idle, + cooldown: Cooldown::default(), + health: Health::default(), + champion: Champion::default(), + replicate, + } + } +} + +#[derive(Component, Message, Serialize, Deserialize, Clone, Copy, Debug, PartialEq)] +pub struct PlayerId(pub ClientId); + +#[derive(Component, Message, Serialize, Deserialize, Clone, Copy, Debug, PartialEq)] +pub struct PlayerPosition(pub Vec2); + +#[derive(Component, Message, Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct PlayerColor(pub Color); -- cgit v1.2.3