Locksystem cleanup (#13409)

This commit is contained in:
Checkraze
2023-01-17 19:09:40 -05:00
committed by GitHub
parent 25df5bc0a4
commit 2c1c1c45c3

View File

@@ -22,6 +22,8 @@ namespace Content.Server.Lock
{
[Dependency] private readonly AccessReaderSystem _accessReader = default!;
[Dependency] private readonly SharedPopupSystem _sharedPopupSystem = default!;
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SharedAudioSystem _audio = default!;
/// <inheritdoc />
public override void Initialize()
@@ -39,7 +41,7 @@ namespace Content.Server.Lock
{
if (EntityManager.TryGetComponent(lockComp.Owner, out AppearanceComponent? appearance))
{
appearance.SetData(StorageVisuals.CanLock, true);
_appearanceSystem.SetData(uid, StorageVisuals.CanLock, true, appearance);
}
}
@@ -91,17 +93,17 @@ namespace Content.Server.Lock
if (!HasUserAccess(uid, user, quiet: false))
return false;
lockComp.Owner.PopupMessage(user, Loc.GetString("lock-comp-do-lock-success", ("entityName", EntityManager.GetComponent<MetaDataComponent>(lockComp.Owner).EntityName)));
_sharedPopupSystem.PopupEntity(Loc.GetString("lock-comp-do-lock-success", ("entityName", EntityManager.GetComponent<MetaDataComponent>(uid).EntityName)), uid, user);
lockComp.Locked = true;
if(lockComp.LockSound != null)
{
SoundSystem.Play(lockComp.LockSound.GetSound(), Filter.Pvs(lockComp.Owner), lockComp.Owner, AudioParams.Default.WithVolume(-5));
_audio.PlayPvs(_audio.GetSound(lockComp.LockSound), uid, AudioParams.Default.WithVolume(-5));
}
if (EntityManager.TryGetComponent(lockComp.Owner, out AppearanceComponent? appearanceComp))
if (EntityManager.TryGetComponent(uid, out AppearanceComponent? appearanceComp))
{
appearanceComp.SetData(StorageVisuals.Locked, true);
_appearanceSystem.SetData(uid, StorageVisuals.Locked, true, appearanceComp);
}
RaiseLocalEvent(lockComp.Owner, new LockToggledEvent(true), true);
@@ -114,18 +116,21 @@ namespace Content.Server.Lock
if (!Resolve(uid, ref lockComp))
return;
if (user is {Valid: true})
lockComp.Owner.PopupMessage(user.Value, Loc.GetString("lock-comp-do-unlock-success", ("entityName", EntityManager.GetComponent<MetaDataComponent>(lockComp.Owner).EntityName)));
if (user is { Valid: true })
{
_sharedPopupSystem.PopupEntity(Loc.GetString("lock-comp-do-unlock-success", ("entityName", EntityManager.GetComponent<MetaDataComponent>(uid).EntityName)), uid, user.Value);
}
lockComp.Locked = false;
if (lockComp.UnlockSound != null)
{
SoundSystem.Play(lockComp.UnlockSound.GetSound(), Filter.Pvs(lockComp.Owner), lockComp.Owner, AudioParams.Default.WithVolume(-5));
_audio.PlayPvs(_audio.GetSound(lockComp.UnlockSound), uid, AudioParams.Default.WithVolume(-5));
}
if (EntityManager.TryGetComponent(lockComp.Owner, out AppearanceComponent? appearanceComp))
{
appearanceComp.SetData(StorageVisuals.Locked, false);
_appearanceSystem.SetData(uid, StorageVisuals.Locked, false, appearanceComp);
}
RaiseLocalEvent(lockComp.Owner, new LockToggledEvent(false), true);
@@ -168,7 +173,7 @@ namespace Content.Server.Lock
if (!_accessReader.IsAllowed(user, reader))
{
if (!quiet)
reader.Owner.PopupMessage(user, Loc.GetString("lock-comp-has-user-access-fail"));
_sharedPopupSystem.PopupEntity(Loc.GetString("lock-comp-has-user-access-fail"), uid, user);
return false;
}
@@ -191,16 +196,16 @@ namespace Content.Server.Lock
private void OnEmagged(EntityUid uid, LockComponent component, GotEmaggedEvent args)
{
if (component.Locked == true)
if (component.Locked)
{
if (component.UnlockSound != null)
{
SoundSystem.Play(component.UnlockSound.GetSound(), Filter.Pvs(component.Owner), component.Owner, AudioParams.Default.WithVolume(-5));
_audio.PlayPvs(_audio.GetSound(component.UnlockSound), uid, AudioParams.Default.WithVolume(-5));
}
if (EntityManager.TryGetComponent(component.Owner, out AppearanceComponent? appearanceComp))
{
appearanceComp.SetData(StorageVisuals.Locked, false);
_appearanceSystem.SetData(uid, StorageVisuals.Locked, false, appearanceComp);
}
EntityManager.RemoveComponent<LockComponent>(uid); //Literally destroys the lock as a tell it was emagged
args.Handled = true;