public void TryUpdate(Entity<HandheldLightComponent> uid, float frameTime)
{
var component = uid.Comp;
- if (!_powerCell.TryGetBatteryFromSlot(uid, out var battery) &&
+ if (!_powerCell.TryGetBatteryFromSlot(uid, out var batteryUid, out var battery, null) &&
!TryComp(uid, out battery))
{
TurnOff(uid, false);
return;
}
+ if (batteryUid == null)
+ return;
+
var appearanceComponent = EntityManager.GetComponentOrNull<AppearanceComponent>(uid);
var fraction = battery.CurrentCharge / battery.MaxCharge;
_appearance.SetData(uid, HandheldLightVisuals.Power, HandheldLightPowerStates.Dying, appearanceComponent);
}
- if (component.Activated && !_battery.TryUseCharge(uid, component.Wattage * frameTime, battery))
+ if (component.Activated && !_battery.TryUseCharge(batteryUid.Value, component.Wattage * frameTime, battery))
TurnOff(uid, false);
UpdateLevel(uid);
var query = EntityQueryEnumerator<ActiveRadioJammerComponent, RadioJammerComponent>();
while (query.MoveNext(out var uid, out var _, out var jam))
{
- if (_powerCell.TryGetBatteryFromSlot(uid, out var battery) &&
- !_battery.TryUseCharge(uid, jam.Wattage * frameTime, battery))
+ if (_powerCell.TryGetBatteryFromSlot(uid, out var batteryUid, out var battery) &&
+ !_battery.TryUseCharge(batteryUid.Value, jam.Wattage * frameTime, battery))
{
RemComp<ActiveRadioJammerComponent>(uid);
}