v0.12.0.2

This commit is contained in:
Joonas Rikkonen
2021-02-10 17:08:21 +02:00
parent 5c80a59bdd
commit 694cdfee7b
353 changed files with 12897 additions and 5028 deletions
@@ -5,7 +5,6 @@ namespace Barotrauma.Items.Components
{
partial class DockingPort : ItemComponent, IDrawableComponent, IServerSerializable
{
private UInt16 originalDockingTargetID;
public void ServerWrite(IWriteMessage msg, Client c, object[] extraData = null)
@@ -15,7 +14,7 @@ namespace Barotrauma.Items.Components
if (docked)
{
msg.Write(originalDockingTargetID);
msg.Write(hulls != null && hulls[0] != null && hulls[1] != null && gap != null);
msg.Write(IsLocked);
}
}
}
@@ -32,6 +32,13 @@ namespace Barotrauma.Items.Components
set;
}
[Serialize("0,0,0,0", true, description: "The amount of padding around the text in pixels (left,top,right,bottom).")]
public Vector4 Padding
{
get;
set;
}
public override void Move(Vector2 amount)
{
//do nothing
@@ -1,10 +1,7 @@
using Barotrauma.Networking;
using FarseerPhysics;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace Barotrauma.Items.Components
{
@@ -18,7 +15,7 @@ namespace Barotrauma.Items.Components
for (int i = 0; i < Connections.Count; i++)
{
wires[i] = new List<Wire>();
for (int j = 0; j < Connection.MaxLinked; j++)
for (int j = 0; j < Connections[i].MaxWires; j++)
{
ushort wireId = msg.ReadUInt16();
@@ -68,9 +65,9 @@ namespace Barotrauma.Items.Components
{
item.CreateServerEvent(this);
c.Character.Inventory?.CreateNetworkEvent();
for (int i = 0; i < 2; i++)
foreach (Item heldItem in c.Character.HeldItems)
{
var selectedWire = c.Character.SelectedItems[i]?.GetComponent<Wire>();
var selectedWire = heldItem?.GetComponent<Wire>();
if (selectedWire == null) { continue; }
selectedWire.CreateNetworkEvent();
@@ -1,7 +1,5 @@
using Barotrauma.Networking;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace Barotrauma.Items.Components
{
@@ -13,7 +11,7 @@ namespace Barotrauma.Items.Components
string[] elementValues = new string[customInterfaceElementList.Count];
for (int i = 0; i < customInterfaceElementList.Count; i++)
{
if (!string.IsNullOrEmpty(customInterfaceElementList[i].PropertyName))
if (customInterfaceElementList[i].HasPropertyName)
{
elementValues[i] = msg.ReadString();
}
@@ -28,9 +26,17 @@ namespace Barotrauma.Items.Components
{
for (int i = 0; i < customInterfaceElementList.Count; i++)
{
if (!string.IsNullOrEmpty(customInterfaceElementList[i].PropertyName))
if (customInterfaceElementList[i].HasPropertyName)
{
TextChanged(customInterfaceElementList[i], elementValues[i]);
if (!customInterfaceElementList[i].IsIntegerInput)
{
TextChanged(customInterfaceElementList[i], elementValues[i]);
}
else
{
int.TryParse(elementValues[i], out int value);
ValueChanged(customInterfaceElementList[i], value);
}
}
else if (customInterfaceElementList[i].ContinuousSignal)
{
@@ -60,7 +66,7 @@ namespace Barotrauma.Items.Components
//extradata contains an array of buttons clicked by a client (or nothing if nothing was clicked)
for (int i = 0; i < customInterfaceElementList.Count; i++)
{
if (!string.IsNullOrEmpty(customInterfaceElementList[i].PropertyName))
if (customInterfaceElementList[i].HasPropertyName)
{
msg.Write(customInterfaceElementList[i].Signal);
}
@@ -37,9 +37,16 @@ namespace Barotrauma.Items.Components
public void SyncHistory()
{
//split too long messages to multiple parts
int msgIndex = 0;
foreach (string str in messageHistory)
{
string msgToSend = str;
if (string.IsNullOrEmpty(msgToSend))
{
item.CreateServerEvent(this, new object[] { msgIndex, msgToSend });
msgIndex++;
continue;
}
if (msgToSend.Length > MaxMessageLength)
{
List<string> splitMessage = msgToSend.Split(' ').ToList();
@@ -62,20 +69,21 @@ namespace Barotrauma.Items.Components
if (!splitMessage.Any()) { break; }
tempMsg += " ";
} while (tempMsg.Length + splitMessage[0].Length < MaxMessageLength);
item.CreateServerEvent(this, new string[] { msgToSend });
item.CreateServerEvent(this, new object[] { msgIndex, tempMsg });
msgToSend = msgToSend.Remove(0, tempMsg.Length);
}
}
if (!string.IsNullOrEmpty(msgToSend))
{
item.CreateServerEvent(this, new string[] { msgToSend });
}
}
item.CreateServerEvent(this, new object[] { msgIndex, msgToSend });
}
msgIndex++;
}
}
public void ServerWrite(IWriteMessage msg, Client c, object[] extraData = null)
{
if (extraData.Length > 2 && extraData[2] is string str)
if (extraData.Length > 3 && extraData[3] is string str)
{
msg.Write(str);
}