using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity.Networking.Transport; namespace KairoEngine.Multiplayer { public class NetMsg : IComparable { public virtual uint code { get { return (uint)NetOpCode.Generic; }} public virtual void Serialize(ref DataStreamWriter writer) { writer.WriteByte((byte)0); } public virtual void Deserialize(ref DataStreamReader reader) { } /// Send a net message from the server to a client. /// The server sending the message /// The actual message to be sent /// The driver writer object /// The server connection id for the recipient of this message public virtual void SendMessage(ServerBehaviour server, NetMsg netMsg, ref DataStreamWriter writer, int clientId) {} /// Send a net message from a client to the server. /// The client sending the message /// The actual message to be sent /// The driver writer object public virtual void SendMessage(ClientBehaviour client, NetMsg netMsg, ref DataStreamWriter writer) {} public virtual NetMsg ReceiveMessage(ServerBehaviour server, ref DataStreamReader stream, int clientId = -1) => null; public virtual NetMsg ReceiveMessage(ClientBehaviour client, ref DataStreamReader stream) => null; public virtual void ReadMessage(ServerBehaviour server, int clientId = -1) {} public virtual void ReadMessage(ClientBehaviour client) {} public int CompareTo(NetMsg other) { throw new NotImplementedException(); } } }