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)
|
public void BorgActivate(EntityUid uid, BorgChassisComponent component)
|
||||||
{
|
{
|
||||||
Popup.PopupEntity(Loc.GetString("borg-mind-added", ("name", Identity.Name(uid, EntityManager))), uid);
|
Popup.PopupEntity(Loc.GetString("borg-mind-added", ("name", Identity.Name(uid, EntityManager))), uid);
|
||||||
Toggle.TryActivate(uid);
|
if (_powerCell.HasDrawCharge(uid))
|
||||||
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
{
|
||||||
|
Toggle.TryActivate(uid);
|
||||||
|
_powerCell.SetDrawEnabled(uid, _mobState.IsAlive(uid));
|
||||||
|
}
|
||||||
_appearance.SetData(uid, BorgVisuals.HasPlayer, true);
|
_appearance.SetData(uid, BorgVisuals.HasPlayer, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Content.Shared.Item.ItemToggle.Components;
|
using Content.Shared.Item.ItemToggle.Components;
|
||||||
|
using Content.Shared.Light.Components;
|
||||||
using Content.Shared.Toggleable;
|
using Content.Shared.Toggleable;
|
||||||
using ItemTogglePointLightComponent = Content.Shared.Light.Components.ItemTogglePointLightComponent;
|
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 SharedAppearanceSystem _appearance = default!;
|
||||||
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
[Dependency] private readonly SharedPointLightSystem _light = default!;
|
||||||
|
[Dependency] private readonly SharedHandheldLightSystem _handheldLight = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -25,5 +27,9 @@ public sealed class ItemTogglePointLightSystem : EntitySystem
|
|||||||
|
|
||||||
_appearance.SetData(ent, ToggleableLightVisuals.Enabled, args.Activated);
|
_appearance.SetData(ent, ToggleableLightVisuals.Enabled, args.Activated);
|
||||||
_light.SetEnabled(ent.Owner, args.Activated, comp: light);
|
_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