Implemented some of the itemcomponent read/write methods, made submarines server serializable
This commit is contained in:
@@ -194,6 +194,32 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
if (!IsActive) currPowerConsumption = 0.0f;
|
||||
}
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
|
||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
FlowPercentage = msg.ReadRangedInteger(-10, 10) * 10.0f;
|
||||
IsActive = msg.ReadBoolean();
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger(-10, 10, (int)(flowPercentage / 10.0f));
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
|
||||
public override void ClientRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
FlowPercentage = msg.ReadRangedInteger(-10, 10) * 10.0f;
|
||||
IsActive = msg.ReadBoolean();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,9 +403,29 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
if (pingCircle!=null) pingCircle.Remove();
|
||||
if (screenOverlay != null) screenOverlay.Remove();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
|
||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
IsActive = msg.ReadBoolean();
|
||||
isActiveTickBox.Selected = IsActive;
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
msg.Write(IsActive);
|
||||
}
|
||||
|
||||
public override void ClientRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
IsActive = msg.ReadBoolean();
|
||||
isActiveTickBox.Selected = IsActive;
|
||||
}
|
||||
}
|
||||
|
||||
class RadarBlip
|
||||
|
||||
@@ -535,6 +535,46 @@ namespace Barotrauma.Items.Components
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void ClientWrite(NetOutgoingMessage msg)
|
||||
{
|
||||
msg.Write(autoTemp);
|
||||
msg.WriteRangedSingle(shutDownTemp, 0.0f, 10000.0f, 8);
|
||||
|
||||
msg.WriteRangedSingle(coolingRate, 0.0f, 100.0f, 8);
|
||||
msg.WriteRangedSingle(fissionRate, 0.0f, 100.0f, 8);
|
||||
}
|
||||
|
||||
public override void ServerRead(NetIncomingMessage msg)
|
||||
{
|
||||
autoTemp = msg.ReadBoolean();
|
||||
ShutDownTemp = msg.ReadRangedSingle(0.0f, 10000.0f, 8);
|
||||
|
||||
CoolingRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||
FissionRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||
}
|
||||
|
||||
public override void ServerWrite(NetOutgoingMessage msg)
|
||||
{
|
||||
msg.WriteRangedSingle(temperature, 0.0f, 10000.0f, 16);
|
||||
|
||||
msg.Write(autoTemp);
|
||||
msg.WriteRangedSingle(shutDownTemp, 0.0f, 10000.0f, 8);
|
||||
|
||||
msg.WriteRangedSingle(coolingRate, 0.0f, 100.0f, 8);
|
||||
msg.WriteRangedSingle(fissionRate, 0.0f, 100.0f, 8);
|
||||
}
|
||||
|
||||
public override void ClientRead(NetIncomingMessage msg)
|
||||
{
|
||||
Temperature = msg.ReadRangedSingle(0.0f, 10000.0f, 16);
|
||||
|
||||
autoTemp = msg.ReadBoolean();
|
||||
ShutDownTemp = msg.ReadRangedSingle(0.0f, 10000.0f, 8);
|
||||
|
||||
CoolingRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||
FissionRate = msg.ReadRangedSingle(0.0f, 100.0f, 8);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,8 +291,6 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
TargetVelocity = targetSpeed/5.0f;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private bool ToggleMaintainPosition(GUITickBox tickBox)
|
||||
@@ -329,6 +327,90 @@ namespace Barotrauma.Items.Components
|
||||
base.ReceiveSignal(stepsTaken, signal, connection, sender, power);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public override void ClientWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
msg.Write(autoPilot);
|
||||
|
||||
if (!autoPilot)
|
||||
{
|
||||
//no need to write steering info if autopilot is controlling
|
||||
msg.Write(targetVelocity.X);
|
||||
msg.Write(targetVelocity.Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(posToMaintain != null);
|
||||
}
|
||||
}
|
||||
|
||||
public override void ServerRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
AutoPilot = msg.ReadBoolean();
|
||||
|
||||
if (!AutoPilot)
|
||||
{
|
||||
targetVelocity = new Vector2(msg.ReadFloat(), msg.ReadFloat());
|
||||
}
|
||||
else
|
||||
{
|
||||
bool maintainPos = msg.ReadBoolean();
|
||||
if (posToMaintain == null && maintainPos)
|
||||
{
|
||||
posToMaintain = item.Submarine.WorldPosition;
|
||||
maintainPosTickBox.Selected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
posToMaintain = null;
|
||||
maintainPosTickBox.Selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void ServerWrite(Lidgren.Network.NetOutgoingMessage msg)
|
||||
{
|
||||
msg.Write(autoPilot);
|
||||
|
||||
if (!autoPilot)
|
||||
{
|
||||
//no need to write steering info if autopilot is controlling
|
||||
msg.Write(targetVelocity.X);
|
||||
msg.Write(targetVelocity.Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(posToMaintain != null);
|
||||
if (posToMaintain != null)
|
||||
{
|
||||
msg.Write(((Vector2)posToMaintain).X);
|
||||
msg.Write(((Vector2)posToMaintain).Y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void ClientRead(Lidgren.Network.NetIncomingMessage msg)
|
||||
{
|
||||
AutoPilot = msg.ReadBoolean();
|
||||
|
||||
if (!AutoPilot)
|
||||
{
|
||||
targetVelocity = new Vector2(msg.ReadFloat(), msg.ReadFloat());
|
||||
}
|
||||
else
|
||||
{
|
||||
bool maintainPos = msg.ReadBoolean();
|
||||
if (maintainPos)
|
||||
{
|
||||
posToMaintain = new Vector2(msg.ReadSingle(), msg.ReadSingle());
|
||||
maintainPosTickBox.Selected = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
posToMaintain = null;
|
||||
maintainPosTickBox.Selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user