Hotfix for errors in handheld lights and radio jammers (#25880)
This commit is contained in:
@@ -247,13 +247,16 @@ namespace Content.Server.Light.EntitySystems
|
||||
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;
|
||||
@@ -270,7 +273,7 @@ namespace Content.Server.Light.EntitySystems
|
||||
_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);
|
||||
|
||||
@@ -30,8 +30,8 @@ public sealed class JammerSystem : EntitySystem
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user