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)
|
public void TryUpdate(Entity<HandheldLightComponent> uid, float frameTime)
|
||||||
{
|
{
|
||||||
var component = uid.Comp;
|
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))
|
!TryComp(uid, out battery))
|
||||||
{
|
{
|
||||||
TurnOff(uid, false);
|
TurnOff(uid, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (batteryUid == null)
|
||||||
|
return;
|
||||||
|
|
||||||
var appearanceComponent = EntityManager.GetComponentOrNull<AppearanceComponent>(uid);
|
var appearanceComponent = EntityManager.GetComponentOrNull<AppearanceComponent>(uid);
|
||||||
|
|
||||||
var fraction = battery.CurrentCharge / battery.MaxCharge;
|
var fraction = battery.CurrentCharge / battery.MaxCharge;
|
||||||
@@ -270,7 +273,7 @@ namespace Content.Server.Light.EntitySystems
|
|||||||
_appearance.SetData(uid, HandheldLightVisuals.Power, HandheldLightPowerStates.Dying, appearanceComponent);
|
_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);
|
TurnOff(uid, false);
|
||||||
|
|
||||||
UpdateLevel(uid);
|
UpdateLevel(uid);
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ public sealed class JammerSystem : EntitySystem
|
|||||||
var query = EntityQueryEnumerator<ActiveRadioJammerComponent, RadioJammerComponent>();
|
var query = EntityQueryEnumerator<ActiveRadioJammerComponent, RadioJammerComponent>();
|
||||||
while (query.MoveNext(out var uid, out var _, out var jam))
|
while (query.MoveNext(out var uid, out var _, out var jam))
|
||||||
{
|
{
|
||||||
if (_powerCell.TryGetBatteryFromSlot(uid, out var battery) &&
|
if (_powerCell.TryGetBatteryFromSlot(uid, out var batteryUid, out var battery) &&
|
||||||
!_battery.TryUseCharge(uid, jam.Wattage * frameTime, battery))
|
!_battery.TryUseCharge(batteryUid.Value, jam.Wattage * frameTime, battery))
|
||||||
{
|
{
|
||||||
RemComp<ActiveRadioJammerComponent>(uid);
|
RemComp<ActiveRadioJammerComponent>(uid);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user