示例#1
0
        public void ServerPerformInteraction(HandApply interaction)
        {
            if (ChargingSlot.Item && interaction.UsedObject == null)
            {
                UpdateManager.Remove(CallbackType.PERIODIC_UPDATE, UpdateMe);

                if (interaction.HandSlot.Item == null)
                {
                    Inventory.ServerTransfer(ChargingSlot, interaction.HandSlot);
                }
                else
                {
                    Inventory.ServerDrop(ChargingSlot);
                }

                battery            = null;
                electricalMagazine = null;
                SetSprite(SpriteState.Idle);
                _APCPoweredDevice.Resistance = 99999;
            }
            else if (ChargingSlot.Item == null && interaction.UsedObject != null && Validations.HasItemTrait(interaction.HandObject, CommonTraits.Instance.InternalBattery))
            {
                var _object = interaction.UsedObject.GetComponent <InternalBattery>();
                if (_object == null)
                {
                    return;
                }
                battery            = _object.GetBattery();
                electricalMagazine = battery.GetComponent <ElectricalMagazine>();
                Inventory.ServerTransfer(interaction.HandSlot, ChargingSlot);
                if (battery != null)
                {
                    _APCPoweredDevice.Resistance = battery.InternalResistance;
                    UpdateManager.Add(UpdateMe, 1);
                    UpdateMe();
                }
            }
        }
示例#2
0
    public void ServerPerformInteraction(HandApply interaction)
    {
        if (ChargingSlot.Item && interaction.UsedObject == null)
        {
            if (interaction.HandSlot.Item == null)
            {
                Inventory.ServerTransfer(ChargingSlot, interaction.HandSlot);
            }
            else
            {
                Inventory.ServerDrop(ChargingSlot);
            }

            battery            = null;
            IsCharging         = false;
            electricalMagazine = null;
            SyncState(chargeState, ChargeState.Off);
            _APCPoweredDevice.Resistance = 99999;
        }
        else if (ChargingSlot.Item == null && interaction.UsedObject != null)
        {
            var _object = interaction.UsedObject.GetComponent <InternalBattery>();
            if (_object == null)
            {
                return;
            }
            battery            = _object.GetBattery();
            electricalMagazine = battery.GetComponent <ElectricalMagazine>();
            Inventory.ServerTransfer(interaction.HandSlot, ChargingSlot);
            if (battery != null)
            {
                _APCPoweredDevice.Resistance = battery.InternalResistance;
                SyncState(chargeState, ChargeState.Charging);
                CheckCharging();
                StartCoroutine(Recharge());
            }
        }
    }