示例#1
0
        private bool TryInsertPen(InteractUsingEventArgs eventArgs)
        {
            var item = eventArgs.Using;

            if (_penSlot.Contains(item))
            {
                return(false);
            }

            if (!eventArgs.User.TryGetComponent(out IHandsComponent? hands))
            {
                Owner.PopupMessage(eventArgs.User, Loc.GetString("comp-pda-ui-try-insert-pen-no-hands"));
                return(true);
            }

            IEntity?swap = null;

            if (!PenSlotEmpty)
            {
                // Swap
                swap = _penSlot.ContainedEntities[0];
            }

            if (!hands.Drop(item))
            {
                return(true);
            }

            if (swap != null)
            {
                hands.PutInHand(swap.GetComponent <ItemComponent>());
            }

            // Insert Pen
            _penSlot.Insert(item);

            UpdatePDAUserInterface();
            return(true);
        }
示例#2
0
        private bool TryInsertIdCard(InteractUsingEventArgs eventArgs, IdCardComponent idCardComponent)
        {
            var item = eventArgs.Using;

            if (_idSlot.Contains(item))
            {
                return(false);
            }

            if (!eventArgs.User.TryGetComponent(out IHandsComponent? hands))
            {
                Owner.PopupMessage(eventArgs.User, Loc.GetString("You have no hands!"));
                return(true);
            }

            IEntity?swap = null;

            if (!IdSlotEmpty)
            {
                // Swap
                swap = _idSlot.ContainedEntities[0];
            }

            if (!hands.Drop(item))
            {
                return(true);
            }

            if (swap != null)
            {
                hands.PutInHand(swap.GetComponent <ItemComponent>());
            }

            InsertIdCard(idCardComponent);

            UpdatePDAUserInterface();
            return(true);
        }