From 69584a302d132dc2bcc3837437e7347a3e0a5114 Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Thu, 14 Mar 2024 06:43:53 +0100 Subject: feat: players can teleport --- src/protocol.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/protocol.rs (limited to 'src/protocol.rs') diff --git a/src/protocol.rs b/src/protocol.rs new file mode 100644 index 0000000..a9e2086 --- /dev/null +++ b/src/protocol.rs @@ -0,0 +1,47 @@ +use crate::shared::*; +use bevy::prelude::*; +use lightyear::prelude::*; +use serde::Deserialize; +use serde::Serialize; + +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +pub enum Inputs { + Teleport(Vec2), + None, +} +impl UserAction for Inputs {} + +#[derive(Message, Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct Message1(pub usize); + +#[message_protocol(protocol = "MyProtocol")] +pub enum Messages { + Message1(Message1), +} + +#[component_protocol(protocol = "MyProtocol")] +pub enum Components { + #[sync(once)] + PlayerId(PlayerId), + PlayerPosition(PlayerPosition), + PlayerColor(PlayerColor), +} + +#[derive(Channel)] +struct Channel1; + +protocolize! { + Self = MyProtocol, + Message = Messages, + Component = Components, + Input = Inputs, +} + +pub fn protocol() -> MyProtocol { + let mut protocol = MyProtocol::default(); + protocol.add_channel::(ChannelSettings { + mode: ChannelMode::OrderedReliable(ReliableSettings::default()), + ..Default::default() + }); + protocol +} -- cgit v1.2.3