v0.11.0.9
This commit is contained in:
@@ -120,7 +120,8 @@ namespace Barotrauma
|
||||
/// </summary>
|
||||
/// <param name="receivers">Entities that were deleted or added</param>
|
||||
/// <param name="wasDeleted">Whether or not all entities are or are going to be deleted</param>
|
||||
public AddOrDeleteCommand(List<MapEntity> receivers, bool wasDeleted)
|
||||
/// <param name="handleInventoryBehavior">Ignore item inventories when set to false, workaround for pasting</param>
|
||||
public AddOrDeleteCommand(List<MapEntity> receivers, bool wasDeleted, bool handleInventoryBehavior = true)
|
||||
{
|
||||
WasDeleted = wasDeleted;
|
||||
Receivers = receivers;
|
||||
@@ -151,14 +152,17 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
|
||||
if (itemsToDelete.Any())
|
||||
if (itemsToDelete.Any() && handleInventoryBehavior)
|
||||
{
|
||||
ContainedItemsCommand.Add(new AddOrDeleteCommand(itemsToDelete, true));
|
||||
foreach (MapEntity item in itemsToDelete)
|
||||
ContainedItemsCommand.Add(new AddOrDeleteCommand(itemsToDelete, wasDeleted));
|
||||
if (wasDeleted)
|
||||
{
|
||||
if (item != null && !item.Removed)
|
||||
foreach (MapEntity item in itemsToDelete)
|
||||
{
|
||||
item.Remove();
|
||||
if (item != null && !item.Removed)
|
||||
{
|
||||
item.Remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,10 +230,10 @@ namespace Barotrauma
|
||||
Debug.Assert(Receivers.All(entity => entity.GetReplacementOrThis().Removed), "Tried to redo a deletion but some items were not deleted");
|
||||
|
||||
List<MapEntity> clones = MapEntity.Clone(CloneList);
|
||||
for (int i = 0; i < Math.Min(Receivers.Count, clones.Count); i++)
|
||||
int length = Math.Min(Receivers.Count, clones.Count);
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
MapEntity clone = clones[i];
|
||||
MapEntity receiver = Receivers[i];
|
||||
MapEntity clone = clones[i], receiver = Receivers[i];
|
||||
|
||||
if (receiver.GetReplacementOrThis() is Item item && clone is Item cloneItem)
|
||||
{
|
||||
@@ -252,6 +256,11 @@ namespace Barotrauma
|
||||
}
|
||||
|
||||
receiver.GetReplacementOrThis().ReplacedBy = clone;
|
||||
}
|
||||
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
MapEntity clone = clones[i], receiver = Receivers[i];
|
||||
|
||||
if (clone is Item it)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user