Blast doors & shutters (#4822)
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
using Content.Server.Doors.Components;
|
||||
using Content.Server.Explosion.Components;
|
||||
using Content.Server.Flash;
|
||||
using Content.Server.Flash.Components;
|
||||
using Content.Shared.Acts;
|
||||
using Content.Shared.Audio;
|
||||
using Content.Shared.Doors;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -43,6 +45,7 @@ namespace Content.Server.Explosion
|
||||
SubscribeLocalEvent<SoundOnTriggerComponent, TriggerEvent>(HandleSoundTrigger);
|
||||
SubscribeLocalEvent<ExplodeOnTriggerComponent, TriggerEvent>(HandleExplodeTrigger);
|
||||
SubscribeLocalEvent<FlashOnTriggerComponent, TriggerEvent>(HandleFlashTrigger);
|
||||
SubscribeLocalEvent<ToggleDoorOnTriggerComponent, TriggerEvent>(HandleDoorTrigger);
|
||||
}
|
||||
|
||||
#region Explosions
|
||||
@@ -89,6 +92,25 @@ namespace Content.Server.Explosion
|
||||
EntityManager.QueueDeleteEntity(uid);
|
||||
}
|
||||
|
||||
private void HandleDoorTrigger(EntityUid uid, ToggleDoorOnTriggerComponent component, TriggerEvent args)
|
||||
{
|
||||
if (EntityManager.TryGetComponent<ServerDoorComponent>(uid, out var door))
|
||||
{
|
||||
switch (door.State)
|
||||
{
|
||||
case SharedDoorComponent.DoorState.Open:
|
||||
door.Close();
|
||||
break;
|
||||
case SharedDoorComponent.DoorState.Closed:
|
||||
door.Open();
|
||||
break;
|
||||
case SharedDoorComponent.DoorState.Closing:
|
||||
case SharedDoorComponent.DoorState.Opening:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleCollide(EntityUid uid, TriggerOnCollideComponent component, StartCollideEvent args)
|
||||
{
|
||||
Trigger(component.Owner);
|
||||
|
||||
Reference in New Issue
Block a user