Unstable v0.19.3.0
This commit is contained in:
@@ -6,11 +6,11 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(docked);
|
||||
msg.WriteBoolean(docked);
|
||||
if (docked)
|
||||
{
|
||||
msg.Write(DockingTarget.item.ID);
|
||||
msg.Write(IsLocked);
|
||||
msg.WriteUInt16(DockingTarget.item.ID);
|
||||
msg.WriteBoolean(IsLocked);
|
||||
}
|
||||
}
|
||||
public void ServerEventRead(IReadMessage msg, Client c)
|
||||
|
||||
@@ -38,13 +38,13 @@ namespace Barotrauma.Items.Components
|
||||
bool forcedOpen = TryExtractEventData<EventData>(extraData, out var eventData) && eventData.ForcedOpen;
|
||||
base.ServerEventWrite(msg, c, extraData);
|
||||
|
||||
msg.Write(isOpen);
|
||||
msg.Write(isBroken);
|
||||
msg.Write(forcedOpen); //forced open
|
||||
msg.Write(isStuck);
|
||||
msg.Write(isJammed);
|
||||
msg.WriteBoolean(isOpen);
|
||||
msg.WriteBoolean(isBroken);
|
||||
msg.WriteBoolean(forcedOpen); //forced open
|
||||
msg.WriteBoolean(isStuck);
|
||||
msg.WriteBoolean(isJammed);
|
||||
msg.WriteRangedSingle(stuck, 0.0f, 100.0f, 8);
|
||||
msg.Write(lastUser == null ? (UInt16)0 : lastUser.ID);
|
||||
msg.WriteUInt16(lastUser == null ? (UInt16)0 : lastUser.ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,14 +6,14 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(tainted);
|
||||
msg.WriteBoolean(tainted);
|
||||
if (tainted)
|
||||
{
|
||||
msg.Write(selectedTaintedEffect?.UintIdentifier ?? 0);
|
||||
msg.WriteUInt32(selectedTaintedEffect?.UintIdentifier ?? 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(selectedEffect?.UintIdentifier ?? 0);
|
||||
msg.WriteUInt32(selectedEffect?.UintIdentifier ?? 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.WriteRangedSingle(Health, 0f, (float) MaxHealth, 8);
|
||||
msg.WriteRangedSingle(Health, 0f, (float)MaxHealth, 8);
|
||||
if (TryExtractEventData(extraData, out EventData eventData))
|
||||
{
|
||||
int offset = eventData.Offset;
|
||||
@@ -48,11 +48,11 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
VineTile vine = Vines[i];
|
||||
var (x, y) = vine.Position;
|
||||
msg.WriteRangedInteger((byte) vine.Type, 0b0000, 0b1111);
|
||||
msg.WriteRangedInteger((byte)vine.Type, 0b0000, 0b1111);
|
||||
msg.WriteRangedInteger(vine.FlowerConfig.Serialize(), 0, 0xFFF);
|
||||
msg.WriteRangedInteger(vine.LeafConfig.Serialize(), 0, 0xFFF);
|
||||
msg.Write((byte) (x / VineTile.Size));
|
||||
msg.Write((byte) (y / VineTile.Size));
|
||||
msg.WriteByte((byte)(x / VineTile.Size));
|
||||
msg.WriteByte((byte)(y / VineTile.Size));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -10,13 +10,13 @@ namespace Barotrauma.Items.Components
|
||||
base.ServerEventWrite(msg, c, extraData);
|
||||
|
||||
bool writeAttachData = attachable && body != null;
|
||||
msg.Write(writeAttachData);
|
||||
msg.WriteBoolean(writeAttachData);
|
||||
if (!writeAttachData) { return; }
|
||||
|
||||
msg.Write(Attached);
|
||||
msg.Write(body.SimPosition.X);
|
||||
msg.Write(body.SimPosition.Y);
|
||||
msg.Write(item.Submarine?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteBoolean(Attached);
|
||||
msg.WriteSingle(body.SimPosition.X);
|
||||
msg.WriteSingle(body.SimPosition.Y);
|
||||
msg.WriteUInt16(item.Submarine?.ID ?? Entity.NullEntityID);
|
||||
}
|
||||
|
||||
public void ServerEventRead(IReadMessage msg, Client c)
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(deattachTimer);
|
||||
msg.WriteSingle(deattachTimer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(Text);
|
||||
msg.WriteString(Text);
|
||||
lastSentText = Text;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(IsActive);
|
||||
msg.WriteBoolean(IsActive);
|
||||
lastSentState = IsActive;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(State);
|
||||
msg.Write(user == null ? (ushort)0 : user.ID);
|
||||
msg.WriteBoolean(State);
|
||||
msg.WriteUInt16(user == null ? (ushort)0 : user.ID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(user?.ID ?? 0);
|
||||
msg.Write(IsActive);
|
||||
msg.Write(progressTimer);
|
||||
msg.WriteUInt16(user?.ID ?? 0);
|
||||
msg.WriteBoolean(IsActive);
|
||||
msg.WriteSingle(progressTimer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
//force can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger((int)(targetForce / 10.0f), -10, 10);
|
||||
msg.Write(User == null ? Entity.NullEntityID : User.ID);
|
||||
msg.WriteUInt16(User == null ? Entity.NullEntityID : User.ID);
|
||||
}
|
||||
|
||||
public void ServerEventRead(IReadMessage msg, Client c)
|
||||
|
||||
@@ -55,18 +55,18 @@ namespace Barotrauma.Items.Components
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
var componentData = ExtractEventData<EventData>(extraData);
|
||||
msg.Write((byte)componentData.State);
|
||||
msg.Write(timeUntilReady);
|
||||
msg.WriteByte((byte)componentData.State);
|
||||
msg.WriteSingle(timeUntilReady);
|
||||
uint recipeHash = fabricatedItem?.RecipeHash ?? 0;
|
||||
msg.Write(recipeHash);
|
||||
msg.WriteUInt32(recipeHash);
|
||||
UInt16 userId = fabricatedItem is null || user is null ? (UInt16)0 : user.ID;
|
||||
msg.Write(userId);
|
||||
msg.WriteUInt16(userId);
|
||||
|
||||
var reachedLimits = fabricationLimits.Where(kvp => kvp.Value <= 0);
|
||||
msg.Write((ushort)reachedLimits.Count());
|
||||
msg.WriteUInt16((ushort)reachedLimits.Count());
|
||||
foreach (var kvp in reachedLimits)
|
||||
{
|
||||
msg.Write(kvp.Key);
|
||||
msg.WriteUInt32(kvp.Key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,16 +49,16 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
//flowpercentage can only be adjusted at 10% intervals -> no need for more accuracy than this
|
||||
msg.WriteRangedInteger((int)(flowPercentage / 10.0f), -10, 10);
|
||||
msg.Write(IsActive);
|
||||
msg.Write(Hijacked);
|
||||
msg.WriteBoolean(IsActive);
|
||||
msg.WriteBoolean(Hijacked);
|
||||
if (TargetLevel != null)
|
||||
{
|
||||
msg.Write(true);
|
||||
msg.Write(TargetLevel.Value);
|
||||
msg.WriteBoolean(true);
|
||||
msg.WriteSingle(TargetLevel.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(false);
|
||||
msg.WriteBoolean(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,8 +45,8 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(autoTemp);
|
||||
msg.Write(_powerOn);
|
||||
msg.WriteBoolean(autoTemp);
|
||||
msg.WriteBoolean(_powerOn);
|
||||
msg.WriteRangedSingle(temperature, 0.0f, 100.0f, 8);
|
||||
msg.WriteRangedSingle(TargetFissionRate, 0.0f, 100.0f, 8);
|
||||
msg.WriteRangedSingle(TargetTurbineOutput, 0.0f, 100.0f, 8);
|
||||
|
||||
@@ -100,30 +100,30 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Barotrauma.Networking.Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(autoPilot);
|
||||
msg.Write(TryExtractEventData<EventData>(extraData, out var eventData) && eventData.DockingButtonClicked);
|
||||
msg.Write(user?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteBoolean(autoPilot);
|
||||
msg.WriteBoolean(TryExtractEventData<EventData>(extraData, out var eventData) && eventData.DockingButtonClicked);
|
||||
msg.WriteUInt16(user?.ID ?? Entity.NullEntityID);
|
||||
|
||||
if (!autoPilot)
|
||||
{
|
||||
//no need to write steering info if autopilot is controlling
|
||||
msg.Write(steeringInput.X);
|
||||
msg.Write(steeringInput.Y);
|
||||
msg.Write(targetVelocity.X);
|
||||
msg.Write(targetVelocity.Y);
|
||||
msg.Write(steeringAdjustSpeed);
|
||||
msg.WriteSingle(steeringInput.X);
|
||||
msg.WriteSingle(steeringInput.Y);
|
||||
msg.WriteSingle(targetVelocity.X);
|
||||
msg.WriteSingle(targetVelocity.Y);
|
||||
msg.WriteSingle(steeringAdjustSpeed);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(posToMaintain != null);
|
||||
msg.WriteBoolean(posToMaintain != null);
|
||||
if (posToMaintain != null)
|
||||
{
|
||||
msg.Write(((Vector2)posToMaintain).X);
|
||||
msg.Write(((Vector2)posToMaintain).Y);
|
||||
msg.WriteSingle(((Vector2)posToMaintain).X);
|
||||
msg.WriteSingle(((Vector2)posToMaintain).Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(LevelStartSelected);
|
||||
msg.WriteBoolean(LevelStartSelected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,39 +25,39 @@ namespace Barotrauma.Items.Components
|
||||
var eventData = ExtractEventData<EventData>(extraData);
|
||||
bool launch = eventData.Launch;
|
||||
|
||||
msg.Write(launch);
|
||||
msg.WriteBoolean(launch);
|
||||
if (launch)
|
||||
{
|
||||
msg.Write(User.ID);
|
||||
msg.Write(launchPos.X);
|
||||
msg.Write(launchPos.Y);
|
||||
msg.Write(launchRot);
|
||||
msg.WriteUInt16(User.ID);
|
||||
msg.WriteSingle(launchPos.X);
|
||||
msg.WriteSingle(launchPos.Y);
|
||||
msg.WriteSingle(launchRot);
|
||||
}
|
||||
|
||||
bool stuck = StickTarget != null && !item.Removed && !StickTargetRemoved();
|
||||
msg.Write(stuck);
|
||||
msg.WriteBoolean(stuck);
|
||||
if (stuck)
|
||||
{
|
||||
msg.Write(item.Submarine?.ID ?? Entity.NullEntityID);
|
||||
msg.Write(item.CurrentHull?.ID ?? Entity.NullEntityID);
|
||||
msg.Write(item.SimPosition.X);
|
||||
msg.Write(item.SimPosition.Y);
|
||||
msg.Write(jointAxis.X);
|
||||
msg.Write(jointAxis.Y);
|
||||
msg.WriteUInt16(item.Submarine?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteUInt16(item.CurrentHull?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteSingle(item.SimPosition.X);
|
||||
msg.WriteSingle(item.SimPosition.Y);
|
||||
msg.WriteSingle(jointAxis.X);
|
||||
msg.WriteSingle(jointAxis.Y);
|
||||
if (StickTarget.UserData is Structure structure)
|
||||
{
|
||||
msg.Write(structure.ID);
|
||||
msg.WriteUInt16(structure.ID);
|
||||
int bodyIndex = structure.Bodies.IndexOf(StickTarget);
|
||||
msg.Write((byte)(bodyIndex == -1 ? 0 : bodyIndex));
|
||||
msg.WriteByte((byte)(bodyIndex == -1 ? 0 : bodyIndex));
|
||||
}
|
||||
else if (StickTarget.UserData is Entity entity)
|
||||
{
|
||||
msg.Write(entity.ID);
|
||||
msg.WriteUInt16(entity.ID);
|
||||
}
|
||||
else if (StickTarget.UserData is Limb limb)
|
||||
{
|
||||
msg.Write(limb.character.ID);
|
||||
msg.Write((byte)Array.IndexOf(limb.character.AnimController.Limbs, limb));
|
||||
msg.WriteUInt16(limb.character.ID);
|
||||
msg.WriteByte((byte)Array.IndexOf(limb.character.AnimController.Limbs, limb));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -44,13 +44,13 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(deteriorationTimer);
|
||||
msg.Write(deteriorateAlwaysResetTimer);
|
||||
msg.Write(DeteriorateAlways);
|
||||
msg.Write(tinkeringDuration);
|
||||
msg.Write(tinkeringStrength);
|
||||
msg.Write(tinkeringPowersDevices);
|
||||
msg.Write(CurrentFixer == null ? (ushort)0 : CurrentFixer.ID);
|
||||
msg.WriteSingle(deteriorationTimer);
|
||||
msg.WriteSingle(deteriorateAlwaysResetTimer);
|
||||
msg.WriteBoolean(DeteriorateAlways);
|
||||
msg.WriteSingle(tinkeringDuration);
|
||||
msg.WriteSingle(tinkeringStrength);
|
||||
msg.WriteBoolean(tinkeringPowersDevices);
|
||||
msg.WriteUInt16(CurrentFixer == null ? (ushort)0 : CurrentFixer.ID);
|
||||
msg.WriteRangedInteger((int)currentFixerAction, 0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,25 +6,25 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(Snapped);
|
||||
msg.WriteBoolean(Snapped);
|
||||
|
||||
if (!Snapped)
|
||||
{
|
||||
msg.Write(target?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteUInt16(target?.ID ?? Entity.NullEntityID);
|
||||
if (source is Entity entity && !entity.Removed)
|
||||
{
|
||||
msg.Write(entity?.ID ?? Entity.NullEntityID);
|
||||
msg.Write((byte)0);
|
||||
msg.WriteUInt16(entity?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteByte((byte)0);
|
||||
}
|
||||
else if (source is Limb limb && limb.character != null && !limb.character.Removed)
|
||||
{
|
||||
msg.Write(limb.character?.ID ?? Entity.NullEntityID);
|
||||
msg.Write((byte)limb.character.AnimController.Limbs.IndexOf(limb));
|
||||
msg.WriteUInt16(limb.character?.ID ?? Entity.NullEntityID);
|
||||
msg.WriteByte((byte)limb.character.AnimController.Limbs.IndexOf(limb));
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(Entity.NullEntityID);
|
||||
msg.Write((byte)0);
|
||||
msg.WriteUInt16(Entity.NullEntityID);
|
||||
msg.WriteByte((byte)0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(scanTimer);
|
||||
msg.WriteSingle(scanTimer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(user == null ? (ushort)0 : user.ID);
|
||||
msg.WriteUInt16(user == null ? (ushort)0 : user.ID);
|
||||
ClientEventWrite(msg, extraData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,15 +72,15 @@ namespace Barotrauma.Items.Components
|
||||
var element = customInterfaceElementList[i];
|
||||
if (element.HasPropertyName)
|
||||
{
|
||||
msg.Write(element.Signal);
|
||||
msg.WriteString(element.Signal);
|
||||
}
|
||||
else if(element.ContinuousSignal)
|
||||
{
|
||||
msg.Write(element.State);
|
||||
msg.WriteBoolean(element.State);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(extraData is Item.ComponentStateEventData { ComponentData: EventData eventData } && eventData.BtnElement == customInterfaceElementList[i]);
|
||||
msg.WriteBoolean(extraData is Item.ComponentStateEventData { ComponentData: EventData eventData } && eventData.BtnElement == customInterfaceElementList[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
public void ServerEventWrite(IWriteMessage msg, Client c, NetEntityEvent.IData extraData = null)
|
||||
{
|
||||
msg.Write(Value);
|
||||
msg.WriteString(Value);
|
||||
lastSentValue = Value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,11 +101,11 @@ namespace Barotrauma.Items.Components
|
||||
{
|
||||
if (TryExtractEventData(extraData, out ServerEventData eventData))
|
||||
{
|
||||
msg.Write(eventData.MsgToSend);
|
||||
msg.WriteString(eventData.MsgToSend);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(OutputValue);
|
||||
msg.WriteString(OutputValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,8 @@ namespace Barotrauma.Items.Components
|
||||
msg.WriteRangedInteger(nodeCount, 0, MaxNodesPerNetworkEvent);
|
||||
for (int i = nodeStartIndex; i < nodeStartIndex + nodeCount; i++)
|
||||
{
|
||||
msg.Write(nodes[i].X);
|
||||
msg.Write(nodes[i].Y);
|
||||
msg.WriteSingle(nodes[i].X);
|
||||
msg.WriteSingle(nodes[i].Y);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,14 +62,14 @@ namespace Barotrauma
|
||||
throw error("component \"" + components[containerIndex] + "\" is not server serializable");
|
||||
}
|
||||
msg.WriteRangedInteger(containerIndex, 0, components.Count - 1);
|
||||
msg.Write(GameMain.Server.EntityEventManager.Events.Last()?.ID ?? (ushort)0);
|
||||
msg.WriteUInt16(GameMain.Server.EntityEventManager.Events.Last()?.ID ?? (ushort)0);
|
||||
itemContainer.Inventory.ServerEventWrite(msg, c);
|
||||
break;
|
||||
case ItemStatusEventData _:
|
||||
msg.Write(condition);
|
||||
msg.WriteSingle(condition);
|
||||
break;
|
||||
case AssignCampaignInteractionEventData _:
|
||||
msg.Write((byte)CampaignInteractionType);
|
||||
msg.WriteByte((byte)CampaignInteractionType);
|
||||
break;
|
||||
case ApplyStatusEffectEventData applyStatusEffectEventData:
|
||||
{
|
||||
@@ -83,15 +83,15 @@ namespace Barotrauma
|
||||
byte targetLimbIndex = targetLimb != null && targetCharacter != null ? (byte)Array.IndexOf(targetCharacter.AnimController.Limbs, targetLimb) : (byte)255;
|
||||
|
||||
msg.WriteRangedInteger((int)actionType, 0, Enum.GetValues(typeof(ActionType)).Length - 1);
|
||||
msg.Write((byte)(targetComponent == null ? 255 : components.IndexOf(targetComponent)));
|
||||
msg.Write(applyStatusEffectEventData.TargetCharacter?.ID ?? (ushort)0);
|
||||
msg.Write(targetLimbIndex);
|
||||
msg.Write(applyStatusEffectEventData.UseTarget?.ID ?? (ushort)0);
|
||||
msg.Write(worldPosition.HasValue);
|
||||
msg.WriteByte((byte)(targetComponent == null ? 255 : components.IndexOf(targetComponent)));
|
||||
msg.WriteUInt16(applyStatusEffectEventData.TargetCharacter?.ID ?? (ushort)0);
|
||||
msg.WriteByte(targetLimbIndex);
|
||||
msg.WriteUInt16(applyStatusEffectEventData.UseTarget?.ID ?? (ushort)0);
|
||||
msg.WriteBoolean(worldPosition.HasValue);
|
||||
if (worldPosition.HasValue)
|
||||
{
|
||||
msg.Write(worldPosition.Value.X);
|
||||
msg.Write(worldPosition.Value.Y);
|
||||
msg.WriteSingle(worldPosition.Value.X);
|
||||
msg.WriteSingle(worldPosition.Value.Y);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -109,16 +109,16 @@ namespace Barotrauma
|
||||
case UpgradeEventData upgradeEventData:
|
||||
var upgrade = upgradeEventData.Upgrade;
|
||||
var upgradeTargets = upgrade.TargetComponents;
|
||||
msg.Write(upgrade.Identifier);
|
||||
msg.Write((byte)upgrade.Level);
|
||||
msg.Write((byte)upgradeTargets.Count);
|
||||
msg.WriteIdentifier(upgrade.Identifier);
|
||||
msg.WriteByte((byte)upgrade.Level);
|
||||
msg.WriteByte((byte)upgradeTargets.Count);
|
||||
foreach (var (_, value) in upgrade.TargetComponents)
|
||||
{
|
||||
msg.Write((byte)value.Length);
|
||||
msg.WriteByte((byte)value.Length);
|
||||
foreach (var propertyReference in value)
|
||||
{
|
||||
object originalValue = propertyReference.OriginalValue;
|
||||
msg.Write((float)(originalValue ?? -1));
|
||||
msg.WriteSingle((float)(originalValue ?? -1));
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -189,35 +189,35 @@ namespace Barotrauma
|
||||
{
|
||||
if (GameMain.Server == null) { return; }
|
||||
|
||||
msg.Write(Prefab.OriginalName);
|
||||
msg.Write(Prefab.Identifier);
|
||||
msg.Write(Description != base.Prefab.Description);
|
||||
msg.WriteString(Prefab.OriginalName);
|
||||
msg.WriteIdentifier(Prefab.Identifier);
|
||||
msg.WriteBoolean(Description != base.Prefab.Description);
|
||||
if (Description != base.Prefab.Description)
|
||||
{
|
||||
msg.Write(Description);
|
||||
msg.WriteString(Description);
|
||||
}
|
||||
|
||||
msg.Write(entityID);
|
||||
msg.WriteUInt16(entityID);
|
||||
|
||||
if (ParentInventory == null || ParentInventory.Owner == null || originalInventoryID == 0)
|
||||
{
|
||||
msg.Write((ushort)0);
|
||||
msg.WriteUInt16((ushort)0);
|
||||
|
||||
msg.Write(Position.X);
|
||||
msg.Write(Position.Y);
|
||||
msg.WriteSingle(Position.X);
|
||||
msg.WriteSingle(Position.Y);
|
||||
msg.WriteRangedSingle(body == null ? 0.0f : MathUtils.WrapAngleTwoPi(body.Rotation), 0.0f, MathHelper.TwoPi, 8);
|
||||
msg.Write(Submarine != null ? Submarine.ID : (ushort)0);
|
||||
msg.WriteUInt16(Submarine != null ? Submarine.ID : (ushort)0);
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Write(originalInventoryID);
|
||||
msg.Write(originalItemContainerIndex);
|
||||
msg.Write(originalSlotIndex < 0 ? (byte)255 : (byte)originalSlotIndex);
|
||||
msg.WriteUInt16(originalInventoryID);
|
||||
msg.WriteByte(originalItemContainerIndex);
|
||||
msg.WriteByte(originalSlotIndex < 0 ? (byte)255 : (byte)originalSlotIndex);
|
||||
}
|
||||
|
||||
msg.Write(body == null ? (byte)0 : (byte)body.BodyType);
|
||||
msg.Write(SpawnedInCurrentOutpost);
|
||||
msg.Write(AllowStealing);
|
||||
msg.WriteByte(body == null ? (byte)0 : (byte)body.BodyType);
|
||||
msg.WriteBoolean(SpawnedInCurrentOutpost);
|
||||
msg.WriteBoolean(AllowStealing);
|
||||
msg.WriteRangedInteger(Quality, 0, Items.Components.Quality.MaxQuality);
|
||||
|
||||
byte teamID = 0;
|
||||
@@ -237,39 +237,39 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
msg.Write(teamID);
|
||||
msg.WriteByte(teamID);
|
||||
|
||||
bool hasIdCard = idCardComponent != null;
|
||||
msg.Write(hasIdCard);
|
||||
msg.WriteBoolean(hasIdCard);
|
||||
if (hasIdCard)
|
||||
{
|
||||
msg.Write(idCardComponent.OwnerName);
|
||||
msg.Write(idCardComponent.OwnerTags);
|
||||
msg.Write((byte)Math.Max(0, idCardComponent.OwnerBeardIndex+1));
|
||||
msg.Write((byte)Math.Max(0, idCardComponent.OwnerHairIndex+1));
|
||||
msg.Write((byte)Math.Max(0, idCardComponent.OwnerMoustacheIndex+1));
|
||||
msg.Write((byte)Math.Max(0, idCardComponent.OwnerFaceAttachmentIndex+1));
|
||||
msg.WriteString(idCardComponent.OwnerName);
|
||||
msg.WriteString(idCardComponent.OwnerTags);
|
||||
msg.WriteByte((byte)Math.Max(0, idCardComponent.OwnerBeardIndex+1));
|
||||
msg.WriteByte((byte)Math.Max(0, idCardComponent.OwnerHairIndex+1));
|
||||
msg.WriteByte((byte)Math.Max(0, idCardComponent.OwnerMoustacheIndex+1));
|
||||
msg.WriteByte((byte)Math.Max(0, idCardComponent.OwnerFaceAttachmentIndex+1));
|
||||
msg.WriteColorR8G8B8(idCardComponent.OwnerHairColor);
|
||||
msg.WriteColorR8G8B8(idCardComponent.OwnerFacialHairColor);
|
||||
msg.WriteColorR8G8B8(idCardComponent.OwnerSkinColor);
|
||||
msg.Write(idCardComponent.OwnerJobId);
|
||||
msg.Write((byte)idCardComponent.OwnerSheetIndex.X);
|
||||
msg.Write((byte)idCardComponent.OwnerSheetIndex.Y);
|
||||
msg.WriteIdentifier(idCardComponent.OwnerJobId);
|
||||
msg.WriteByte((byte)idCardComponent.OwnerSheetIndex.X);
|
||||
msg.WriteByte((byte)idCardComponent.OwnerSheetIndex.Y);
|
||||
}
|
||||
|
||||
bool tagsChanged = tags.Count != base.Prefab.Tags.Count || !tags.All(t => base.Prefab.Tags.Contains(t));
|
||||
msg.Write(tagsChanged);
|
||||
msg.WriteBoolean(tagsChanged);
|
||||
if (tagsChanged)
|
||||
{
|
||||
IEnumerable<Identifier> splitTags = Tags.Split(',').ToIdentifiers();
|
||||
msg.Write(string.Join(',', splitTags.Where(t => !base.Prefab.Tags.Contains(t))));
|
||||
msg.Write(string.Join(',', base.Prefab.Tags.Where(t => !splitTags.Contains(t))));
|
||||
msg.WriteString(string.Join(',', splitTags.Where(t => !base.Prefab.Tags.Contains(t))));
|
||||
msg.WriteString(string.Join(',', base.Prefab.Tags.Where(t => !splitTags.Contains(t))));
|
||||
}
|
||||
var nameTag = GetComponent<NameTag>();
|
||||
msg.Write(nameTag != null);
|
||||
msg.WriteBoolean(nameTag != null);
|
||||
if (nameTag != null)
|
||||
{
|
||||
msg.Write(nameTag.WrittenName ?? "");
|
||||
msg.WriteString(nameTag.WrittenName ?? "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,12 +342,12 @@ namespace Barotrauma
|
||||
|
||||
public void ServerWritePosition(IWriteMessage msg, Client c)
|
||||
{
|
||||
msg.Write(ID);
|
||||
msg.WriteUInt16(ID);
|
||||
|
||||
IWriteMessage tempBuffer = new WriteOnlyMessage();
|
||||
body.ServerWrite(tempBuffer);
|
||||
msg.WriteVariableUInt32((uint)tempBuffer.LengthBytes);
|
||||
msg.Write(tempBuffer.Buffer, 0, tempBuffer.LengthBytes);
|
||||
msg.WriteBytes(tempBuffer.Buffer, 0, tempBuffer.LengthBytes);
|
||||
msg.WritePadBits();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user