Remove IStartCollide from doors (#4319)
This commit is contained in:
@@ -33,7 +33,7 @@ namespace Content.Server.Doors.Components
|
|||||||
[RegisterComponent]
|
[RegisterComponent]
|
||||||
[ComponentReference(typeof(IActivate))]
|
[ComponentReference(typeof(IActivate))]
|
||||||
[ComponentReference(typeof(SharedDoorComponent))]
|
[ComponentReference(typeof(SharedDoorComponent))]
|
||||||
public class ServerDoorComponent : SharedDoorComponent, IActivate, IStartCollide, IInteractUsing, IMapInit
|
public class ServerDoorComponent : SharedDoorComponent, IActivate, IInteractUsing, IMapInit
|
||||||
{
|
{
|
||||||
[ComponentDependency]
|
[ComponentDependency]
|
||||||
private readonly IDoorCheck? _doorCheck = null;
|
private readonly IDoorCheck? _doorCheck = null;
|
||||||
@@ -96,7 +96,7 @@ namespace Content.Server.Doors.Components
|
|||||||
/// Whether the door will open when it is bumped into.
|
/// Whether the door will open when it is bumped into.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables(VVAccess.ReadWrite)] [DataField("bumpOpen")]
|
[ViewVariables(VVAccess.ReadWrite)] [DataField("bumpOpen")]
|
||||||
private bool _bumpOpen = true;
|
public bool BumpOpen = true;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the door starts open when it's first loaded from prototype. A door won't start open if its prototype is also welded shut.
|
/// Whether the door starts open when it's first loaded from prototype. A door won't start open if its prototype is also welded shut.
|
||||||
@@ -208,24 +208,6 @@ namespace Content.Server.Doors.Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IStartCollide.CollideWith(Fixture ourFixture, Fixture otherFixture, in Manifold manifold)
|
|
||||||
{
|
|
||||||
if (State != DoorState.Closed)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!_bumpOpen)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Disabled because it makes it suck hard to walk through double doors.
|
|
||||||
|
|
||||||
TryOpen(otherFixture.Body.Owner);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Opening
|
#region Opening
|
||||||
|
|
||||||
public void TryOpen(IEntity user)
|
public void TryOpen(IEntity user)
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
|
using Content.Server.Doors.Components;
|
||||||
using Content.Shared.Doors;
|
using Content.Shared.Doors;
|
||||||
|
using Robust.Shared.GameObjects;
|
||||||
|
using Robust.Shared.Physics.Dynamics;
|
||||||
|
|
||||||
namespace Content.Server.Doors
|
namespace Content.Server.Doors
|
||||||
{
|
{
|
||||||
@@ -37,6 +40,24 @@ namespace Content.Server.Doors
|
|||||||
base.Initialize();
|
base.Initialize();
|
||||||
|
|
||||||
AccessType = AccessTypes.Id;
|
AccessType = AccessTypes.Id;
|
||||||
|
SubscribeLocalEvent<ServerDoorComponent, StartCollideEvent>(HandleCollide);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleCollide(EntityUid uid, ServerDoorComponent component, StartCollideEvent args)
|
||||||
|
{
|
||||||
|
if (component.State != SharedDoorComponent.DoorState.Closed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!component.BumpOpen)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disabled because it makes it suck hard to walk through double doors.
|
||||||
|
|
||||||
|
component.TryOpen(args.OtherFixture.Body.Owner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user