diff --git a/Subsurface/Content/Items/Door/doors.xml b/Subsurface/Content/Items/Door/doors.xml
index 3fafbebbf..7e1d1e859 100644
--- a/Subsurface/Content/Items/Door/doors.xml
+++ b/Subsurface/Content/Items/Door/doors.xml
@@ -6,13 +6,18 @@
-
+
+
+
+
+
+
@@ -30,7 +35,7 @@
-
+
@@ -38,6 +43,11 @@
+
+
+
+
+
diff --git a/Subsurface/Content/Items/Electricity/signalitems.xml b/Subsurface/Content/Items/Electricity/signalitems.xml
index 8e64051b4..6f4f3ea07 100644
--- a/Subsurface/Content/Items/Electricity/signalitems.xml
+++ b/Subsurface/Content/Items/Electricity/signalitems.xml
@@ -4,7 +4,7 @@
- ();
+ if (connectionPanel!=null)
+ {
+ foreach (Connection c in connectionPanel.connections)
+ {
+ foreach (Wire w in c.Wires)
+ {
+ if (w == null) continue;
+
+ w.Item.Drop(picker);
+ w.Item.SetTransform(item.SimPosition, 0.0f);
+ }
+ }
+ }
+
ApplyStatusEffects(ActionType.OnPicked, 1.0f, picker);
//foreach (StatusEffect effect in item.Prefab.statusEffects)
diff --git a/Subsurface/Source/Items/FixRequirement.cs b/Subsurface/Source/Items/FixRequirement.cs
index e60892550..4c734809a 100644
--- a/Subsurface/Source/Items/FixRequirement.cs
+++ b/Subsurface/Source/Items/FixRequirement.cs
@@ -53,7 +53,7 @@ namespace Barotrauma
GUIComponent component = reqFrame.children.Find(c => c.UserData as string == itemName);
GUITextBlock text = component as GUITextBlock;
- Item item = character.Inventory.items.FirstOrDefault(i => i !=null && i.Name == itemName);
+ Item item = character.Inventory.items.FirstOrDefault(i => i !=null && (i.Name == itemName || i.HasTag(itemName)));
bool itemFound = (item != null);
if (!itemFound) success = false;
diff --git a/Subsurface/Source/Items/Item.cs b/Subsurface/Source/Items/Item.cs
index e4004b4c4..993d84ee6 100644
--- a/Subsurface/Source/Items/Item.cs
+++ b/Subsurface/Source/Items/Item.cs
@@ -339,6 +339,8 @@ namespace Barotrauma
rect.X = (int)(displayPos.X - rect.Width / 2.0f);
rect.Y = (int)(displayPos.Y + rect.Height / 2.0f);
+
+ FindHull();
}
public override void Move(Vector2 amount)
@@ -390,7 +392,7 @@ namespace Barotrauma
public bool HasTag(string tag)
{
- return (tags.Contains(tag));
+ return (tags.Contains(tag) || tags.Contains(tag.ToLower()));
}
@@ -863,7 +865,7 @@ namespace Barotrauma
{
picker.SelectedConstruction = (picker.SelectedConstruction == this) ? null : this;
}
-
+
if (!hasRequiredSkills && Character.Controlled==picker)
{
GUI.AddMessage("Your skills may be insufficient to use the item!", Color.Red, 5.0f);
diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs
index 3b45763df..dd465b6f3 100644
--- a/Subsurface/Source/Networking/GameClient.cs
+++ b/Subsurface/Source/Networking/GameClient.cs
@@ -404,7 +404,8 @@ namespace Barotrauma.Networking
string msg = inc.ReadString();
new GUIMessageBox("You have been kicked out from the server", msg);
-
+
+ Disconnect();
GameMain.MainMenuScreen.Select();
break;
@@ -433,7 +434,6 @@ namespace Barotrauma.Networking
private IEnumerable