diff --git a/Barotrauma/BarotraumaShared/SharedContent.projitems b/Barotrauma/BarotraumaShared/SharedContent.projitems
index d613e742f..fdb6f6a05 100644
--- a/Barotrauma/BarotraumaShared/SharedContent.projitems
+++ b/Barotrauma/BarotraumaShared/SharedContent.projitems
@@ -451,6 +451,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest
diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs
index 3d851144f..6c1b8790c 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs
@@ -159,6 +159,25 @@ namespace Barotrauma.Items.Components
}
}
+ if (targetItem.Prefab.DeconstructItems.Any())
+ {
+ inputContainer.Inventory.RemoveItem(targetItem);
+ Entity.Spawner.AddToRemoveQueue(targetItem);
+ MoveInputQueue();
+ PutItemsToLinkedContainer();
+ }
+ else
+ {
+ if (outputContainer.Inventory.Items.All(i => i != null))
+ {
+ targetItem.Drop(dropper: null);
+ }
+ else
+ {
+ outputContainer.Inventory.TryPutItem(targetItem, user: null, createNetworkEvent: true);
+ }
+ }
+
if (targetItem.Prefab.DeconstructItems.Any())
{
inputContainer.Inventory.RemoveItem(targetItem);