diff --git a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems
index 91e79eb92..164bdd3a4 100644
--- a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems
+++ b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems
@@ -295,6 +295,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
@@ -913,6 +916,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
@@ -928,6 +934,18 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Button/button.png b/Barotrauma/BarotraumaShared/Content/Items/Button/button.png
index e73ef0aed..b47787c54 100644
Binary files a/Barotrauma/BarotraumaShared/Content/Items/Button/button.png and b/Barotrauma/BarotraumaShared/Content/Items/Button/button.png differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Button/button.xml b/Barotrauma/BarotraumaShared/Content/Items/Button/button.xml
index c2e14f374..5def1564e 100644
--- a/Barotrauma/BarotraumaShared/Content/Items/Button/button.xml
+++ b/Barotrauma/BarotraumaShared/Content/Items/Button/button.xml
@@ -1,33 +1,66 @@
--
+
+
-
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Button/switch.ogg b/Barotrauma/BarotraumaShared/Content/Items/Button/switch.ogg
new file mode 100644
index 000000000..83e99e918
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Button/switch.ogg differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak1.ogg b/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak1.ogg
new file mode 100644
index 000000000..fb1517e66
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak1.ogg differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak2.ogg b/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak2.ogg
new file mode 100644
index 000000000..4db93332b
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Door/doorBreak2.ogg differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/doors.xml b/Barotrauma/BarotraumaShared/Content/Items/Door/doors.xml
index 476f8a787..046de4b1a 100644
--- a/Barotrauma/BarotraumaShared/Content/Items/Door/doors.xml
+++ b/Barotrauma/BarotraumaShared/Content/Items/Door/doors.xml
@@ -6,13 +6,16 @@
-
+
-
+
+
+
+
@@ -37,13 +40,16 @@
-
+
-
+
+
+
+
@@ -68,13 +74,16 @@
-
+
-
+
+
+
+
@@ -103,6 +112,9 @@
+
+
+
@@ -134,6 +146,9 @@
+
+
+
@@ -158,5 +173,39 @@
-
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/duct.ogg b/Barotrauma/BarotraumaShared/Content/Items/Door/duct.ogg
new file mode 100644
index 000000000..9ca48003e
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Door/duct.ogg differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/duct.png b/Barotrauma/BarotraumaShared/Content/Items/Door/duct.png
new file mode 100644
index 000000000..284838e56
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Door/duct.png differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Door/ductBreak.ogg b/Barotrauma/BarotraumaShared/Content/Items/Door/ductBreak.ogg
new file mode 100644
index 000000000..f17f9734f
Binary files /dev/null and b/Barotrauma/BarotraumaShared/Content/Items/Door/ductBreak.ogg differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalcomp.png b/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalcomp.png
index e6d317588..e49db8b05 100644
Binary files a/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalcomp.png and b/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalcomp.png differ
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalitems.xml b/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalitems.xml
index 687e98788..bdd85ce4f 100644
--- a/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalitems.xml
+++ b/Barotrauma/BarotraumaShared/Content/Items/Electricity/signalitems.xml
@@ -335,7 +335,7 @@
-
+
@@ -366,7 +366,7 @@
-
+
@@ -382,6 +382,37 @@
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/Barotrauma/BarotraumaShared/Content/Items/Fabricators/fabricators.xml b/Barotrauma/BarotraumaShared/Content/Items/Fabricators/fabricators.xml
index b4138cfbe..c0faaec02 100644
--- a/Barotrauma/BarotraumaShared/Content/Items/Fabricators/fabricators.xml
+++ b/Barotrauma/BarotraumaShared/Content/Items/Fabricators/fabricators.xml
@@ -37,6 +37,7 @@
+
@@ -45,6 +46,7 @@
+
diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs
index fbb0e3fe4..a928a20df 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Door.cs
@@ -203,8 +203,22 @@ namespace Barotrauma.Items.Components
#endif
}
+ public override bool HasRequiredItems(Character character, bool addMessage)
+ {
+ if (item.Condition <= 0.0f) return true; //For repairing
+
+ return base.HasRequiredItems(character, addMessage);
+ }
+
+ public override bool Pick(Character picker)
+ {
+ return item.Condition <= 0.0f ? true : base.Pick(picker);
+ }
+
public override bool OnPicked(Character picker)
{
+ if (item.Condition <= 0.0f) return true; //repairs
+
SetState(predictedState == null ? !isOpen : !predictedState.Value, false, true); //crowbar function
#if CLIENT
PlaySound(ActionType.OnPicked, item.WorldPosition);
diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs
index 498279d26..ff9fa7497 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs
@@ -196,7 +196,7 @@ namespace Barotrauma.Items.Components
try
{
- string pickKeyStr = element.GetAttributeString("selectkey", "Select");
+ string pickKeyStr = element.GetAttributeString("pickkey", "Select");
pickKeyStr = ToolBox.ConvertInputType(pickKeyStr);
PickKey = (InputType)Enum.Parse(typeof(InputType),pickKeyStr, true);
}
@@ -437,7 +437,7 @@ namespace Barotrauma.Items.Components
return true;
}
- public bool HasRequiredItems(Character character, bool addMessage)
+ public virtual bool HasRequiredItems(Character character, bool addMessage)
{
if (!requiredItems.Any()) return true;
if (character.Inventory == null) return false;
diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs
index 42686c6fb..8964c050f 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs
@@ -1106,8 +1106,6 @@ namespace Barotrauma
ic.ApplyStatusEffects(ActionType.OnPicked, 1.0f, picker);
#if CLIENT
- ic.PlaySound(ActionType.OnPicked, picker.WorldPosition);
-
if (picker == Character.Controlled) GUIComponent.ForceMouseOn(null);
#endif