diff --git a/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml b/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml
index 969b6213c..50662afde 100644
--- a/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml
+++ b/Barotrauma/BarotraumaShared/Content/Items/Weapons/railgun.xml
@@ -36,11 +36,12 @@
category="Machine"
type="Controller"
linkable="true"
+ disableitemusagewhenselected="true"
>
-
+
diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs
index a506e62d1..63a52738e 100644
--- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs
+++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs
@@ -926,13 +926,16 @@ namespace Barotrauma
}
}
- for (int i = 0; i < selectedItems.Length; i++ )
+ if (SelectedConstruction == null || !SelectedConstruction.Prefab.DisableItemUsageWhenSelected)
{
- if (selectedItems[i] == null) continue;
- if (i == 1 && selectedItems[0] == selectedItems[1]) continue;
+ for (int i = 0; i < selectedItems.Length; i++ )
+ {
+ if (selectedItems[i] == null) continue;
+ if (i == 1 && selectedItems[0] == selectedItems[1]) continue;
- if (IsKeyDown(InputType.Use)) selectedItems[i].Use(deltaTime, this);
- if (IsKeyDown(InputType.Aim) && selectedItems[i] != null) selectedItems[i].SecondaryUse(deltaTime, this);
+ if (IsKeyDown(InputType.Use)) selectedItems[i].Use(deltaTime, this);
+ if (IsKeyDown(InputType.Aim) && selectedItems[i] != null) selectedItems[i].SecondaryUse(deltaTime, this);
+ }
}
if (selectedConstruction != null)
diff --git a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
index a1ec49bbd..dba9dfd98 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
@@ -134,6 +134,13 @@ namespace Barotrauma
private set;
}
+ [Serialize(false, false)]
+ public bool DisableItemUsageWhenSelected
+ {
+ get;
+ private set;
+ }
+
public bool CanSpriteFlipX
{
get { return canSpriteFlipX; }