Server serialization functions require client
This commit is contained in:
@@ -21,8 +21,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static bool DisableControls;
|
public static bool DisableControls;
|
||||||
|
|
||||||
private ushort netStateID;
|
private UInt32 netStateID;
|
||||||
public ushort NetStateID
|
public UInt32 NetStateID
|
||||||
{
|
{
|
||||||
get { return netStateID; }
|
get { return netStateID; }
|
||||||
}
|
}
|
||||||
@@ -1577,12 +1577,12 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
//TODO: write inputs
|
//TODO: write inputs
|
||||||
}
|
}
|
||||||
public virtual void ServerRead(NetIncomingMessage msg)
|
public virtual void ServerRead(NetIncomingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
//TODO: read inputs
|
//TODO: read inputs
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void ServerWrite(NetOutgoingMessage msg)
|
public virtual void ServerWrite(NetOutgoingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
//TODO: write position, health, etc
|
//TODO: write position, health, etc
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -652,7 +652,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
msg.Write(docked);
|
msg.Write(docked);
|
||||||
|
|
||||||
|
|||||||
@@ -477,7 +477,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
msg.Write(isOpen);
|
msg.Write(isOpen);
|
||||||
msg.WriteRangedSingle(stuck, 0.0f, 100.0f, 8);
|
msg.WriteRangedSingle(stuck, 0.0f, 100.0f, 8);
|
||||||
|
|||||||
@@ -74,8 +74,8 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
private string msg;
|
private string msg;
|
||||||
|
|
||||||
protected ushort netStateID;
|
protected UInt32 netStateID;
|
||||||
public ushort NetStateID
|
public UInt32 NetStateID
|
||||||
{
|
{
|
||||||
get { return netStateID; }
|
get { return netStateID; }
|
||||||
}
|
}
|
||||||
@@ -659,9 +659,9 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void ClientWrite(NetOutgoingMessage msg) { }
|
public virtual void ClientWrite(NetOutgoingMessage msg) { }
|
||||||
public virtual void ServerRead(NetIncomingMessage msg) { }
|
public virtual void ServerRead(NetIncomingMessage msg, Client c) { }
|
||||||
|
|
||||||
public virtual void ServerWrite(NetOutgoingMessage msg) { }
|
public virtual void ServerWrite(NetOutgoingMessage msg, Client c) { }
|
||||||
public virtual void ClientRead(NetIncomingMessage msg) { }
|
public virtual void ClientRead(NetIncomingMessage msg) { }
|
||||||
|
|
||||||
public virtual XElement Save(XElement parentElement)
|
public virtual XElement Save(XElement parentElement)
|
||||||
|
|||||||
@@ -202,13 +202,13 @@ namespace Barotrauma.Items.Components
|
|||||||
msg.Write(IsActive);
|
msg.Write(IsActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
FlowPercentage = msg.ReadRangedInteger(-10, 10) * 10.0f;
|
FlowPercentage = msg.ReadRangedInteger(-10, 10) * 10.0f;
|
||||||
IsActive = msg.ReadBoolean();
|
IsActive = msg.ReadBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||||
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
||||||
|
|||||||
@@ -410,13 +410,13 @@ namespace Barotrauma.Items.Components
|
|||||||
msg.Write(IsActive);
|
msg.Write(IsActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
IsActive = msg.ReadBoolean();
|
IsActive = msg.ReadBoolean();
|
||||||
isActiveTickBox.Selected = IsActive;
|
isActiveTickBox.Selected = IsActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
msg.Write(IsActive);
|
msg.Write(IsActive);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ namespace Barotrauma.Items.Components
|
|||||||
msg.WriteRangedSingle(fissionRate, 0.0f, 100.0f, 8);
|
msg.WriteRangedSingle(fissionRate, 0.0f, 100.0f, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(NetIncomingMessage msg)
|
public override void ServerRead(NetIncomingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
autoTemp = msg.ReadBoolean();
|
autoTemp = msg.ReadBoolean();
|
||||||
ShutDownTemp = msg.ReadRangedSingle(0.0f, 10000.0f, 8);
|
ShutDownTemp = msg.ReadRangedSingle(0.0f, 10000.0f, 8);
|
||||||
@@ -554,7 +554,7 @@ namespace Barotrauma.Items.Components
|
|||||||
FissionRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
FissionRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(NetOutgoingMessage msg)
|
public override void ServerWrite(NetOutgoingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
msg.WriteRangedSingle(temperature, 0.0f, 10000.0f, 16);
|
msg.WriteRangedSingle(temperature, 0.0f, 10000.0f, 16);
|
||||||
|
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
AutoPilot = msg.ReadBoolean();
|
AutoPilot = msg.ReadBoolean();
|
||||||
|
|
||||||
@@ -368,7 +368,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
msg.Write(autoPilot);
|
msg.Write(autoPilot);
|
||||||
|
|
||||||
|
|||||||
@@ -252,12 +252,12 @@ namespace Barotrauma.Items.Components
|
|||||||
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
RechargeSpeed = msg.ReadRangedSingle(0.0f, 1.0f, 8) * maxRechargeSpeed;
|
RechargeSpeed = msg.ReadRangedSingle(0.0f, 1.0f, 8) * maxRechargeSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
float chargeSpeed = MathHelper.Clamp(rechargeSpeed / MaxRechargeSpeed, 0.0f, 1.0f);
|
float chargeSpeed = MathHelper.Clamp(rechargeSpeed / MaxRechargeSpeed, 0.0f, 1.0f);
|
||||||
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
||||||
|
|||||||
@@ -536,7 +536,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg, Barotrauma.Networking.Client c)
|
||||||
{
|
{
|
||||||
Nodes.Clear();
|
Nodes.Clear();
|
||||||
|
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ namespace Barotrauma
|
|||||||
//a dictionary containing lists of the status effects in all the components of the item
|
//a dictionary containing lists of the status effects in all the components of the item
|
||||||
private Dictionary<ActionType, List<StatusEffect>> statusEffectLists;
|
private Dictionary<ActionType, List<StatusEffect>> statusEffectLists;
|
||||||
|
|
||||||
private ushort netStateID;
|
private UInt32 netStateID;
|
||||||
public ushort NetStateID
|
public UInt32 NetStateID
|
||||||
{
|
{
|
||||||
get { return netStateID; }
|
get { return netStateID; }
|
||||||
}
|
}
|
||||||
@@ -1515,7 +1515,7 @@ namespace Barotrauma
|
|||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServerWrite(NetOutgoingMessage msg) { }
|
public void ServerWrite(NetOutgoingMessage msg, Client c) { }
|
||||||
public void ClientRead(NetIncomingMessage msg) { }
|
public void ClientRead(NetIncomingMessage msg) { }
|
||||||
|
|
||||||
public static void Load(XElement element, Submarine submarine)
|
public static void Load(XElement element, Submarine submarine)
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
bool isHorizontal;
|
bool isHorizontal;
|
||||||
|
|
||||||
private ushort netStateID;
|
private UInt32 netStateID;
|
||||||
public ushort NetStateID
|
public UInt32 NetStateID
|
||||||
{
|
{
|
||||||
get { return netStateID; }
|
get { return netStateID; }
|
||||||
}
|
}
|
||||||
@@ -689,7 +689,7 @@ namespace Barotrauma
|
|||||||
return newBody;
|
return newBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServerWrite(NetOutgoingMessage msg)
|
public void ServerWrite(NetOutgoingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < sections.Length; i++)
|
for (int i = 0; i < sections.Length; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -123,8 +123,8 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ushort netStateID;
|
private UInt32 netStateID;
|
||||||
public ushort NetStateID
|
public UInt32 NetStateID
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@@ -962,7 +962,7 @@ namespace Barotrauma
|
|||||||
DockedTo.Clear();
|
DockedTo.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServerWrite(NetOutgoingMessage msg)
|
public void ServerWrite(NetOutgoingMessage msg, Client c)
|
||||||
{
|
{
|
||||||
msg.Write(subBody.Position.X);
|
msg.Write(subBody.Position.X);
|
||||||
msg.Write(subBody.Position.Y);
|
msg.Write(subBody.Position.Y);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace Barotrauma.Networking
|
|||||||
Default, Error, Dead, Server, Radio
|
Default, Error, Dead, Server, Radio
|
||||||
}
|
}
|
||||||
|
|
||||||
class ChatMessage
|
class ChatMessage : IClientSerializable, IServerSerializable
|
||||||
{
|
{
|
||||||
public const float SpeakRange = 2000.0f;
|
public const float SpeakRange = 2000.0f;
|
||||||
|
|
||||||
@@ -40,7 +40,11 @@ namespace Barotrauma.Networking
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static UInt32 LastID = 0;
|
public static UInt32 LastID = 0;
|
||||||
public UInt32 ID = 0;
|
public UInt32 netStateID = 0;
|
||||||
|
public UInt32 NetStateID
|
||||||
|
{
|
||||||
|
get { return netStateID; }
|
||||||
|
}
|
||||||
|
|
||||||
private ChatMessage(string senderName, string text, ChatMessageType type, Character sender)
|
private ChatMessage(string senderName, string text, ChatMessageType type, Character sender)
|
||||||
{
|
{
|
||||||
@@ -54,7 +58,7 @@ namespace Barotrauma.Networking
|
|||||||
TextWithSender = string.IsNullOrWhiteSpace(senderName) ? text : senderName + ": " + text;
|
TextWithSender = string.IsNullOrWhiteSpace(senderName) ? text : senderName + ": " + text;
|
||||||
|
|
||||||
LastID++;
|
LastID++;
|
||||||
ID = LastID;
|
netStateID = LastID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ChatMessage Create(string senderName, string text, ChatMessageType type, Character sender)
|
public static ChatMessage Create(string senderName, string text, ChatMessageType type, Character sender)
|
||||||
@@ -118,5 +122,11 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ClientWrite(NetOutgoingMessage msg) { }
|
||||||
|
public void ServerRead(NetIncomingMessage msg, Client c) { }
|
||||||
|
|
||||||
|
public void ServerWrite(NetOutgoingMessage msg, Client c) { }
|
||||||
|
public void ClientRead(NetIncomingMessage msg) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -590,7 +590,7 @@ namespace Barotrauma.Networking
|
|||||||
outmsg.Write(GameMain.NetLobbyScreen.LastUpdateID);
|
outmsg.Write(GameMain.NetLobbyScreen.LastUpdateID);
|
||||||
outmsg.Write(lastSentChatMsgID);
|
outmsg.Write(lastSentChatMsgID);
|
||||||
ChatMessage removeMsg;
|
ChatMessage removeMsg;
|
||||||
while ((removeMsg=chatMsgQueue.Find(cMsg => cMsg.ID <= lastRecvChatMsgID)) != null)
|
while ((removeMsg=chatMsgQueue.Find(cMsg => cMsg.NetStateID <= lastRecvChatMsgID)) != null)
|
||||||
{
|
{
|
||||||
chatMsgQueue.Remove(removeMsg);
|
chatMsgQueue.Remove(removeMsg);
|
||||||
}
|
}
|
||||||
@@ -598,7 +598,7 @@ namespace Barotrauma.Networking
|
|||||||
foreach (ChatMessage cMsg in chatMsgQueue)
|
foreach (ChatMessage cMsg in chatMsgQueue)
|
||||||
{
|
{
|
||||||
outmsg.Write((byte)ClientNetObject.CHAT_MESSAGE);
|
outmsg.Write((byte)ClientNetObject.CHAT_MESSAGE);
|
||||||
outmsg.Write(cMsg.ID);
|
outmsg.Write(cMsg.NetStateID);
|
||||||
outmsg.Write(cMsg.Text);
|
outmsg.Write(cMsg.Text);
|
||||||
}
|
}
|
||||||
outmsg.Write((byte)ClientNetObject.END_OF_MESSAGE);
|
outmsg.Write((byte)ClientNetObject.END_OF_MESSAGE);
|
||||||
|
|||||||
@@ -656,10 +656,10 @@ namespace Barotrauma.Networking
|
|||||||
if (gc.UserData is ChatMessage)
|
if (gc.UserData is ChatMessage)
|
||||||
{
|
{
|
||||||
ChatMessage cMsg = (ChatMessage)gc.UserData;
|
ChatMessage cMsg = (ChatMessage)gc.UserData;
|
||||||
if (cMsg.ID > c.lastRecvChatMsgID)
|
if (cMsg.NetStateID > c.lastRecvChatMsgID)
|
||||||
{
|
{
|
||||||
outmsg.Write((byte)ServerNetObject.CHAT_MESSAGE);
|
outmsg.Write((byte)ServerNetObject.CHAT_MESSAGE);
|
||||||
outmsg.Write(cMsg.ID);
|
outmsg.Write(cMsg.NetStateID);
|
||||||
outmsg.Write((byte)cMsg.Type);
|
outmsg.Write((byte)cMsg.Type);
|
||||||
outmsg.Write(cMsg.SenderName);
|
outmsg.Write(cMsg.SenderName);
|
||||||
outmsg.Write(cMsg.Text);
|
outmsg.Write(cMsg.Text);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Lidgren.Network;
|
using System;
|
||||||
|
using Lidgren.Network;
|
||||||
|
|
||||||
namespace Barotrauma.Networking
|
namespace Barotrauma.Networking
|
||||||
{
|
{
|
||||||
@@ -7,10 +8,10 @@ namespace Barotrauma.Networking
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
interface IClientSerializable
|
interface IClientSerializable
|
||||||
{
|
{
|
||||||
ushort NetStateID { get; }
|
UInt32 NetStateID { get; }
|
||||||
|
|
||||||
void ClientWrite(NetOutgoingMessage msg);
|
void ClientWrite(NetOutgoingMessage msg);
|
||||||
void ServerRead(NetIncomingMessage msg);
|
void ServerRead(NetIncomingMessage msg, Client c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -18,9 +19,9 @@ namespace Barotrauma.Networking
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
interface IServerSerializable
|
interface IServerSerializable
|
||||||
{
|
{
|
||||||
ushort NetStateID { get; }
|
UInt32 NetStateID { get; }
|
||||||
|
|
||||||
void ServerWrite(NetOutgoingMessage msg);
|
void ServerWrite(NetOutgoingMessage msg, Client c);
|
||||||
void ClientRead(NetIncomingMessage msg);
|
void ClientRead(NetIncomingMessage msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user