public void OnUpdate(float frameTime)
        {
            if (_lightState == EmergencyLightState.Empty ||
                _lightState == EmergencyLightState.Full)
            {
                return;
            }

            if (_lightState == EmergencyLightState.On)
            {
                if (!Battery.TryUseCharge(_wattage * frameTime))
                {
                    _lightState = EmergencyLightState.Empty;
                    TurnOff();
                }
            }
            else
            {
                Battery.CurrentCharge += _chargingWattage * frameTime * _chargingEfficiency;
                if (Battery.BatteryState == BatteryState.Full)
                {
                    PowerReceiver.Load = 1;
                    _lightState        = EmergencyLightState.Full;
                }
            }
        }
Exemplo n.º 2
0
        public void OnUpdate(float frameTime)
        {
            if (_lightState == EmergencyLightState.Empty ||
                _lightState == EmergencyLightState.Full)
            {
                return;
            }

            if (!Owner.TryGetComponent(out BatteryComponent battery))
            {
                return;
            }

            if (_lightState == EmergencyLightState.On)
            {
                if (!battery.TryUseCharge(_wattage * frameTime))
                {
                    _lightState = EmergencyLightState.Empty;
                    TurnOff();
                }
            }
            else
            {
                battery.CurrentCharge += _chargingWattage * frameTime * _chargingEfficiency;
                if (battery.BatteryState == BatteryState.Full)
                {
                    if (Owner.TryGetComponent(out PowerReceiverComponent receiver))
                    {
                        receiver.Load = 1;
                    }

                    _lightState = EmergencyLightState.Full;
                }
            }
        }
 /// <summary>
 ///     Updates the light's power drain, battery drain, sprite and actual light state.
 /// </summary>
 public void UpdateState()
 {
     if (PowerReceiver.Powered)
     {
         PowerReceiver.Load = (int)Math.Abs(_wattage);
         TurnOff();
         _lightState = EmergencyLightState.Charging;
     }
     else
     {
         TurnOn();
         _lightState = EmergencyLightState.On;
     }
 }
Exemplo n.º 4
0
        /// <summary>
        ///     Updates the light's power drain, battery drain, sprite and actual light state.
        /// </summary>
        public void UpdateState()
        {
            if (!Owner.TryGetComponent(out PowerReceiverComponent receiver))
            {
                return;
            }

            if (receiver.Powered)
            {
                receiver.Load = (int)Math.Abs(_wattage);
                TurnOff();
                _lightState = EmergencyLightState.Charging;
            }
            else
            {
                TurnOn();
                _lightState = EmergencyLightState.On;
            }
        }