Blast doors & shutters (#4822)

This commit is contained in:
mirrorcult
2021-10-10 03:43:50 -07:00
committed by GitHub
parent 72d30724c4
commit 9b4e495c95
32 changed files with 325 additions and 37 deletions

View File

@@ -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);