Fix inconsistent borg flashlight state (#33027)
* Fix borg light being stuck on if no cell is inserted * Fix HandheldLightComponent.Activted becoming out of sync with SharedPointLightComponent.Enabled * Fix for entities which don't have a handheld light component
This commit is contained in:
@@ -293,8 +293,11 @@ public sealed partial class BorgSystem : SharedBorgSystem
|
||||
public void BorgActivate(EntityUid uid, BorgChassisComponent component)
|
||||
{
|
||||
Popup.PopupEntity(Loc.GetString("borg-mind-added", ("name", Identity.Name(uid, EntityManager))), uid);
|
||||
Toggle.TryActivate(uid);
|
||||
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
||||
if (_powerCell.HasDrawCharge(uid))
|
||||
{
|
||||
Toggle.TryActivate(uid);
|
||||
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
||||
}
|
||||
_appearance.SetData(uid, BorgVisuals.HasPlayer, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Item.ItemToggle.Components;
|
||||
using Content.Shared.Light.Components;
|
||||
using Content.Shared.Toggleable;
|
||||
using ItemTogglePointLightComponent = Content.Shared.Light.Components.ItemTogglePointLightComponent;
|
||||
|
||||
@@ -11,6 +12,7 @@ public sealed class ItemTogglePointLightSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
||||
[Dependency] private readonly SharedHandheldLightSystem _handheldLight = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -25,5 +27,9 @@ public sealed class ItemTogglePointLightSystem : EntitySystem
|
||||
|
||||
_appearance.SetData(ent, ToggleableLightVisuals.Enabled, args.Activated);
|
||||
_light.SetEnabled(ent.Owner, args.Activated, comp: light);
|
||||
if (TryComp<HandheldLightComponent>(ent.Owner, out var handheldLight))
|
||||
{
|
||||
_handheldLight.SetActivated(ent.Owner, args.Activated, handheldLight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user