Merge https://github.com/Regalis11/Barotrauma into develop
This commit is contained in:
@@ -580,8 +580,8 @@ namespace Barotrauma
|
||||
|
||||
if (removeItem)
|
||||
{
|
||||
item.Drop(user);
|
||||
if (item.ParentInventory != null) { item.ParentInventory.RemoveItem(item); }
|
||||
item.Drop(user, setTransform: false);
|
||||
item.ParentInventory?.RemoveItem(item);
|
||||
}
|
||||
|
||||
slots[i].Add(item);
|
||||
@@ -845,13 +845,31 @@ namespace Barotrauma
|
||||
|
||||
if (otherIsEquipped)
|
||||
{
|
||||
existingItems.ForEach(existingItem => TryPutItem(existingItem, index, false, false, user, createNetworkEvent, ignoreCondition: true));
|
||||
stackedItems.ForEach(stackedItem => otherInventory.TryPutItem(stackedItem, otherIndex, false, false, user, createNetworkEvent, ignoreCondition: true));
|
||||
TryPutAndForce(existingItems, this, index);
|
||||
TryPutAndForce(stackedItems, otherInventory, otherIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
stackedItems.ForEach(stackedItem => otherInventory.TryPutItem(stackedItem, otherIndex, false, false, user, createNetworkEvent, ignoreCondition: true));
|
||||
existingItems.ForEach(existingItem => TryPutItem(existingItem, index, false, false, user, createNetworkEvent, ignoreCondition: true));
|
||||
TryPutAndForce(stackedItems, otherInventory, otherIndex);
|
||||
TryPutAndForce(existingItems, this, index);
|
||||
}
|
||||
|
||||
void TryPutAndForce(IEnumerable<Item> items, Inventory inventory, int slotIndex)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
if (!inventory.TryPutItem(item, slotIndex, false, false, user, createNetworkEvent, ignoreCondition: true) &&
|
||||
!inventory.GetItemsAt(slotIndex).Contains(item))
|
||||
{
|
||||
inventory.ForceToSlot(item, slotIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (createNetworkEvent)
|
||||
{
|
||||
CreateNetworkEvent();
|
||||
otherInventory.CreateNetworkEvent();
|
||||
}
|
||||
|
||||
#if CLIENT
|
||||
|
||||
Reference in New Issue
Block a user