Some classes for syncing entity state changes. Similar to the NetworkEvents in the old netcode, but the logic is split into separate classes which prevent the server from reading updates for entities that aren't IClientSerializable.
todo: add NetEntityEventManagers to server & client, some logic to prevent sending events that don't need to be sent (e.g. duplicate event state updates)
This commit is contained in:
@@ -648,7 +648,7 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
msg.Write(docked);
|
||||
|
||||
|
||||
@@ -493,7 +493,7 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
msg.Write(isOpen);
|
||||
msg.WriteRangedSingle(stuck, 0.0f, 100.0f, 8);
|
||||
|
||||
@@ -662,10 +662,10 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void ClientWrite(NetOutgoingMessage msg) { }
|
||||
public virtual void ClientWrite(NetBuffer msg) { }
|
||||
public virtual void ServerRead(NetIncomingMessage msg, Client c) { }
|
||||
|
||||
public virtual void ServerWrite(NetOutgoingMessage msg, Client c) { }
|
||||
public virtual void ServerWrite(NetBuffer msg, Client c) { }
|
||||
public virtual void ClientRead(NetIncomingMessage msg, float sendingTime) { }
|
||||
|
||||
public virtual XElement Save(XElement parentElement)
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace Barotrauma.Items.Components
|
||||
if (!IsActive) currPowerConsumption = 0.0f;
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
|
||||
{
|
||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
||||
@@ -209,7 +209,7 @@ namespace Barotrauma.Items.Components
|
||||
IsActive = msg.ReadBoolean();
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
||||
|
||||
@@ -411,7 +411,7 @@ namespace Barotrauma.Items.Components
|
||||
if (screenOverlay != null) screenOverlay.Remove();
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
|
||||
{
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
@@ -422,7 +422,7 @@ namespace Barotrauma.Items.Components
|
||||
isActiveTickBox.Selected = IsActive;
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public override void ClientWrite(NetOutgoingMessage msg)
|
||||
public override void ClientWrite(NetBuffer msg)
|
||||
{
|
||||
msg.Write(autoTemp);
|
||||
msg.WriteRangedSingle(shutDownTemp, 0.0f, 10000.0f, 8);
|
||||
@@ -556,7 +556,7 @@ namespace Barotrauma.Items.Components
|
||||
FissionRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||
}
|
||||
|
||||
public override void ServerWrite(NetOutgoingMessage msg, Client c)
|
||||
public override void ServerWrite(NetBuffer msg, Client c)
|
||||
{
|
||||
msg.WriteRangedSingle(temperature, 0.0f, 10000.0f, 16);
|
||||
|
||||
|
||||
@@ -443,7 +443,7 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
|
||||
{
|
||||
msg.Write(autoPilot);
|
||||
|
||||
@@ -503,7 +503,7 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
msg.Write(autoPilot);
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ namespace Barotrauma.Items.Components
|
||||
GuiFrame.Update(1.0f / 60.0f);
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
|
||||
{
|
||||
float chargeSpeed = MathHelper.Clamp(rechargeSpeed / MaxRechargeSpeed, 0.0f, 1.0f);
|
||||
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
||||
@@ -260,7 +260,7 @@ namespace Barotrauma.Items.Components
|
||||
RechargeSpeed = msg.ReadRangedSingle(0.0f, 1.0f, 8) * maxRechargeSpeed;
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg, Barotrauma.Networking.Client c)
|
||||
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
|
||||
{
|
||||
float chargeSpeed = MathHelper.Clamp(rechargeSpeed / MaxRechargeSpeed, 0.0f, 1.0f);
|
||||
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
|
||||
|
||||
@@ -532,7 +532,7 @@ namespace Barotrauma.Items.Components
|
||||
base.RemoveComponentSpecific();
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
|
||||
{
|
||||
msg.Write((byte)Math.Min(Nodes.Count, 255));
|
||||
for (int i = 0; i < Math.Min(Nodes.Count, 255); i++)
|
||||
|
||||
@@ -1579,11 +1579,11 @@ namespace Barotrauma
|
||||
|
||||
return element;
|
||||
}
|
||||
|
||||
public void ServerWrite(NetOutgoingMessage msg, Client c) { }
|
||||
|
||||
public void ServerWrite(NetBuffer msg, Client c) { }
|
||||
public void ClientRead(NetIncomingMessage msg, float sendingTime) { }
|
||||
|
||||
public void WriteSpawnData(NetOutgoingMessage msg)
|
||||
public void WriteSpawnData(NetBuffer msg)
|
||||
{
|
||||
if (GameMain.Server == null) return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user