From: eoineoineoin Date: Thu, 16 Jan 2025 10:34:11 +0000 (+0000) Subject: Fix inconsistent borg flashlight state (#33027) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=820517eb38145b26485597161e1380a0feaf0cc1;p=space-station-14.git 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 --- diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs index 5b4b0c08ca..99bd381321 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.cs @@ -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); } diff --git a/Content.Shared/Light/EntitySystems/ItemTogglePointLightSystem.cs b/Content.Shared/Light/EntitySystems/ItemTogglePointLightSystem.cs index 7030c538c1..e2ed6cfcc2 100644 --- a/Content.Shared/Light/EntitySystems/ItemTogglePointLightSystem.cs +++ b/Content.Shared/Light/EntitySystems/ItemTogglePointLightSystem.cs @@ -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(ent.Owner, out var handheldLight)) + { + _handheldLight.SetActivated(ent.Owner, args.Activated, handheldLight); + } } }