Unstable 0.17.1.0

This commit is contained in:
Markus Isberg
2022-03-17 01:25:04 +09:00
parent 3974067915
commit 6d410cc1b7
302 changed files with 5878 additions and 3317 deletions
@@ -76,13 +76,14 @@ namespace Barotrauma.Items.Components
UserData = i,
OnClicked = (button, userData) =>
{
int signalIndex = (int)userData;
if (GameMain.IsSingleplayer)
{
SendSignal((int)userData, Character.Controlled);
SendSignal(signalIndex, Character.Controlled);
}
else
{
item.CreateClientEvent(this, new object[] { userData });
item.CreateClientEvent(this, new EventData(signalIndex));
}
return true;
}
@@ -104,12 +105,12 @@ namespace Barotrauma.Items.Components
Container.Inventory.RectTransform = containerHolder.RectTransform;
}
public void ClientWrite(IWriteMessage msg, object[] extraData = null)
public void ClientEventWrite(IWriteMessage msg, NetEntityEvent.IData extraData = null)
{
Write(msg, extraData);
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
SendSignal(msg.ReadRangedInteger(0, Signals.Length - 1), sender: null, isServerMessage: true);
}
@@ -139,7 +139,7 @@ namespace Barotrauma.Items.Components
}
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
if (GameMain.Client.MidRoundSyncing)
{
@@ -161,7 +161,7 @@ namespace Barotrauma.Items.Components
}
int msgLength = (int)(msg.BitPosition - msgStartPos);
msg.BitPosition = (int)msgStartPos;
StartDelayedCorrection(type, msg.ExtractBits(msgLength), sendingTime, waitForMidRoundSync: true);
StartDelayedCorrection(msg.ExtractBits(msgLength), sendingTime, waitForMidRoundSync: true);
}
else
{
@@ -137,13 +137,14 @@ namespace Barotrauma.Items.Components
};
btn.OnClicked += (_, userdata) =>
{
CustomInterfaceElement btnElement = userdata as CustomInterfaceElement;;
if (GameMain.Client == null)
{
ButtonClicked(userdata as CustomInterfaceElement);
ButtonClicked(btnElement);
}
else
{
GameMain.Client.CreateEntityEvent(item, new object[] { NetEntityEvent.Type.ComponentState, item.GetComponentIndex(this), userdata as CustomInterfaceElement });
item.CreateClientEvent(this, new EventData(btnElement));
}
return true;
};
@@ -301,7 +302,7 @@ namespace Barotrauma.Items.Components
}
}
public void ClientWrite(IWriteMessage msg, object[] extraData = null)
public void ClientEventWrite(IWriteMessage msg, NetEntityEvent.IData extraData = null)
{
//extradata contains an array of buttons clicked by the player (or nothing if the player didn't click anything)
for (int i = 0; i < customInterfaceElementList.Count; i++)
@@ -323,12 +324,12 @@ namespace Barotrauma.Items.Components
}
else
{
msg.Write(extraData != null && extraData.Any(d => d as CustomInterfaceElement == customInterfaceElementList[i]));
msg.Write(extraData is Item.ComponentStateEventData { ComponentData: EventData eventData } && eventData.BtnElement == customInterfaceElementList[i]);
}
}
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
for (int i = 0; i < customInterfaceElementList.Count; i++)
{
@@ -4,7 +4,7 @@ namespace Barotrauma.Items.Components
{
partial class MemoryComponent : ItemComponent
{
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
Value = msg.ReadString();
}
@@ -7,6 +7,16 @@ namespace Barotrauma.Items.Components
{
partial class Terminal : ItemComponent, IClientSerializable, IServerSerializable
{
private readonly struct ClientEventData : IEventData
{
public readonly string Text;
public ClientEventData(string text)
{
Text = text;
}
}
private GUIListBox historyBox;
private GUITextBlock fillerBlock;
private GUITextBox inputBox;
@@ -42,7 +52,7 @@ namespace Barotrauma.Items.Components
}
else
{
item.CreateClientEvent(this, new object[] { text });
item.CreateClientEvent(this, new ClientEventData(text));
}
textBox.Text = string.Empty;
return true;
@@ -133,17 +143,15 @@ namespace Barotrauma.Items.Components
}
}
public void ClientWrite(IWriteMessage msg, object[] extraData = null)
public void ClientEventWrite(IWriteMessage msg, NetEntityEvent.IData extraData = null)
{
if (extraData is null) { return; }
if (extraData[2] is string str)
if (TryExtractEventData(extraData, out ClientEventData eventData))
{
msg.Write(str);
msg.Write(eventData.Text);
}
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
SendOutput(msg.ReadString());
}
@@ -21,7 +21,7 @@ namespace Barotrauma.Items.Components
ShapeExtensions.DrawCircle(spriteBatch, pos, range, 32, Color.Cyan * 0.5f, 3);
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
Channel = msg.ReadRangedInteger(MinChannel, MaxChannel);
}
@@ -11,6 +11,16 @@ namespace Barotrauma.Items.Components
{
partial class Wire : ItemComponent, IDrawableComponent, IServerSerializable, IClientSerializable
{
private readonly struct ClientEventData : IEventData
{
public readonly int NodeCount;
public ClientEventData(int nodeCount)
{
NodeCount = nodeCount;
}
}
public static Color higlightColor = Color.LightGreen;
public static Color editorHighlightColor = Color.Yellow;
public static Color editorSelectedColor = Color.Red;
@@ -555,7 +565,7 @@ namespace Barotrauma.Items.Components
return false;
}
public void ClientRead(ServerNetObject type, IReadMessage msg, float sendingTime)
public void ClientEventRead(IReadMessage msg, float sendingTime)
{
int eventIndex = msg.ReadRangedInteger(0, (int)Math.Ceiling(MaxNodeCount / (float)MaxNodesPerNetworkEvent));
int nodeCount = msg.ReadRangedInteger(0, MaxNodesPerNetworkEvent);
@@ -586,9 +596,13 @@ namespace Barotrauma.Items.Components
(item.ParentInventory is CharacterInventory characterInventory && ((characterInventory.Owner as Character)?.HasEquippedItem(item) ?? false));
}
public void ClientWrite(IWriteMessage msg, object[] extraData = null)
public override bool ValidateEventData(NetEntityEvent.IData data)
=> TryExtractEventData<ClientEventData>(data, out _);
public void ClientEventWrite(IWriteMessage msg, NetEntityEvent.IData extraData = null)
{
int nodeCount = (int)extraData[2];
var eventData = ExtractEventData<ClientEventData>(extraData);
int nodeCount = eventData.NodeCount;
msg.Write((byte)nodeCount);
if (nodeCount > 0)
{