Unstable v0.19.3.0

This commit is contained in:
Juan Pablo Arce
2022-09-02 15:10:56 -03:00
parent 28789616bd
commit 3f2c843247
336 changed files with 7152 additions and 7739 deletions
@@ -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();
}