Cardboard Boxes will play effect & sound again (#14859)

This commit is contained in:
keronshb
2023-03-25 22:26:39 -04:00
committed by GitHub
parent 2ba333cb55
commit a92b67b10d

View File

@@ -29,6 +29,7 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<CardboardBoxComponent, StorageAfterOpenEvent>(AfterStorageOpen); SubscribeLocalEvent<CardboardBoxComponent, StorageAfterOpenEvent>(AfterStorageOpen);
SubscribeLocalEvent<CardboardBoxComponent, StorageBeforeOpenEvent>(BeforeStorageOpen);
SubscribeLocalEvent<CardboardBoxComponent, StorageAfterCloseEvent>(AfterStorageClosed); SubscribeLocalEvent<CardboardBoxComponent, StorageAfterCloseEvent>(AfterStorageClosed);
SubscribeLocalEvent<CardboardBoxComponent, InteractedNoHandEvent>(OnNoHandInteracted); SubscribeLocalEvent<CardboardBoxComponent, InteractedNoHandEvent>(OnNoHandInteracted);
SubscribeLocalEvent<CardboardBoxComponent, EntInsertedIntoContainerMessage>(OnEntInserted); SubscribeLocalEvent<CardboardBoxComponent, EntInsertedIntoContainerMessage>(OnEntInserted);
@@ -46,19 +47,22 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem
_storage.OpenStorage(uid); _storage.OpenStorage(uid);
} }
private void AfterStorageOpen(EntityUid uid, CardboardBoxComponent component, ref StorageAfterOpenEvent args) private void BeforeStorageOpen(EntityUid uid, CardboardBoxComponent component, ref StorageBeforeOpenEvent args)
{ {
//Remove the mover after the box is opened and play the effect if it hasn't been played yet. //Play effect & sound
if (component.Mover != null) if (component.Mover != null)
{ {
if (_timing.CurTime > component.EffectCooldown) if (_timing.CurTime > component.EffectCooldown)
{ {
RaiseNetworkEvent(new PlayBoxEffectMessage(component.Owner, component.Mover.Value), Filter.PvsExcept(component.Owner)); RaiseNetworkEvent(new PlayBoxEffectMessage(uid, component.Mover.Value));
_audio.PlayPvs(component.EffectSound, component.Owner); _audio.PlayPvs(component.EffectSound, uid);
component.EffectCooldown = _timing.CurTime + CardboardBoxComponent.MaxEffectCooldown; component.EffectCooldown = _timing.CurTime + CardboardBoxComponent.MaxEffectCooldown;
} }
} }
}
private void AfterStorageOpen(EntityUid uid, CardboardBoxComponent component, ref StorageAfterOpenEvent args)
{
// If this box has a stealth/chameleon effect, disable the stealth effect while the box is open. // If this box has a stealth/chameleon effect, disable the stealth effect while the box is open.
_stealth.SetEnabled(uid, false); _stealth.SetEnabled(uid, false);
} }