コード例 #1
0
    private void OnRelayMovement(EntityUid uid, ResistLockerComponent component, RelayMovementEntityEvent args)
    {
        if (component.IsResisting)
        {
            return;
        }

        if (!TryComp(uid, out EntityStorageComponent? storageComponent))
        {
            return;
        }

        if (TryComp <LockComponent>(uid, out var lockComponent) && lockComponent.Locked || storageComponent.IsWeldedShut)
        {
            AttemptResist(args.Entity, uid, storageComponent, component);
        }
    }
コード例 #2
0
    private void OnDoAfterComplete(EntityUid uid, ResistLockerComponent component, ResistDoAfterComplete ev)
    {
        component.IsResisting = false;

        if (TryComp <EntityStorageComponent>(uid, out var storageComponent))
        {
            if (storageComponent.IsWeldedShut)
            {
                storageComponent.IsWeldedShut = false;
            }

            if (TryComp <LockComponent>(ev.Target, out var lockComponent))
            {
                _lockSystem.Unlock(uid, ev.User, lockComponent);
            }

            component.CancelToken = null;
            storageComponent.TryOpenStorage(ev.User);
        }
    }
コード例 #3
0
 private void OnRemovedFromContainer(EntityUid uid, ResistLockerComponent component, EntRemovedFromContainerMessage message)
 {
     component.CancelToken?.Cancel();
 }
コード例 #4
0
 private void OnDoAfterCancelled(EntityUid uid, ResistLockerComponent component, ResistDoAfterCancelled ev)
 {
     component.IsResisting = false;
     component.CancelToken = null;
     _popupSystem.PopupEntity(Loc.GetString("resist-locker-component-resist-interrupted"), ev.User, Filter.Entities(ev.User));
 }