Server sends ServerEntityEvents to clients, NetEntityEvents can contain an object array which will be passed to the serializable entity (now only used for ItemComponent indices)

This commit is contained in:
Regalis
2016-11-13 13:56:48 +02:00
parent c314b37029
commit 498c72c64a
24 changed files with 133 additions and 43 deletions
@@ -648,7 +648,7 @@ namespace Barotrauma.Items.Components
}
}
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
msg.Write(docked);
+2 -2
View File
@@ -489,11 +489,11 @@ namespace Barotrauma.Items.Components
if (sendNetworkMessage)
{
item.NewComponentEvent(this, false, true);
item.CreateServerEvent(this);
}
}
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
msg.Write(isOpen);
msg.WriteRangedSingle(stuck, 0.0f, 100.0f, 8);
@@ -662,10 +662,10 @@ namespace Barotrauma.Items.Components
}
}
public virtual void ClientWrite(NetBuffer msg) { }
public virtual void ClientWrite(NetBuffer msg, object[] extraData = null) { }
public virtual void ServerRead(NetIncomingMessage msg, Client c) { }
public virtual void ServerWrite(NetBuffer msg, Client c) { }
public virtual void ServerWrite(NetBuffer msg, Client c, object[] extraData = null) { }
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.NetBuffer msg)
public override void ClientWrite(Lidgren.Network.NetBuffer msg, object[] extraData = null)
{
//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.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
//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.NetBuffer msg)
public override void ClientWrite(Lidgren.Network.NetBuffer msg, object[] extraData = null)
{
msg.Write(IsActive);
}
@@ -422,7 +422,7 @@ namespace Barotrauma.Items.Components
isActiveTickBox.Selected = IsActive;
}
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
msg.Write(IsActive);
}
@@ -538,7 +538,7 @@ namespace Barotrauma.Items.Components
}
}
public override void ClientWrite(NetBuffer msg)
public override void ClientWrite(NetBuffer msg, object[] extraData = null)
{
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(NetBuffer msg, Client c)
public override void ServerWrite(NetBuffer msg, Client c, object[] extraData = null)
{
msg.WriteRangedSingle(temperature, 0.0f, 10000.0f, 16);
@@ -443,7 +443,7 @@ namespace Barotrauma.Items.Components
}
}
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
public override void ClientWrite(Lidgren.Network.NetBuffer msg, object[] extraData = null)
{
msg.Write(autoPilot);
@@ -503,7 +503,7 @@ namespace Barotrauma.Items.Components
}
}
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
msg.Write(autoPilot);
@@ -249,7 +249,7 @@ namespace Barotrauma.Items.Components
GuiFrame.Update(1.0f / 60.0f);
}
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
public override void ClientWrite(Lidgren.Network.NetBuffer msg, object[] extraData = null)
{
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.NetBuffer msg, Barotrauma.Networking.Client c)
public override void ServerWrite(Lidgren.Network.NetBuffer msg, Barotrauma.Networking.Client c, object[] extraData = null)
{
float chargeSpeed = MathHelper.Clamp(rechargeSpeed / MaxRechargeSpeed, 0.0f, 1.0f);
msg.WriteRangedSingle(chargeSpeed, 0.0f, 1.0f, 8);
@@ -286,7 +286,7 @@ namespace Barotrauma.Items.Components
if (!PlayerInput.LeftButtonHeld())
{
panel.Item.NewComponentEvent(panel, true, true);
//panel.Item.CreateServerEvent(panel, true, true);
//draggingConnected.Drop(Character);
draggingConnected = null;
}
@@ -532,7 +532,7 @@ namespace Barotrauma.Items.Components
base.RemoveComponentSpecific();
}
public override void ClientWrite(Lidgren.Network.NetBuffer msg)
public override void ClientWrite(Lidgren.Network.NetBuffer msg, object[] extraData = null)
{
msg.Write((byte)Math.Min(Nodes.Count, 255));
for (int i = 0; i < Math.Min(Nodes.Count, 255); i++)