Hotfix for errors in handheld lights and radio jammers (#25880)

This commit is contained in:
Tayrtahn
2024-03-06 08:44:14 -05:00
committed by GitHub
parent 2935e5bd78
commit e5536e0652
2 changed files with 7 additions and 4 deletions

View File

@@ -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);

View File

@@ -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);
}