Banning players, networkevent refactoring, wire syncing bugfixes, wrenches can be used as a melee weapon, proper error message for invalid IPs, drawing held items in correct position, fixed client crashing if sending a chatmessage while connection is lost

This commit is contained in:
Regalis
2015-10-22 01:04:42 +03:00
parent 313d16d886
commit 51e68f0949
28 changed files with 520 additions and 154 deletions

View File

@@ -215,7 +215,7 @@ namespace Barotrauma.Items.Components
attached = true;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, true);
return true;
}

View File

@@ -126,7 +126,7 @@ namespace Barotrauma.Items.Components
}
else
{
ac.HoldItem(deltaTime, item, handlePos, new Vector2(hitPos, 0.0f), aimPos, false, 0.0f);
ac.HoldItem(deltaTime, item, handlePos, new Vector2(hitPos, 0.0f), aimPos, false, holdAngle);
}
}
else

View File

@@ -93,10 +93,18 @@ namespace Barotrauma.Items.Components
spriteBatch.DrawString(GUI.Font, "Force: " + (int)(targetForce) + " %", new Vector2(GuiFrame.Rect.X + 30, GuiFrame.Rect.Y + 30), Color.White);
if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 30, 40, 40), "+", true)) targetForce += 1.0f;
if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 80, 40, 40), "-", true)) targetForce -= 1.0f;
if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 30, 40, 40), "+", true))
{
targetForce += 1.0f;
item.NewComponentEvent(this, true, false);
}
if (GUI.DrawButton(spriteBatch, new Rectangle(GuiFrame.Rect.X + 280, GuiFrame.Rect.Y + 80, 40, 40), "-", true))
{
targetForce -= 1.0f;
item.NewComponentEvent(this, true, false);
}
item.NewComponentEvent(this, true);
}
public override void UpdateBroken(float deltaTime, Camera cam)

View File

@@ -117,7 +117,7 @@ namespace Barotrauma.Items.Components
targetLevel = null;
IsActive = !IsActive;
if (!IsActive) currPowerConsumption = 0.0f;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, true);
}
spriteBatch.DrawString(GUI.Font, "Pumping speed: " + (int)flowPercentage + " %", new Vector2(x + 20, y + 80), Color.White);
@@ -125,12 +125,12 @@ namespace Barotrauma.Items.Components
if (GUI.DrawButton(spriteBatch, new Rectangle(x + 200, y + 70, 40, 40), "OUT", false))
{
FlowPercentage -= 10.0f;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
}
if (GUI.DrawButton(spriteBatch, new Rectangle(x + 250, y + 70, 40, 40), "IN", false))
{
FlowPercentage += 10.0f;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
}
}

View File

@@ -80,7 +80,7 @@ namespace Barotrauma.Items.Components
if (GUI.DrawButton(spriteBatch, new Rectangle(x + 20, y + 20, 200, 30), "Activate Radar"))
{
IsActive = !IsActive;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
}
int radius = GuiFrame.Rect.Height / 2 - 10;

View File

@@ -371,7 +371,7 @@ namespace Barotrauma.Items.Components
if (valueChanged)
{
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
valueChanged = false;
}
}

View File

@@ -97,7 +97,7 @@ namespace Barotrauma.Items.Components
networkUpdateTimer -= deltaTime;
if (networkUpdateTimer<=0.0f)
{
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
networkUpdateTimer = 1.0f;
valueChanged = false;
}
@@ -124,7 +124,7 @@ namespace Barotrauma.Items.Components
{
AutoPilot = !AutoPilot;
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, true);
}
GUI.DrawLine(spriteBatch,

View File

@@ -186,13 +186,13 @@ namespace Barotrauma.Items.Components
if (GUI.DrawButton(spriteBatch, new Rectangle(x + 200, y + 90, 40, 40), "+"))
{
rechargeSpeed = Math.Min(rechargeSpeed + maxRechargeSpeed*0.1f, maxRechargeSpeed);
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
}
if (GUI.DrawButton(spriteBatch, new Rectangle(x + 250, y + 90, 40, 40), "-"))
{
rechargeSpeed = Math.Max(rechargeSpeed - maxRechargeSpeed * 0.1f, 0.0f);
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, false);
}
}

View File

@@ -280,7 +280,7 @@ namespace Barotrauma.Items.Components
{
if (!PlayerInput.LeftButtonDown())
{
panel.Item.NewComponentEvent(panel, true);
panel.Item.NewComponentEvent(panel, true, true);
draggingConnected = null;
}
}

View File

@@ -125,10 +125,9 @@ namespace Barotrauma.Items.Components
{
Wire[] wires = Array.FindAll(c.Wires, w => w != null);
message.Write((byte)wires.Length);
for (int i = 0 ; i < c.Wires.Length; i++)
for (int i = 0 ; i < wires.Length; i++)
{
if (c.Wires[i] == null) continue;
message.Write(c.Wires[i].Item.ID);
message.Write(wires[i].Item.ID);
}
}
}
@@ -140,26 +139,22 @@ namespace Barotrauma.Items.Components
{
//int wireCount = c.Wires.Length;
c.ClearConnections();
try
byte wireCount = message.ReadByte();
for (int i = 0; i < wireCount; i++)
{
byte wireCount = message.ReadByte();
for (int i = 0; i < wireCount; i++)
{
ushort wireId = message.ReadUInt16();
ushort wireId = message.ReadUInt16();
Item wireItem = MapEntity.FindEntityByID(wireId) as Item;
if (wireItem == null) continue;
Item wireItem = MapEntity.FindEntityByID(wireId) as Item;
if (wireItem == null) continue;
Wire wireComponent = wireItem.GetComponent<Wire>();
if (wireComponent == null) continue;
Wire wireComponent = wireItem.GetComponent<Wire>();
if (wireComponent == null) continue;
c.Wires[i] = wireComponent;
wireComponent.Connect(c, false);
}
c.Wires[i] = wireComponent;
wireComponent.Connect(c, false);
}
catch { }
}
}
}

View File

@@ -123,7 +123,7 @@ namespace Barotrauma.Items.Components
CleanNodes();
}
if (!loading) Item.NewComponentEvent(this, true);
if (!loading) Item.NewComponentEvent(this, true, true);
}
public override void Equip(Character character)
@@ -200,7 +200,7 @@ namespace Barotrauma.Items.Components
if (Nodes.Count > 1)
{
Nodes.RemoveAt(Nodes.Count - 1);
item.NewComponentEvent(this, true);
item.NewComponentEvent(this, true, true);
}
}
@@ -409,8 +409,8 @@ namespace Barotrauma.Items.Components
public override void FillNetworkData(Networking.NetworkEventType type, Lidgren.Network.NetOutgoingMessage message)
{
message.Write(Nodes.Count);
for (int i = 0; i < Nodes.Count; i++)
message.Write((byte)Math.Min(Nodes.Count, 10));
for (int i = 0; i < Math.Min(Nodes.Count,10); i++)
{
message.Write(Nodes[i].X);
message.Write(Nodes[i].Y);
@@ -420,8 +420,8 @@ namespace Barotrauma.Items.Components
public override void ReadNetworkData(Networking.NetworkEventType type, Lidgren.Network.NetIncomingMessage message)
{
Nodes.Clear();
int nodeCount = message.ReadInt32();
for (int i = 0; i < nodeCount; i++)
int nodeCount = message.ReadByte();
for (int i = 0; i<nodeCount; i++)
{
Nodes.Add(new Vector2(message.ReadFloat(), message.ReadFloat()));
}