Fix disposals throwing you into the shadow realm (#1792)
This commit is contained in:
@@ -6,6 +6,7 @@ using Content.Shared.GameObjects.Components.Body;
|
|||||||
using Robust.Server.GameObjects.Components.Container;
|
using Robust.Server.GameObjects.Components.Container;
|
||||||
using Robust.Shared.Containers;
|
using Robust.Shared.Containers;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
|
using Robust.Shared.GameObjects.Components;
|
||||||
using Robust.Shared.Interfaces.GameObjects;
|
using Robust.Shared.Interfaces.GameObjects;
|
||||||
using Robust.Shared.Maths;
|
using Robust.Shared.Maths;
|
||||||
using Robust.Shared.ViewVariables;
|
using Robust.Shared.ViewVariables;
|
||||||
@@ -55,6 +56,12 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!entity.TryGetComponent(out ICollidableComponent collidable) ||
|
||||||
|
!collidable.CanCollide)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return entity.HasComponent<ItemComponent>() ||
|
return entity.HasComponent<ItemComponent>() ||
|
||||||
entity.HasComponent<IBodyManagerComponent>();
|
entity.HasComponent<IBodyManagerComponent>();
|
||||||
}
|
}
|
||||||
@@ -66,6 +73,11 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (entity.TryGetComponent(out ICollidableComponent collidable))
|
||||||
|
{
|
||||||
|
collidable.CanCollide = false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,6 +105,11 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
|
|
||||||
foreach (var entity in _contents.ContainedEntities.ToArray())
|
foreach (var entity in _contents.ContainedEntities.ToArray())
|
||||||
{
|
{
|
||||||
|
if (entity.TryGetComponent(out ICollidableComponent collidable))
|
||||||
|
{
|
||||||
|
collidable.CanCollide = true;
|
||||||
|
}
|
||||||
|
|
||||||
_contents.ForceRemove(entity);
|
_contents.ForceRemove(entity);
|
||||||
|
|
||||||
if (entity.Transform.Parent == Owner.Transform)
|
if (entity.Transform.Parent == Owner.Transform)
|
||||||
|
|||||||
@@ -122,6 +122,12 @@ namespace Content.Server.GameObjects.Components.Disposal
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!entity.TryGetComponent(out ICollidableComponent collidable) ||
|
||||||
|
!collidable.CanCollide)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!entity.HasComponent<ItemComponent>() &&
|
if (!entity.HasComponent<ItemComponent>() &&
|
||||||
!entity.HasComponent<IBodyManagerComponent>())
|
!entity.HasComponent<IBodyManagerComponent>())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user